#ifndef _XAALOCAL_H #define _XAALOCAL_H #ifdef HAVE_XORG_CONFIG_H #include #endif /* This file is very unorganized ! */ #include "gcstruct.h" #include "regionstr.h" #include "xf86fbman.h" #include "xaa.h" #include "mi.h" #include "picturestr.h" #define GCWhenForced (GCArcMode << 1) #define DO_COLOR_8x8 0x00000001 #define DO_MONO_8x8 0x00000002 #define DO_CACHE_BLT 0x00000003 #define DO_COLOR_EXPAND 0x00000004 #define DO_CACHE_EXPAND 0x00000005 #define DO_IMAGE_WRITE 0x00000006 #define DO_PIXMAP_COPY 0x00000007 #define DO_SOLID 0x00000008 typedef CARD32 *(*GlyphScanlineFuncPtr) (CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width); typedef CARD32 *(*StippleScanlineProcPtr) (CARD32 *, CARD32 *, int, int, int); typedef void (*RectFuncPtr) (ScrnInfoPtr, int, int, int, int, int, int, XAACacheInfoPtr); typedef void (*TrapFuncPtr) (ScrnInfoPtr, int, int, int, int, int, int, int, int, int, int, int, int, XAACacheInfoPtr); typedef struct _XAAScreen { CreateGCProcPtr CreateGC; CloseScreenProcPtr CloseScreen; GetImageProcPtr GetImage; GetSpansProcPtr GetSpans; CopyWindowProcPtr CopyWindow; WindowExposuresProcPtr WindowExposures; CreatePixmapProcPtr CreatePixmap; DestroyPixmapProcPtr DestroyPixmap; ChangeWindowAttributesProcPtr ChangeWindowAttributes; XAAInfoRecPtr AccelInfoRec; Bool (*EnterVT) (ScrnInfoPtr); void (*LeaveVT) (ScrnInfoPtr); int (*SetDGAMode) (ScrnInfoPtr, int, DGADevicePtr); void (*EnableDisableFBAccess) (ScrnInfoPtr, Bool); CompositeProcPtr Composite; GlyphsProcPtr Glyphs; } XAAScreenRec, *XAAScreenPtr; #define OPS_ARE_PIXMAP 0x00000001 #define OPS_ARE_ACCEL 0x00000002 typedef struct _XAAGC { GCOps *wrapOps; GCFuncs *wrapFuncs; GCOps *XAAOps; int DashLength; unsigned char *DashPattern; unsigned long changes; unsigned long flags; } XAAGCRec, *XAAGCPtr; #define REDUCIBILITY_CHECKED 0x00000001 #define REDUCIBLE_TO_8x8 0x00000002 #define REDUCIBLE_TO_2_COLOR 0x00000004 #define DIRTY 0x00010000 #define OFFSCREEN 0x00020000 #define DGA_PIXMAP 0x00040000 #define SHARED_PIXMAP 0x00080000 #define LOCKED_PIXMAP 0x00100000 #define REDUCIBILITY_MASK \ (REDUCIBILITY_CHECKED | REDUCIBLE_TO_8x8 | REDUCIBLE_TO_2_COLOR) typedef struct _XAAPixmap { unsigned long flags; CARD32 pattern0; CARD32 pattern1; int fg; int bg; FBAreaPtr offscreenArea; Bool freeData; } XAAPixmapRec, *XAAPixmapPtr; extern _X_EXPORT Bool XAACreateGC(GCPtr pGC); extern _X_EXPORT Bool XAAInitAccel(ScreenPtr pScreen, XAAInfoRecPtr infoRec); extern _X_EXPORT RegionPtr XAABitBlt(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GC * pGC, int srcx, int srcy, int width, int height, int dstx, int dsty, void (*doBitBlt) (DrawablePtr, DrawablePtr, GCPtr, RegionPtr, DDXPointPtr), unsigned long bitPlane); extern _X_EXPORT void XAAScreenToScreenBitBlt(ScrnInfoPtr pScrn, int nbox, DDXPointPtr pptSrc, BoxPtr pbox, int xdir, int ydir, int alu, unsigned int planemask); extern _X_EXPORT void XAADoBitBlt(DrawablePtr pSrc, DrawablePtr pDst, GC * pGC, RegionPtr prgnDst, DDXPointPtr pptSrc); extern _X_EXPORT void XAADoImageWrite(DrawablePtr pSrc, DrawablePtr pDst, GC * pGC, RegionPtr prgnDst, DDXPointPtr pptSrc); extern _X_EXPORT void XAADoImageRead(DrawablePtr pSrc, DrawablePtr pDst, GC * pGC, RegionPtr prgnDst, DDXPointPtr pptSrc); extern _X_EXPORT void XAACopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc); extern _X_EXPORT RegionPtr XAACopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GC * pGC, int srcx, int srcy, int width, int height, int dstx, int dsty); extern _X_EXPORT void XAAValidateCopyArea(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidatePutImage(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidateCopyPlane(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidatePushPixels(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidateFillSpans(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidatePolyGlyphBlt(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidateImageGlyphBlt(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT void XAAValidatePolylines(GCPtr pGC, unsigned long changes, DrawablePtr pDraw); extern _X_EXPORT RegionPtr XAACopyPlaneColorExpansion(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC, int srcx, int srcy, int width, int height, int dstx, int dsty, unsigned long bitPlane); extern _X_EXPORT void XAAPushPixelsSolidColorExpansion(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDrawable, int dx, int dy, int xOrg, int yOrg); extern _X_EXPORT void XAAWriteBitmapColorExpandMSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpand3MSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpandMSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpand3MSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpandLSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpand3LSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpandLSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapColorExpand3LSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpandMSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpand3MSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpandMSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpand3MSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpandLSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpand3LSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpandLSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWriteBitmapScanlineColorExpand3LSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int skipleft, int fg, int bg, int rop, unsigned int planemask); extern _X_EXPORT void XAAWritePixmap(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int rop, unsigned int planemask, int transparency_color, int bpp, int depth); extern _X_EXPORT void XAAWritePixmapScanline(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int rop, unsigned int planemask, int transparency_color, int bpp, int depth); typedef void (*ClipAndRenderRectsFunc) (GCPtr, int, BoxPtr, int, int); extern _X_EXPORT void XAAClipAndRenderRects(GCPtr pGC, ClipAndRenderRectsFunc func, int nrectFill, xRectangle *prectInit, int xorg, int yorg); typedef void (*ClipAndRenderSpansFunc) (GCPtr, int, DDXPointPtr, int *, int, int, int); extern _X_EXPORT void XAAClipAndRenderSpans(GCPtr pGC, DDXPointPtr ppt, int *pwidth, int nspans, int fSorted, ClipAndRenderSpansFunc func, int xorg, int yorg); extern _X_EXPORT void XAAFillSolidRects(ScrnInfoPtr pScrn, int fg, int rop, unsigned int planemask, int nBox, BoxPtr pBox); extern _X_EXPORT void XAAFillMono8x8PatternRects(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int pat0, int pat1, int xorg, int yorg); extern _X_EXPORT void XAAFillMono8x8PatternRectsScreenOrigin(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int pat0, int pat1, int xorg, int yorg); extern _X_EXPORT void XAAFillColor8x8PatternRectsScreenOrigin(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorigin, int yorigin, XAACacheInfoPtr pCache); extern _X_EXPORT void XAAFillColor8x8PatternRects(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorigin, int yorigin, XAACacheInfoPtr pCache); extern _X_EXPORT void XAAFillCacheBltRects(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, XAACacheInfoPtr pCache); extern _X_EXPORT void XAAFillCacheExpandRects(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillImageWriteRects(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAPolyFillRect(DrawablePtr pDraw, GCPtr pGC, int nrectFill, xRectangle *prectInit); extern _X_EXPORT void XAATEGlyphRendererMSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRenderer3MSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererMSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRenderer3MSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererLSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRenderer3LSBFirstFixedBase(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererLSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRenderer3LSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererScanlineMSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererScanline3MSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererScanlineLSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT void XAATEGlyphRendererScanline3LSBFirst(ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft, int startline, unsigned int **glyphs, int glyphWidth, int fg, int bg, int rop, unsigned planemask); extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncMSBFirstFixedBase[32]) (CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width); extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncMSBFirst[32]) (CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width); extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncLSBFirstFixedBase[32]) (CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width); extern _X_EXPORT CARD32 *(*XAAGlyphScanlineFuncLSBFirst[32]) (CARD32 *base, unsigned int **glyphp, int line, int nglyph, int width); extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncMSBFirstFixedBase(void); extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncMSBFirst(void); extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncLSBFirstFixedBase(void); extern _X_EXPORT GlyphScanlineFuncPtr *XAAGetGlyphScanlineFuncLSBFirst(void); extern _X_EXPORT void XAAFillColorExpandRectsLSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRects3LSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRectsLSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRects3LSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRectsMSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRects3MSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRectsMSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandRects3MSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandRectsLSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandRects3LSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandRectsMSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandRects3MSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int nBox, BoxPtr pBox, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpansLSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpans3LSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpansLSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpans3LSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpansMSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpans3MSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpansMSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillColorExpandSpans3MSBFirstFixedBase(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandSpansLSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandSpans3LSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAPutImage(DrawablePtr pDraw, GCPtr pGC, int depth, int x, int y, int w, int h, int leftPad, int format, char *pImage); extern _X_EXPORT void XAAFillScanlineColorExpandSpansMSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillScanlineColorExpandSpans3MSBFirst(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncMSBFirstFixedBase[6]) (CARD32 *base, CARD32 *src, int offset, int width, int dwords); extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncMSBFirst[6]) (CARD32 *base, CARD32 *src, int offset, int width, int dwords); extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncLSBFirstFixedBase[6]) (CARD32 *base, CARD32 *src, int offset, int width, int dwords); extern _X_EXPORT CARD32 *(*XAAStippleScanlineFuncLSBFirst[6]) (CARD32 *base, CARD32 *src, int offset, int width, int dwords); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirstFixedBase(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncMSBFirst(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirstFixedBase(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFuncLSBFirst(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirstFixedBase(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3MSBFirst(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirstFixedBase(void); extern _X_EXPORT StippleScanlineProcPtr *XAAGetStippleScanlineFunc3LSBFirst(void); extern _X_EXPORT int XAAPolyText8TEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars); extern _X_EXPORT int XAAPolyText16TEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, unsigned short *chars); extern _X_EXPORT void XAAImageText8TEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars); extern _X_EXPORT void XAAImageText16TEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, unsigned short *chars); extern _X_EXPORT void XAAImageGlyphBltTEColorExpansion(DrawablePtr pDrawable, GCPtr pGC, int xInit, int yInit, unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase); extern _X_EXPORT void XAAPolyGlyphBltTEColorExpansion(DrawablePtr pDrawable, GCPtr pGC, int xInit, int yInit, unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase); extern _X_EXPORT int XAAPolyText8NonTEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars); extern _X_EXPORT int XAAPolyText16NonTEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, unsigned short *chars); extern _X_EXPORT void XAAImageText8NonTEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, char *chars); extern _X_EXPORT void XAAImageText16NonTEColorExpansion(DrawablePtr pDraw, GCPtr pGC, int x, int y, int count, unsigned short *chars); extern _X_EXPORT void XAAImageGlyphBltNonTEColorExpansion(DrawablePtr pDrawable, GCPtr pGC, int xInit, int yInit, unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase); extern _X_EXPORT void XAAPolyGlyphBltNonTEColorExpansion(DrawablePtr pDrawable, GCPtr pGC, int xInit, int yInit, unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase); extern _X_EXPORT void XAANonTEGlyphRenderer(ScrnInfoPtr pScrn, int x, int y, int n, NonTEGlyphPtr glyphs, BoxPtr pbox, int fg, int rop, unsigned int planemask); extern _X_EXPORT void XAAFillSolidSpans(ScrnInfoPtr pScrn, int fg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted); extern _X_EXPORT void XAAFillMono8x8PatternSpans(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int patx, int paty, int xorg, int yorg); extern _X_EXPORT void XAAFillMono8x8PatternSpansScreenOrigin(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int patx, int paty, int xorg, int yorg); extern _X_EXPORT void XAAFillColor8x8PatternSpansScreenOrigin(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, XAACacheInfoPtr, int xorigin, int yorigin); extern _X_EXPORT void XAAFillColor8x8PatternSpans(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, XAACacheInfoPtr, int xorigin, int yorigin); extern _X_EXPORT void XAAFillCacheBltSpans(ScrnInfoPtr pScrn, int rop, unsigned int planemask, int n, DDXPointPtr points, int *widths, int fSorted, XAACacheInfoPtr pCache, int xorg, int yorg); extern _X_EXPORT void XAAFillCacheExpandSpans(ScrnInfoPtr pScrn, int fg, int bg, int rop, unsigned int planemask, int n, DDXPointPtr ppt, int *pwidth, int fSorted, int xorg, int yorg, PixmapPtr pPix); extern _X_EXPORT void XAAFillSpans(DrawablePtr pDrawable, GC * pGC, int nInit, DDXPointPtr pptInit, int *pwidth, int fSorted); extern _X_EXPORT void XAAInitPixmapCache(ScreenPtr pScreen, RegionPtr areas, pointer data); extern _X_EXPORT void XAAWriteBitmapToCache(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int fg, int bg); extern _X_EXPORT void XAAWriteBitmapToCacheLinear(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int fg, int bg); extern _X_EXPORT void XAAWritePixmapToCache(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int bpp, int depth); extern _X_EXPORT void XAAWritePixmapToCacheLinear(ScrnInfoPtr pScrn, int x, int y, int w, int h, unsigned char *src, int srcwidth, int bpp, int depth); extern _X_EXPORT void XAASolidHorVertLineAsRects(ScrnInfoPtr pScrn, int x, int y, int len, int dir); extern _X_EXPORT void XAASolidHorVertLineAsTwoPoint(ScrnInfoPtr pScrn, int x, int y, int len, int dir); extern _X_EXPORT void XAASolidHorVertLineAsBresenham(ScrnInfoPtr pScrn, int x, int y, int len, int dir); extern _X_EXPORT void XAAPolyRectangleThinSolid(DrawablePtr pDrawable, GCPtr pGC, int nRectsInit, xRectangle *pRectsInit); extern _X_EXPORT void XAAPolylinesWideSolid(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, DDXPointPtr pPts); extern _X_EXPORT void XAAFillPolygonSolid(DrawablePtr pDrawable, GCPtr pGC, int shape, int mode, int count, DDXPointPtr ptsIn); extern _X_EXPORT void XAAFillPolygonStippled(DrawablePtr pDrawable, GCPtr pGC, int shape, int mode, int count, DDXPointPtr ptsIn); extern _X_EXPORT void XAAFillPolygonTiled(DrawablePtr pDrawable, GCPtr pGC, int shape, int mode, int count, DDXPointPtr ptsIn); extern _X_EXPORT int XAAIsEasyPolygon(DDXPointPtr ptsIn, int count, BoxPtr extents, int origin, DDXPointPtr * topPoint, int *topY, int *bottomY, int shape); extern _X_EXPORT void XAAFillPolygonHelper(ScrnInfoPtr pScrn, DDXPointPtr ptsIn, int count, DDXPointPtr topPoint, int y, int maxy, int origin, RectFuncPtr RectFunc, TrapFuncPtr TrapFunc, int xorg, int yorg, XAACacheInfoPtr pCache); extern _X_EXPORT void XAAPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg); extern _X_EXPORT void XAAPolyLines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, DDXPointPtr pptInit); extern _X_EXPORT void XAAPolySegmentDashed(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSeg); extern _X_EXPORT void XAAPolyLinesDashed(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt, DDXPointPtr pptInit); extern _X_EXPORT void XAAWriteMono8x8PatternToCache(ScrnInfoPtr pScrn, XAACacheInfoPtr pCache); extern _X_EXPORT void XAAWriteColor8x8PatternToCache(ScrnInfoPtr pScrn, PixmapPtr pPix, XAACacheInfoPtr pCache); extern _X_EXPORT void XAARotateMonoPattern(int *pat0, int *pat1, int xoffset, int yoffset, Bool msbfirst); extern _X_EXPORT void XAAComputeDash(GCPtr pGC); extern _X_EXPORT void XAAMoveDWORDS_FixedBase(register CARD32 *dest, register CARD32 *src, register int dwords); extern _X_EXPORT void XAAMoveDWORDS_FixedSrc(register CARD32 *dest, register CARD32 *src, register int dwords); extern _X_EXPORT void XAAMoveDWORDS(register CARD32 *dest, register CARD32 *src, register int dwords); extern _X_EXPORT int XAAGetRectClipBoxes(GCPtr pGC, BoxPtr pboxClippedBase, int nrectFill, xRectangle *prectInit); extern _X_EXPORT void XAASetupOverlay8_32Planar(ScreenPtr); extern _X_EXPORT void XAAPolyFillArcSolid(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc * parcs); extern _X_EXPORT XAACacheInfoPtr XAACacheTile(ScrnInfoPtr Scrn, PixmapPtr pPix); extern _X_EXPORT XAACacheInfoPtr XAACacheMonoStipple(ScrnInfoPtr Scrn, PixmapPtr pPix); extern _X_EXPORT XAACacheInfoPtr XAACachePlanarMonoStipple(ScrnInfoPtr Scrn, PixmapPtr pPix); typedef XAACacheInfoPtr(*XAACachePlanarMonoStippleProc) (ScrnInfoPtr, PixmapPtr); extern _X_EXPORT XAACachePlanarMonoStippleProc XAAGetCachePlanarMonoStipple(void); extern _X_EXPORT XAACacheInfoPtr XAACacheStipple(ScrnInfoPtr Scrn, PixmapPtr pPix, int fg, int bg); extern _X_EXPORT XAACacheInfoPtr XAACacheMono8x8Pattern(ScrnInfoPtr Scrn, int pat0, int pat1); extern _X_EXPORT XAACacheInfoPtr XAACacheColor8x8Pattern(ScrnInfoPtr Scrn, PixmapPtr pPix, int fg, int bg); extern _X_EXPORT void XAATileCache(ScrnInfoPtr pScrn, XAACacheInfoPtr pCache, int w, int h); extern _X_EXPORT void XAAClosePixmapCache(ScreenPtr pScreen); void XAAInvalidatePixmapCache(ScreenPtr pScreen); extern _X_EXPORT Bool XAACheckStippleReducibility(PixmapPtr pPixmap); extern _X_EXPORT Bool XAACheckTileReducibility(PixmapPtr pPixmap, Bool checkMono); extern _X_EXPORT int XAAStippledFillChooser(GCPtr pGC); extern _X_EXPORT int XAAOpaqueStippledFillChooser(GCPtr pGC); extern _X_EXPORT int XAATiledFillChooser(GCPtr pGC); extern _X_EXPORT void XAAMoveInOffscreenPixmaps(ScreenPtr pScreen); extern _X_EXPORT void XAAMoveOutOffscreenPixmaps(ScreenPtr pScreen); extern _X_EXPORT void XAARemoveAreaCallback(FBAreaPtr area); extern _X_EXPORT void XAAMoveOutOffscreenPixmap(PixmapPtr pPix); extern _X_EXPORT Bool XAAInitStateWrap(ScreenPtr pScreen, XAAInfoRecPtr infoRec); extern _X_EXPORT void XAAComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height); extern _X_EXPORT Bool XAADoComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height); extern _X_EXPORT void XAAGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlist, GlyphListPtr list, GlyphPtr * glyphs); extern _X_EXPORT Bool XAADoGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlist, GlyphListPtr list, GlyphPtr * glyphs); /* helpers */ extern _X_EXPORT void XAA_888_plus_PICT_a8_to_8888(CARD32 color, CARD8 *alphaPtr, /* in bytes */ int alphaPitch, CARD32 *dstPtr, int dstPitch, /* in dwords */ int width, int height); extern _X_EXPORT Bool XAAGetRGBAFromPixel(CARD32 pixel, CARD16 *red, CARD16 *green, CARD16 *blue, CARD16 *alpha, CARD32 format); extern _X_EXPORT Bool XAAGetPixelFromRGBA(CARD32 *pixel, CARD16 red, CARD16 green, CARD16 blue, CARD16 alpha, CARD32 format); /* XXX should be static */ extern _X_EXPORT GCOps XAAFallbackOps; extern _X_EXPORT GCOps *XAAGetFallbackOps(void); extern _X_EXPORT GCFuncs XAAGCFuncs; extern _X_EXPORT DevPrivateKey XAAGetScreenKey(void); extern _X_EXPORT DevPrivateKey XAAGetGCKey(void); extern _X_EXPORT DevPrivateKey XAAGetPixmapKey(void); extern _X_EXPORT unsigned int XAAShiftMasks[32]; extern _X_EXPORT unsigned int byte_expand3[256], byte_reversed_expand3[256]; extern _X_EXPORT CARD32 XAAReverseBitOrder(CARD32 data); #define GET_XAASCREENPTR_FROM_SCREEN(pScreen)\ dixLookupPrivate(&(pScreen)->devPrivates, XAAGetScreenKey()) #define GET_XAASCREENPTR_FROM_GC(pGC)\ dixLookupPrivate(&(pGC)->pScreen->devPrivates, XAAGetScreenKey()) #define GET_XAASCREENPTR_FROM_DRAWABLE(pDraw)\ dixLookupPrivate(&(pDraw)->pScreen->devPrivates, XAAGetScreenKey()) #define GET_XAAINFORECPTR_FROM_SCREEN(pScreen)\ ((XAAScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, XAAGetScreenKey()))->AccelInfoRec #define GET_XAAINFORECPTR_FROM_GC(pGC)\ ((XAAScreenPtr)dixLookupPrivate(&(pGC)->pScreen->devPrivates, XAAGetScreenKey()))->AccelInfoRec #define GET_XAAINFORECPTR_FROM_DRAWABLE(pDraw)\ ((XAAScreenPtr)dixLookupPrivate(&(pDraw)->pScreen->devPrivates, XAAGetScreenKey()))->AccelInfoRec #define GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn)\ ((XAAScreenPtr)dixLookupPrivate(&(pScrn)->pScreen->devPrivates, XAAGetScreenKey()))->AccelInfoRec #define XAA_GET_PIXMAP_PRIVATE(pix)\ (XAAPixmapPtr)dixLookupPrivate(&(pix)->devPrivates, XAAGetPixmapKey()) #define CHECK_RGB_EQUAL(c) (!((((c) >> 8) ^ (c)) & 0xffff)) #define CHECK_FG(pGC, flags) \ (!(flags & RGB_EQUAL) || CHECK_RGB_EQUAL(pGC->fgPixel)) #define CHECK_BG(pGC, flags) \ (!(flags & RGB_EQUAL) || CHECK_RGB_EQUAL(pGC->bgPixel)) #define CHECK_ROP(pGC, flags) \ (!(flags & GXCOPY_ONLY) || (pGC->alu == GXcopy)) #define CHECK_ROPSRC(pGC, flags) \ (!(flags & ROP_NEEDS_SOURCE) || ((pGC->alu != GXclear) && \ (pGC->alu != GXnoop) && (pGC->alu != GXinvert) && \ (pGC->alu != GXset))) #define CHECK_PLANEMASK(pGC, flags) \ (!(flags & NO_PLANEMASK) || \ ((pGC->planemask & infoRec->FullPlanemasks[pGC->depth - 1]) == \ infoRec->FullPlanemasks[pGC->depth - 1])) #define CHECK_COLORS(pGC, flags) \ (!(flags & RGB_EQUAL) || \ (CHECK_RGB_EQUAL(pGC->fgPixel) && CHECK_RGB_EQUAL(pGC->bgPixel))) #define CHECK_NO_GXCOPY(pGC, flags) \ ((pGC->alu != GXcopy) || !(flags & NO_GXCOPY) || \ ((pGC->planemask & infoRec->FullPlanemask) != infoRec->FullPlanemask)) #define IS_OFFSCREEN_PIXMAP(pPix)\ ((XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pPix)))->offscreenArea) #define PIXMAP_IS_SHARED(pPix)\ ((XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pPix)))->flags & SHARED_PIXMAP) #define OFFSCREEN_PIXMAP_LOCKED(pPix)\ ((XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pPix)))->flags & LOCKED_PIXMAP) #define XAA_DEPTH_BUG(pGC) \ ((pGC->depth == 32) && (pGC->bgPixel == 0xffffffff)) #define DELIST_OFFSCREEN_PIXMAP(pPix) { \ PixmapLinkPtr _pLink, _prev; \ _pLink = infoRec->OffscreenPixmaps; \ _prev = NULL; \ while(_pLink) { \ if(_pLink->pPix == pPix) { \ if(_prev) _prev->next = _pLink->next; \ else infoRec->OffscreenPixmaps = _pLink->next; \ free(_pLink); \ break; \ } \ _prev = _pLink; \ _pLink = _pLink->next; \ }} #define SWAP_BITS_IN_BYTES(v) \ (((0x01010101 & (v)) << 7) | ((0x02020202 & (v)) << 5) | \ ((0x04040404 & (v)) << 3) | ((0x08080808 & (v)) << 1) | \ ((0x10101010 & (v)) >> 1) | ((0x20202020 & (v)) >> 3) | \ ((0x40404040 & (v)) >> 5) | ((0x80808080 & (v)) >> 7)) /* * Moved XAAPixmapCachePrivate here from xaaPCache.c, since driver * replacements for CacheMonoStipple need access to it */ typedef struct { int Num512x512; int Current512; XAACacheInfoPtr Info512; int Num256x256; int Current256; XAACacheInfoPtr Info256; int Num128x128; int Current128; XAACacheInfoPtr Info128; int NumMono; int CurrentMono; XAACacheInfoPtr InfoMono; int NumColor; int CurrentColor; XAACacheInfoPtr InfoColor; int NumPartial; int CurrentPartial; XAACacheInfoPtr InfoPartial; DDXPointRec MonoOffsets[64]; DDXPointRec ColorOffsets[64]; } XAAPixmapCachePrivate, *XAAPixmapCachePrivatePtr; #endif /* _XAALOCAL_H */