diff options
Diffstat (limited to 'xorg-server/hw/xprint/ps/Ps.h')
-rw-r--r-- | xorg-server/hw/xprint/ps/Ps.h | 600 |
1 files changed, 0 insertions, 600 deletions
diff --git a/xorg-server/hw/xprint/ps/Ps.h b/xorg-server/hw/xprint/ps/Ps.h deleted file mode 100644 index a25e9891a..000000000 --- a/xorg-server/hw/xprint/ps/Ps.h +++ /dev/null @@ -1,600 +0,0 @@ -/* - -Copyright 1996, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -*/ -/* - * (c) Copyright 1996 Hewlett-Packard Company - * (c) Copyright 1996 International Business Machines Corp. - * (c) Copyright 1996 Sun Microsystems, Inc. - * (c) Copyright 1996 Novell, Inc. - * (c) Copyright 1996 Digital Equipment Corp. - * (c) Copyright 1996 Fujitsu Limited - * (c) Copyright 1996 Hitachi, Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sublicense, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject - * to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF - * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * Except as contained in this notice, the names of the copyright holders - * shall not be used in advertising or otherwise to promote the sale, use - * or other dealings in this Software without prior written authorization - * from said copyright holders. - */ - -/******************************************************************* -** -** ********************************************************* -** * -** * File: Ps.h -** * -** * Contents: defines and includes for the Ps driver -** * for a printing X server. -** * -** * Created By: Roger Helmendach (Liberty Systems) -** * -** * Copyright: Copyright 1996 The Open Group, Inc. -** * -** ********************************************************* -** -********************************************************************/ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#ifndef _PS_H_ -#define _PS_H_ - -#include <stdio.h> - -#ifdef abs -#undef abs /* this is because of a non-Spec1170ness in misc.h */ -#endif -#include <stdlib.h> -#include "scrnintstr.h" -#include "dix.h" - -#include "PsDef.h" -#include "psout.h" - -#include <X11/extensions/Print.h> -#include <X11/extensions/Printstr.h> - -#include "regionstr.h" -#include <X11/fonts/fontstruct.h> -#include "dixfontstr.h" -#include "gcstruct.h" - -/* - * Some sleazes to force the XrmDB stuff into the server - */ -#ifndef HAVE_XPointer -typedef char *XPointer; -#define Status int -#define True 1 -#define False 0 -#endif - -#include "misc.h" -#include <X11/Xfuncproto.h> -#include <X11/Xresource.h> -#include "attributes.h" - - -/* - * Public index variables from PsInit.c - */ - -extern DevPrivateKey PsScreenPrivateKey; -extern DevPrivateKey PsWindowPrivateKey; -extern DevPrivateKey PsContextPrivateKey; -extern DevPrivateKey PsPixmapPrivateKey; -extern XpValidatePoolsRec PsValidatePoolsRec; - -/* - * Display list structures - */ - -#define DPY_BLOCKSIZE 4096 - -typedef struct -{ - int mode; - int nPoints; - xPoint *pPoints; -} PsPolyPointsRec; - -typedef struct -{ - int nSegments; - xSegment *pSegments; -} PsSegmentsRec; - -typedef struct -{ - int nRects; - xRectangle *pRects; -} PsRectanglesRec; - -typedef struct -{ - int nArcs; - xArc *pArcs; -} PsArcsRec; - -typedef struct -{ - int x; - int y; - int count; - char *string; -} PsText8Rec; - -typedef struct -{ - int x; - int y; - int count; - unsigned short *string; -} PsText16Rec; - -typedef struct -{ - int depth; - int x; - int y; - int w; - int h; - int leftPad; - int format; - int res; /* image resolution */ - char *pData; -} PsImageRec; - -typedef struct -{ - int x; - int y; - int w; - int h; -} PsFrameRec; - -typedef enum -{ - PolyPointCmd, - PolyLineCmd, - PolySegmentCmd, - PolyRectangleCmd, - FillPolygonCmd, - PolyFillRectCmd, - PolyArcCmd, - PolyFillArcCmd, - Text8Cmd, - Text16Cmd, - TextI8Cmd, - TextI16Cmd, - PutImageCmd, - BeginFrameCmd, - EndFrameCmd -} DisplayElmType; - -typedef struct _DisplayElmRec -{ - DisplayElmType type; - GCPtr gc; - union - { - PsPolyPointsRec polyPts; - PsSegmentsRec segments; - PsRectanglesRec rects; - PsArcsRec arcs; - PsText8Rec text8; - PsText16Rec text16; - PsImageRec image; - PsFrameRec frame; - } c; -} DisplayElmRec; - -typedef DisplayElmRec *DisplayElmPtr; - -typedef struct _DisplayListRec -{ - struct _DisplayListRec *next; - int nelms; - DisplayElmRec elms[DPY_BLOCKSIZE]; -} DisplayListRec; - -typedef DisplayListRec *DisplayListPtr; - -/* - * Private structures - */ - -typedef struct -{ - XrmDatabase resDB; - Bool (*DestroyWindow)(WindowPtr); -} PsScreenPrivRec, *PsScreenPrivPtr; - -typedef struct PsFontTypeInfoRec PsFontTypeInfoRec; - -/* Structure to hold information about one font on disk - * Notes: - * - multiple XLFD names can refer to the same |PsFontTypeInfoRec| (if - * they all use the same font on the disk) - * - the FreeType font download code uses multiple |PsFontTypeInfoRec| - * records for one font on disk if they differ in the encoding being - * used (this is an exception from the - * 'one-|PsFontTypeInfoRec|-per-font-on-disk'-design; maybe it it is better - * to rework that in a later step and add a new per-encoding structure). - */ -struct PsFontTypeInfoRec -{ - PsFontTypeInfoRec *next; /* Next record in list... */ - char *adobe_ps_name; /* PostScript font name (from the - * "_ADOBE_POSTSCRIPT_FONTNAME" atom) */ - char *download_ps_name; /* PostScript font name used for font download */ - char *filename; /* File name of font */ -#ifdef XP_USE_FREETYPE - char *ft_download_encoding; /* encoding used for download */ - PsFTDownloadFontType ft_download_font_type; /* PS font type used for download (e.g. Type1/Type3/CID/etc.) */ -#endif /* XP_USE_FREETYPE */ - int is_iso_encoding; /* Is this font encoded in ISO Latin 1 ? */ - int font_type; /* See PSFTI_FONT_TYPE_* below... */ - Bool downloadableFont; /* Font can be downloaded */ - Bool alreadyDownloaded[256]; /* Font has been downloaded (for 256 8bit "sub"-font) */ -}; - -#define PSFTI_FONT_TYPE_OTHER (0) -#define PSFTI_FONT_TYPE_PMF (1) -#define PSFTI_FONT_TYPE_PS_TYPE1_PFA (2) -#define PSFTI_FONT_TYPE_PS_TYPE1_PFB (3) -#define PSFTI_FONT_TYPE_TRUETYPE (4) -/* PSFTI_FONT_TYPE_FREETYPE is means the font is handled by the freetype engine */ -#define PSFTI_FONT_TYPE_FREETYPE (5) - -typedef struct PsFontInfoRec PsFontInfoRec; - -/* Structure which represents our context info for a single XLFD font - * Note that multiple |PsFontInfoRec| records can share the same - * |PsFontTypeInfoRec| record - the |PsFontInfoRec| records represent - * different appearances of the same font on disk(=|PsFontTypeInfoRec|)). - */ -struct PsFontInfoRec -{ - PsFontInfoRec *next; /* Next record in list... */ - /* |font| and |font_fontPrivate| are used by |PsFindFontInfoRec()| to - * identify a font */ - FontPtr font; /* The font this record is for */ - pointer font_fontPrivate; - PsFontTypeInfoRec *ftir; /* Record about the font file on disk */ - const char *dfl_name; /* XLFD for this font */ - int size; /* Font size. Use |mtx| if |size==0| */ - float mtx[4]; /* Transformation matrix (see |size|) */ -}; - -typedef struct -{ - char *jobFileName; - FILE *pJobFile; - GC lastGC; - unsigned char *dash; - int validGC; - ClientPtr getDocClient; - int getDocBufSize; - PsOutPtr pPsOut; - PsFontTypeInfoRec *fontTypeInfoRecords; - PsFontInfoRec *fontInfoRecords; -} PsContextPrivRec, *PsContextPrivPtr; - -typedef struct -{ - int validContext; - XpContextPtr context; -} PsWindowPrivRec, *PsWindowPrivPtr; - -typedef struct -{ - XpContextPtr context; - GC lastGC; - int validGC; - DisplayListPtr dispList; -} PsPixmapPrivRec, *PsPixmapPrivPtr; - -/* - * Macro functions - */ - -#define SEND_PS(f,c) fwrite( c, sizeof( char ), strlen( c ), f ) -#define MIN(a,b) (((a)<(b))?(a):(b)) -#ifndef MAX -#define MAX(a,b) (((a)>(b))?(a):(b)) -#endif - -/* - * Functions in PsInit.c - */ - -extern Bool InitializePsDriver(int ndx, ScreenPtr pScreen, int argc, - char **argv); -extern XpContextPtr PsGetContextFromWindow(WindowPtr win); - -/* - * Functions in PsCache.c - */ - -extern int PsBmIsImageCached(int gWidth, int gHeight, char *pBuffer); -extern int PsBmPutImageInCache(int gWidth, int gHeight, char *pBuffer); -extern void PsBmClearImageCache(void); - -/* - * Functions in PsPrint.c - */ - -extern int PsStartJob(XpContextPtr pCon, Bool sendClientData, ClientPtr client); -extern int PsEndJob(XpContextPtr pCon, Bool cancel); -extern int PsStartPage(XpContextPtr pCon, WindowPtr pWin); -extern int PsEndPage(XpContextPtr pCon, WindowPtr pWin); -extern int PsStartDoc(XpContextPtr pCon, XPDocumentType type); -extern int PsEndDoc(XpContextPtr pCon, Bool cancel); -extern int PsDocumentData(XpContextPtr pCon, DrawablePtr pDraw, char *pData, - int len_data, char *pFmt, int len_fmt, char *pOpt, int len_opt, - ClientPtr client); -extern int PsGetDocumentData(XpContextPtr pCon, ClientPtr client, - int maxBufferSize); - -/* - * Functions in PsGC.c - */ - -extern Bool PsCreateGC(GCPtr pGC); -extern PsContextPrivPtr PsGetPsContextPriv( DrawablePtr pDrawable ); -extern int PsUpdateDrawableGC(GCPtr pGC, DrawablePtr pDrawable, - PsOutPtr *psOut, ColormapPtr *cMap); -extern void PsValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable); -extern void PsChangeGC(GCPtr pGC, unsigned long changes); -extern void PsCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst); -extern void PsDestroyGC(GCPtr pGC); -extern void PsChangeClip(GCPtr pGC, int type, pointer pValue, int nrects); -extern void PsDestroyClip(GCPtr pGC); -extern void PsCopyClip(GCPtr pgcDst, GCPtr pgcSrc); - -extern GCPtr PsCreateAndCopyGC(DrawablePtr pDrawable, GCPtr pSrc); - -/* - * Functions in PsMisc.c - */ - -extern void PsQueryBestSize(int type, short *pwidth, short *pheight, - ScreenPtr pScreen); -extern Bool PsCloseScreen(int index, ScreenPtr pScreen); -extern void PsLineAttrs(PsOutPtr psOut, GCPtr pGC, ColormapPtr cMap); -extern int PsGetMediumDimensions( - XpContextPtr pCon, - CARD16 *pWidth, - CARD16 *pHeight); -extern int PsGetReproducibleArea( - XpContextPtr pCon, - xRectangle *pRect); -extern int PsSetImageResolution( - XpContextPtr pCon, - int imageRes, - Bool *status); - -/* - * Functions in PsSpans.c - */ - -extern void PsFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nSpans, - DDXPointPtr pPoints, int *pWidths, int fSorted); -extern void PsSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *pSrc, - DDXPointPtr pPoints, int *pWidths, int nSpans, - int fSorted); - -/* - * Functions in PsArea.c - */ - -extern void PsPutScaledImage(DrawablePtr pDrawable, GCPtr pGC, int depth, - int x, int y, int w, int h, int leftPad, int format, - int imageRes, char *pImage); -extern void PsPutScaledImageIM(DrawablePtr pDrawable, GCPtr pGC, int depth, - int x, int y, int w, int h, int leftPad, - int format, int imageRes, char *pImage); -extern void PsPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, - int x, int y, int w, int h, int leftPad, int format, - char *pImage); -extern void PsPutImageMask(DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y, - int w, int h, int leftPad, int format, char *pImage); -extern RegionPtr PsCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, - int srcx, int srcy, int width, int height, - int dstx, int dsty); -extern RegionPtr PsCopyPlane(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, - int srcx, int srcy, int width, int height, - int dstx, int dsty, unsigned long plane); - -/* - * Functions in PsPixel.c - */ - -extern void PsPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode, - int nPoints, xPoint *pPoints); -extern void PsPushPixels(GCPtr pGC, PixmapPtr pBitmap, DrawablePtr pDrawable, - int width, int height, int x, int y); - -/* - * Functions in PsLine.c - */ - -extern void PsPolyLine(DrawablePtr pDrawable, GCPtr pGC, int mode, - int nPoints, xPoint *pPoints); -extern void PsPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nSegments, - xSegment *pSegments); - -/* - * Functions in PsPolygon.c - */ - -extern void PsPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nRects, - xRectangle *pRects); -extern void PsFillPolygon(DrawablePtr pDrawable, GCPtr pGC, int shape, - int mode, int nPoints, DDXPointPtr pPoints); -extern void PsPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nRects, - xRectangle *pRects); - -/* - * Functions in PsPolygon.c - */ - -extern void PsPolyArc(DrawablePtr pDrawable, GCPtr pGC, int nArcs, - xArc *pArcs); -extern void PsPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int nArcs, - xArc *pArcs); - -/* - * Functions in PsText.c - */ - -extern int PsPolyText8(DrawablePtr pDrawable, GCPtr pGC, int x, int y, - int count, char *string); -extern int PsPolyText16(DrawablePtr pDrawable, GCPtr pGC, int x, int y, - int count, unsigned short *string); -extern void PsImageText8(DrawablePtr pDrawable, GCPtr pGC, int x, int y, - int count, char *string); -extern void PsImageText16(DrawablePtr pDrawable, GCPtr pGC, int x, int y, - int count, unsigned short *string); -extern void PsImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, int y, - unsigned int nGlyphs, CharInfoPtr *pCharInfo, - pointer pGlyphBase); -extern void PsPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC, int x, int y, - unsigned int nGlyphs, CharInfoPtr *pCharInfo, - pointer pGlyphBase); - -/* - * Functions in PsWindow.c - */ - -extern Bool PsCreateWindow(WindowPtr pWin); -extern Bool PsMapWindow(WindowPtr pWin); -extern Bool PsPositionWindow(WindowPtr pWin, int x, int y); -extern Bool PsUnmapWindow(WindowPtr pWin); -extern void PsCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, - RegionPtr prgnSrc); -extern Bool PsChangeWindowAttributes(WindowPtr pWin, unsigned long mask); -extern Bool PsDestroyWindow(WindowPtr pWin); - -/* - * Functions in PsFonts.c - */ - -extern Bool PsRealizeFont(ScreenPtr pscr, FontPtr pFont); -extern Bool PsUnrealizeFont(ScreenPtr pscr, FontPtr pFont); -extern char *PsGetFontName(FontPtr pFont); -extern int PsGetFontSize(FontPtr pFont, float *mtx); -extern char *PsGetPSFontName(FontPtr pFont); -extern char *PsGetPSFaceOrFontName(FontPtr pFont); -extern int PsIsISOLatin1Encoding(FontPtr pFont); -extern char *PsGetEncodingName(FontPtr pFont); -extern PsFontInfoRec *PsGetFontInfoRec(DrawablePtr pDrawable, FontPtr pFont); -extern void PsFreeFontInfoRecords(PsContextPrivPtr priv); -extern PsFTDownloadFontType PsGetFTDownloadFontType(void); - -/* - * Functions in PsFTFonts.c - */ - -extern char *PsGetFTFontFileName(FontPtr pFont); -extern Bool PsIsFreeTypeFont(FontPtr pFont); - -/* - * Functions in PsAttr.c - */ - -extern char *PsGetAttributes(XpContextPtr pCon, XPAttributes pool); -extern char *PsGetOneAttribute(XpContextPtr pCon, XPAttributes pool, - char *attr); -extern int PsAugmentAttributes(XpContextPtr pCon, XPAttributes pool, - char *attrs); -extern int PsSetAttributes(XpContextPtr pCon, XPAttributes pool, char *attrs); - -/* - * Functions in PsColor.c - */ - -extern Bool PsCreateColormap(ColormapPtr pColor); -extern void PsDestroyColormap(ColormapPtr pColor); -extern void PsInstallColormap(ColormapPtr pColor); -extern void PsUninstallColormap(ColormapPtr pColor); -extern int PsListInstalledColormaps(ScreenPtr pScreen, XID *pCmapList); -extern void PsStoreColors(ColormapPtr pColor, int ndef, xColorItem *pdefs); -extern void PsResolveColor(unsigned short *pRed, unsigned short *pGreen, - unsigned short *pBlue, VisualPtr pVisual); -extern PsOutColor PsGetPixelColor(ColormapPtr cMap, int pixval); -extern void PsSetFillColor(DrawablePtr pDrawable, GCPtr pGC, PsOutPtr psOut, - ColormapPtr cMap); - -/* - * Functions in PsPixmap.c - */ - -extern PixmapPtr PsCreatePixmap(ScreenPtr pScreen, int width, int height, - int depth, unsigned usage_hint); -extern void PsScrubPixmap(PixmapPtr pPixmap); -extern Bool PsDestroyPixmap(PixmapPtr pPixmap); -extern DisplayListPtr PsGetFreeDisplayBlock(PsPixmapPrivPtr priv); -extern void PsReplay(DisplayElmPtr elm, DrawablePtr pDrawable); -extern void PsReplayPixmap(PixmapPtr pix, DrawablePtr pDrawable); -extern int PsCloneDisplayElm(PixmapPtr dst, - DisplayElmPtr elm, DisplayElmPtr newElm, - int xoff, int yoff); -extern void PsCopyDisplayList(PixmapPtr src, PixmapPtr dst, int xoff, - int yoff, int x, int y, int w, int h); -extern PsElmPtr PsCreateFillElementList(PixmapPtr pix, int *nElms); -extern PsElmPtr PsCloneFillElementList(int nElms, PsElmPtr elms); -extern void PsDestroyFillElementList(int nElms, PsElmPtr elms); - -/* - * Functions in PsImageUtil.c - */ - -extern unsigned long -PsGetImagePixel(char *pImage, int depth, int w, int h, int leftPad, int format, - int px, int py); - -#endif /* _PS_H_ */ |