From 30eaf03aef5847adb6da7efd4bbf4a4abaf5d738 Mon Sep 17 00:00:00 2001
From: marha <marha@users.sourceforge.net>
Date: Wed, 1 Dec 2010 06:54:34 +0000
Subject: xserver libX11 libxcb update 1/12/2010

---
 xorg-server/hw/xfree86/xaa/xaa.h | 2790 +++++++++++++++++++-------------------
 1 file changed, 1394 insertions(+), 1396 deletions(-)

(limited to 'xorg-server/hw/xfree86/xaa')

diff --git a/xorg-server/hw/xfree86/xaa/xaa.h b/xorg-server/hw/xfree86/xaa/xaa.h
index 2af954fee..6e5a2389a 100644
--- a/xorg-server/hw/xfree86/xaa/xaa.h
+++ b/xorg-server/hw/xfree86/xaa/xaa.h
@@ -1,1396 +1,1394 @@
-
-#ifndef _XAA_H
-#define _XAA_H
-
-#define XAA_VERSION_MAJOR   1
-#define XAA_VERSION_MINOR   2
-#define XAA_VERSION_RELEASE 1
-
-/*
-
-   ******** OPERATION SPECIFIC FLAGS *********
-
-   **** solid/dashed line flags ****
- 
----------               --------
-23           LINE_PATTERN_LSBFIRST_MSBJUSTIFIED
-22           LINE_PATTERN_LSBFIRST_LSBJUSTIFIED
-21           LINE_PATTERN_MSBFIRST_MSBJUSTIFIED
-20           LINE_PATTERN_MSBFIRST_LSBJUSTIFIED
-19           LINE_PATTERN_POWER_OF_2_ONLY
-18           LINE_LIMIT_COORDS
-17                         .
-16                         .
----------               -------
-
-   **** screen to screen copy flags ****
-
----------               --------
-23           ONLY_LEFT_TO_RIGHT_BITBLT
-22           ONLY_TWO_BITBLT_DIRECTIONS
-21                         .
-20                         .
-19                         .
-18                         .
-17                         .
-16                         .
----------               -------
-
-   ****  clipping flags ****
-
----------               --------
-23                         .
-22           HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND
-21           HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY
-20           HARDWARE_CLIP_MONO_8x8_FILL
-19           HARDWARE_CLIP_COLOR_8x8_FILL    
-18           HARDWARE_CLIP_SOLID_FILL
-17           HARDWARE_CLIP_DASHED_LINE
-16           HARDWARE_CLIP_SOLID_LINE
----------               -------
-
-
-   ****  hardware pattern flags ****
-
----------               --------
-23                         .
-22                         .
-21           HARDWARE_PATTERN_SCREEN_ORIGIN
-20                         .
-19                         .
-18                         .
-17           HARDWARE_PATTERN_PROGRAMMED_ORIGIN
-16           HARDWARE_PATTERN_PROGRAMMED_BITS
----------               -------
-
-   ****  write pixmap flags ****
-
----------               --------
-23                         .
-22                         .
-21                         .
-20                         .
-19                         .
-18                         .
-17                         .
-16           CONVERT_32BPP_TO_24BPP
----------               -------
-
-
-   ******** GENERIC FLAGS *********
-
----------               -------
-15           SYNC_AFTER_COLOR_EXPAND
-14           CPU_TRANSFER_PAD_QWORD
-13                         .
-12           LEFT_EDGE_CLIPPING_NEGATIVE_X
-11	     LEFT_EDGE_CLIPPING
-10	     CPU_TRANSFER_BASE_FIXED
- 9           BIT_ORDER_IN_BYTE_MSBFIRST           
- 8           TRANSPARENCY_GXCOPY_ONLY
----------               -------
- 7           NO_TRANSPARENCY
- 6           TRANSPARENCY_ONLY
- 5           ROP_NEEDS_SOURCE
- 4           TRIPLE_BITS_24BPP
- 3           RGB_EQUAL
- 2           NO_PLANEMASK
- 1           NO_GXCOPY
- 0           GXCOPY_ONLY
----------               -------
-
-
-*/
-
-#include "gcstruct.h"
-#include "pixmapstr.h"
-#include "xf86str.h"
-#include "regionstr.h"
-#include "xf86fbman.h"
-
-#include "picturestr.h"
-
-/* Flags */
-#define PIXMAP_CACHE			0x00000001
-#define MICROSOFT_ZERO_LINE_BIAS	0x00000002
-#define OFFSCREEN_PIXMAPS		0x00000004
-#define LINEAR_FRAMEBUFFER		0x00000008
-
-
-/* GC fg, bg, and planemask restrictions */
-#define GXCOPY_ONLY			0x00000001
-#define NO_GXCOPY			0x00000002
-#define NO_PLANEMASK			0x00000004
-#define RGB_EQUAL			0x00000008
-#define TRIPLE_BITS_24BPP		0x00000010
-#define ROP_NEEDS_SOURCE		0x00000020
-
-/* transparency restrictions */
-#define TRANSPARENCY_ONLY		0x00000040
-#define NO_TRANSPARENCY			0x00000080
-#define TRANSPARENCY_GXCOPY_ONLY     	0x00000100
-
-/* bit order restrictions */
-#define BIT_ORDER_IN_BYTE_MSBFIRST	0x00000200
-#define BIT_ORDER_IN_BYTE_LSBFIRST	0x00000000
-
-/* transfer base restriction */
-#define CPU_TRANSFER_BASE_FIXED		0x00000400
-
-/* skipleft restrictions */
-#define LEFT_EDGE_CLIPPING		0x00000800
-#define LEFT_EDGE_CLIPPING_NEGATIVE_X	0x00001000
-
-/* data padding */
-#define CPU_TRANSFER_PAD_DWORD		0x00000000
-#define CPU_TRANSFER_PAD_QWORD		0x00004000
-#define SCANLINE_PAD_DWORD		0x00000000
-
-#define SYNC_AFTER_COLOR_EXPAND		0x00008000
-#define SYNC_AFTER_IMAGE_WRITE		SYNC_AFTER_COLOR_EXPAND
-
-/* hardware pattern */
-#define HARDWARE_PATTERN_PROGRAMMED_BITS	0x00010000
-#define HARDWARE_PATTERN_PROGRAMMED_ORIGIN	0x00020000
-#define HARDWARE_PATTERN_SCREEN_ORIGIN		0x00200000
-
-/* copyarea flags */
-#define ONLY_TWO_BITBLT_DIRECTIONS	0x00400000
-#define ONLY_LEFT_TO_RIGHT_BITBLT	0x00800000
-
-/* line flags */
-#define LINE_PATTERN_LSBFIRST_MSBJUSTIFIED	0x00800000
-#define LINE_PATTERN_LSBFIRST_LSBJUSTIFIED	0x00400000
-#define LINE_PATTERN_MSBFIRST_MSBJUSTIFIED	0x00200000
-#define LINE_PATTERN_MSBFIRST_LSBJUSTIFIED	0x00100000
-#define LINE_PATTERN_POWER_OF_2_ONLY		0x00080000
-#define LINE_LIMIT_COORDS			0x00040000
-
-/* clipping flags */
-#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND	0x00400000
-#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY		0x00200000
-#define HARDWARE_CLIP_MONO_8x8_FILL			0x00100000
-#define HARDWARE_CLIP_COLOR_8x8_FILL			0x00080000
-#define HARDWARE_CLIP_SOLID_FILL			0x00040000
-#define HARDWARE_CLIP_DASHED_LINE			0x00020000
-#define HARDWARE_CLIP_SOLID_LINE			0x00010000
-
-#define HARDWARE_CLIP_LINE				0x00000000
-
-
-/* image write flags */
-#define CONVERT_32BPP_TO_24BPP			0x00010000
-
-/* pixmap cache flags */
-#define CACHE_MONO_8x8			0x00000001
-#define CACHE_COLOR_8x8			0x00000002
-#define DO_NOT_BLIT_STIPPLES		0x00000004
-#define DO_NOT_TILE_MONO_DATA		0x00000008	
-#define DO_NOT_TILE_COLOR_DATA		0x00000010
-
-
-#define DEGREES_0	0
-#define DEGREES_90	1
-#define DEGREES_180	2
-#define DEGREES_270	3
-
-#define OMIT_LAST	1
-
-/* render flags */
-
-#define XAA_RENDER_POWER_OF_2_TILE_ONLY	0x00000008
-#define XAA_RENDER_NO_SRC_ALPHA		0x00000004
-#define XAA_RENDER_IMPRECISE_ONLY	0x00000002	
-#define XAA_RENDER_NO_TILE		0x00000001		
-
-#define XAA_RENDER_REPEAT		0x00000001
-
-typedef void (* ValidateGCProcPtr)(
-   GCPtr         pGC,
-   unsigned long changes,
-   DrawablePtr   pDraw
-);
-
-typedef struct {
-    unsigned char *bits;
-    int width;
-    int height;
-    int yoff;
-    int srcwidth;
-    int start;
-    int end;
-} NonTEGlyphInfo, *NonTEGlyphPtr;
-
-
-typedef struct {
-   int x;
-   int y;
-   int w;
-   int h;
-   int orig_w;
-   int orig_h;
-   unsigned long serialNumber;
-   int pat0;
-   int pat1;
-   int fg;
-   int bg;
-   int trans_color;
-   DDXPointPtr offsets;
-   DevUnion devPrivate;
-} XAACacheInfoRec, *XAACacheInfoPtr;
-
-
-typedef struct _PixmapLink {
-  PixmapPtr pPix;
-  struct _PixmapLink *next;
-  FBAreaPtr area;
-} PixmapLink, *PixmapLinkPtr;
-
-typedef struct _XAAInfoRec {
-   ScrnInfoPtr pScrn;
-   int Flags;
-
-   void (*Sync)(
-	ScrnInfoPtr pScrn
-   );
-   
-   /* Restore Accel State is a driver callback that is used
-    * when another screen on the same device has been active.
-    * This allows multihead on a single device to work.
-    * If The entityProp has IS_SHARED_ACCEL defined then this
-    * function is required.
-    */
-   
-   void (*RestoreAccelState)(
-	ScrnInfoPtr pScrn
-   );
-
-   /***************** Low Level *****************/
-
-/* Blits */
-   void (*SetupForScreenToScreenCopy)(
-	ScrnInfoPtr pScrn,
-	int xdir, int ydir,
-	int rop,
-	unsigned int planemask,
-	int trans_color
-   );
-   int ScreenToScreenCopyFlags;
-
-   void (*SubsequentScreenToScreenCopy)(
-	ScrnInfoPtr pScrn,
-	int xsrc, int ysrc,
-	int xdst, int ydst,
-	int w, int h
-   );
-
-   
-/* Solid fills */
-   void (*SetupForSolidFill)(
-	ScrnInfoPtr pScrn,
-	int color,
-	int rop,
-	unsigned int planemask
-   );    
-   int SolidFillFlags;  
-
-   void (*SubsequentSolidFillRect)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h
-   );    
-
-   void (*SubsequentSolidFillTrap)(
-	ScrnInfoPtr pScrn,
-	int y, int h, 
-	int left, int dxL, int dyL, int eL,
-	int right, int dxR, int dyR, int eR
-   );
-
-
-/* Solid lines */
-
-   void (*SetupForSolidLine)(
-	ScrnInfoPtr pScrn,
-	int color,
-	int rop,
-	unsigned int planemask
-   );    
-   int SolidLineFlags;  
-
-   void (*SubsequentSolidTwoPointLine)(
-	ScrnInfoPtr pScrn,
-	int xa, int ya, int xb, int yb, int flags
-   );   
-
-   void (*SubsequentSolidBresenhamLine)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int absmaj, int absmin, int err, int len, int octant
-   );   
-   int SolidBresenhamLineErrorTermBits;
-
-   void (*SubsequentSolidHorVertLine)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int len, int dir
-   );   
-
-/* Dashed lines */
-
-   void (*SetupForDashedLine)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg,
-	int rop,
-	unsigned int planemask,
-	int length,
-	unsigned char *pattern
-   );    
-   int DashedLineFlags; 
-   int DashPatternMaxLength; 
-
-   void (*SubsequentDashedTwoPointLine)(
-	ScrnInfoPtr pScrn,
-	int xa, int ya, int xb, int yb, int flags, int phase
-   );   
-
-   void (*SubsequentDashedBresenhamLine)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int absmaj, int absmin, int err, int len, int flags,
-	int phase
-   );   
-   int DashedBresenhamLineErrorTermBits;
-
-/* Clipper */
-
-   void (*SetClippingRectangle) (
-	ScrnInfoPtr pScrn,
-	int left, int top, int right, int bottom
-   );
-   int ClippingFlags;
-
-   void (*DisableClipping)(ScrnInfoPtr pScrn);
-
-/* 8x8 mono pattern fills */
-   void (*SetupForMono8x8PatternFill)(
-	ScrnInfoPtr pScrn,
-	int patx, int paty,
-	int fg, int bg,
-	int rop,
-	unsigned int planemask
-   );
-   int Mono8x8PatternFillFlags; 
-
-   void (*SubsequentMono8x8PatternFillRect)(
-	ScrnInfoPtr pScrn,
-	int patx, int paty,
-	int x, int y, int w, int h
-   );
-
-   void (*SubsequentMono8x8PatternFillTrap)(
-	ScrnInfoPtr pScrn,
-        int patx, int paty,
-	int y, int h, 
-	int left, int dxL, int dyL, int eL,
-	int right, int dxR, int dyR, int eR
-   );
-
-/* 8x8 color pattern fills */
-
-   void (*SetupForColor8x8PatternFill)(
-	ScrnInfoPtr pScrn,
-	int patx, int paty,
-	int rop,
-	unsigned int planemask,
-	int transparency_color
-   );
-   int Color8x8PatternFillFlags; 
-
-   void (*SubsequentColor8x8PatternFillRect)(
-	ScrnInfoPtr pScrn,
-	int patx, int paty,
-	int x, int y, int w, int h
-   );
-
-   void (*SubsequentColor8x8PatternFillTrap)(
-	ScrnInfoPtr pScrn,
-        int patx, int paty,
-	int y, int h, 
-	int left, int dxL, int dyL, int eL,
-	int right, int dxR, int dyR, int eR
-   );
-
-
-/* Color expansion */
-
-   void (*SetupForCPUToScreenColorExpandFill)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg,
-	int rop,
-	unsigned int planemask
-   );     
-   int CPUToScreenColorExpandFillFlags;  
-
-   void (*SubsequentCPUToScreenColorExpandFill)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	int skipleft
-   );
-
-   unsigned char *ColorExpandBase;
-   int ColorExpandRange;
-
-
-/* Scanline color expansion  */
-
-   void (*SetupForScanlineCPUToScreenColorExpandFill)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg,
-	int rop,
-	unsigned int planemask
-   );  
-   int ScanlineCPUToScreenColorExpandFillFlags;
-
-   void (*SubsequentScanlineCPUToScreenColorExpandFill)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	int skipleft
-   );
-
-   void (*SubsequentColorExpandScanline)(
-	ScrnInfoPtr pScrn,
-	int bufno
-   );
-
-   int NumScanlineColorExpandBuffers;
-   unsigned char **ScanlineColorExpandBuffers;
-
-/* Screen to screen color expansion */
-
-   void (*SetupForScreenToScreenColorExpandFill) (
-	ScrnInfoPtr pScrn,
-	int fg, int bg,
-	int rop,
-	unsigned int planemask
-   );
-   int ScreenToScreenColorExpandFillFlags;
-
-   void (*SubsequentScreenToScreenColorExpandFill)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	int srcx, int srcy, int skipleft
-   );
-   
-
-/*  Image transfers */
-
-   void (*SetupForImageWrite)(
-	ScrnInfoPtr pScrn,
-	int rop,
-	unsigned int planemask,
-	int transparency_color,
-	int bpp, int depth
-   );
-   int ImageWriteFlags;
-
-   void (*SubsequentImageWriteRect)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	int skipleft
-   );
-   unsigned char *ImageWriteBase;
-   int ImageWriteRange;
-	
-/*  Scanline Image transfers */
-
-   void (*SetupForScanlineImageWrite)(
-	ScrnInfoPtr pScrn,
-	int rop,
-	unsigned int planemask,
-	int transparency_color,
-	int bpp, int depth
-   );
-   int ScanlineImageWriteFlags;
-
-   void (*SubsequentScanlineImageWriteRect)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	int skipleft
-   );
-
-   void (*SubsequentImageWriteScanline) (
-	ScrnInfoPtr pScrn,
-	int bufno
-   );
-   
-   int NumScanlineImageWriteBuffers;
-   unsigned char **ScanlineImageWriteBuffers;
-
-  /* Image Reads - OBSOLETE AND NOT USED */
-
-   void (*SetupForImageRead) (
-	ScrnInfoPtr pScrn,
-	int bpp, int depth
-   );
-   int ImageReadFlags;
-
-   unsigned char *ImageReadBase;
-   int ImageReadRange;
-
-   void (*SubsequentImageReadRect)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h
-   );  
-
-
-   /***************** Mid Level *****************/
-   void (*ScreenToScreenBitBlt)(
-	ScrnInfoPtr pScrn,
-	int nbox,
-	DDXPointPtr pptSrc,
-        BoxPtr pbox,
-	int xdir, int ydir,
-	int alu,
-	unsigned int planmask
-   );
-   int ScreenToScreenBitBltFlags;
-
-   void (*WriteBitmap) (
-	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
-   );
-   int WriteBitmapFlags;
-
-   void (*FillSolidRects)(
-	ScrnInfoPtr pScrn,
-	int fg, int rop,
-        unsigned int planemask,
-	int nBox,
-	BoxPtr pBox 
-   );
-   int FillSolidRectsFlags;
-
-   void (*FillMono8x8PatternRects)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg, int rop,
-        unsigned int planemask,
-	int nBox,
-	BoxPtr pBox, 
-	int pat0, int pat1,
-	int xorg, int yorg
-   );
-   int FillMono8x8PatternRectsFlags;
-
-   void (*FillColor8x8PatternRects)(
-	ScrnInfoPtr pScrn,
-	int rop,
-        unsigned int planemask,
-	int nBox,
-	BoxPtr pBox,
-	int xorg, int yorg,
-	XAACacheInfoPtr pCache
-   );
-   int FillColor8x8PatternRectsFlags;
-
-   void (*FillCacheBltRects)(
-	ScrnInfoPtr pScrn,
-	int rop,
-        unsigned int planemask,
-	int nBox,
-	BoxPtr pBox,
-	int xorg, int yorg,
-	XAACacheInfoPtr pCache
-   );
-   int FillCacheBltRectsFlags;
-
-   void (*FillColorExpandRects)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg, int rop,
-        unsigned int planemask,
-	int nBox,
-	BoxPtr pBox,
-	int xorg, int yorg,
-	PixmapPtr pPix
-   );
-   int FillColorExpandRectsFlags;
-
-   void (*FillCacheExpandRects)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg, int rop,
-	unsigned int planemask,
-	int nBox,
-	BoxPtr pBox,
-	int xorg, int yorg,
-	PixmapPtr pPix
-   );
-   int FillCacheExpandRectsFlags;
-
-   void (*FillImageWriteRects)(
-	ScrnInfoPtr pScrn,
-	int rop,
-	unsigned int planemask,
-	int nBox,
-	BoxPtr pBox,
-	int xorg, int yorg,
-	PixmapPtr pPix
-   );
-   int FillImageWriteRectsFlags;
-   
-
-   void (*FillSolidSpans)(
-	ScrnInfoPtr pScrn,
-	int fg, int rop,
-        unsigned int planemask,
-	int n,
-	DDXPointPtr points,
-	int *widths,
-	int fSorted 
-   );
-   int FillSolidSpansFlags;
-
-   void (*FillMono8x8PatternSpans)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg, int rop,
-        unsigned int planemask,
-	int n,
-	DDXPointPtr points,
-	int *widths,
-	int fSorted, 
-	int pat0, int pat1,
-	int xorg, int yorg
-   );
-   int FillMono8x8PatternSpansFlags;
-
-   void (*FillColor8x8PatternSpans)(
-	ScrnInfoPtr pScrn,
-	int rop,
-        unsigned int planemask,
-	int n,
-	DDXPointPtr points,
-	int *widths,
-	int fSorted,
-	XAACacheInfoPtr pCache,
-	int xorg, int yorg
-   );
-   int FillColor8x8PatternSpansFlags;
-
-   void (*FillCacheBltSpans)(
-	ScrnInfoPtr pScrn,
-	int rop,
-        unsigned int planemask,
-	int n,
-	DDXPointPtr points,
-	int *widths,
-	int fSorted,
-	XAACacheInfoPtr pCache,
-	int xorg, int yorg
-   );
-   int FillCacheBltSpansFlags;
-
-   void (*FillColorExpandSpans)(
-	ScrnInfoPtr pScrn,
-	int fg, int bg, int rop,
-        unsigned int planemask,
-	int n,
-	DDXPointPtr points,
-	int *widths,
-	int fSorted,
-	int xorg, int yorg,
-	PixmapPtr pPix
-   );
-   int FillColorExpandSpansFlags;
-
-   void (*FillCacheExpandSpans)(
-	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
-   );
-   int FillCacheExpandSpansFlags;
-
-   void (*TEGlyphRenderer)(
-	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
-   );
-   int TEGlyphRendererFlags;
-
-   void (*NonTEGlyphRenderer)(
-	ScrnInfoPtr pScrn,
-	int x, int y, int n,
-	NonTEGlyphPtr glyphs,
-	BoxPtr pbox,
-	int fg, int rop,
-	unsigned int planemask
-   );
-   int NonTEGlyphRendererFlags;
-
-   void (*WritePixmap) (
-	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
-   );
-   int WritePixmapFlags;
-
-   void (*ReadPixmap) (
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	unsigned char *dst,	
-	int dstwidth,
-	int bpp, int depth
-   );
-   int ReadPixmapFlags;
-
-   /***************** GC Level *****************/
-   RegionPtr (*CopyArea)(
-	DrawablePtr pSrcDrawable,
-	DrawablePtr pDstDrawable,
-	GC *pGC,
-	int srcx, int srcy,
-	int width, int height,
-	int dstx, int dsty
-   );
-   int CopyAreaFlags;
-
-   RegionPtr (*CopyPlane)(
-	DrawablePtr pSrc,
-	DrawablePtr pDst,
-	GCPtr pGC,
-	int srcx, int srcy,
-	int width, int height,
-	int dstx, int dsty,
-	unsigned long bitPlane
-   );
-   int CopyPlaneFlags;
-
-   void (*PushPixelsSolid) (
-	GCPtr	pGC,
-	PixmapPtr pBitMap,
-	DrawablePtr pDrawable,
-	int dx, int dy, 
-	int xOrg, int yOrg
-   );
-   int PushPixelsFlags; 
-
-   /** PolyFillRect **/
-
-   void (*PolyFillRectSolid)(
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int nrectFill, 	
-	xRectangle *prectInit
-   );  
-   int PolyFillRectSolidFlags;
-
-   void (*PolyFillRectStippled)(
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int nrectFill, 	
-	xRectangle *prectInit
-   );  
-   int PolyFillRectStippledFlags;
-
-   void (*PolyFillRectOpaqueStippled)(
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int nrectFill, 	
-	xRectangle *prectInit
-   );  
-   int PolyFillRectOpaqueStippledFlags;
-
-   void (*PolyFillRectTiled)(
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int nrectFill, 	
-	xRectangle *prectInit
-   );  
-   int PolyFillRectTiledFlags;
-
-   /** FillSpans **/   
-
-   void (*FillSpansSolid)(
-	DrawablePtr	pDraw,
-	GCPtr		pGC,
-	int		nInit,
-	DDXPointPtr 	ppt,
-	int		*pwidth,
-	int		fSorted 
-   );
-   int FillSpansSolidFlags;
-
-   void (*FillSpansStippled)(
-	DrawablePtr	pDraw,
-	GCPtr		pGC,
-	int		nInit,
-	DDXPointPtr 	ppt,
-	int		*pwidth,
-	int		fSorted 
-   );
-   int FillSpansStippledFlags;
-
-   void (*FillSpansOpaqueStippled)(
-	DrawablePtr	pDraw,
-	GCPtr		pGC,
-	int		nInit,
-	DDXPointPtr 	ppt,
-	int		*pwidth,
-	int		fSorted 
-   );
-   int FillSpansOpaqueStippledFlags;
-
-   void (*FillSpansTiled)(
-	DrawablePtr	pDraw,
-	GCPtr		pGC,
-	int		nInit,
-	DDXPointPtr 	ppt,
-	int		*pwidth,
-	int		fSorted 
-   );
-   int FillSpansTiledFlags;
-
-   int (*PolyText8TE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	char *chars
-   );
-   int PolyText8TEFlags;
-
-   int (*PolyText16TE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	unsigned short *chars
-   );
-   int PolyText16TEFlags;
-
-   void (*ImageText8TE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	char *chars
-   );
-   int ImageText8TEFlags;
-
-   void (*ImageText16TE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	unsigned short *chars
-   );
-   int ImageText16TEFlags;
-
-   void (*ImageGlyphBltTE) (
-	DrawablePtr pDrawable,
-	GCPtr pGC,
-	int xInit, int yInit,
-	unsigned int nglyph,
-	CharInfoPtr *ppci,
-	pointer pglyphBase 
-   );
-   int ImageGlyphBltTEFlags;
-
-   void (*PolyGlyphBltTE) (
-	DrawablePtr pDrawable,
-	GCPtr pGC,
-	int xInit, int yInit,
-	unsigned int nglyph,
-	CharInfoPtr *ppci,
-	pointer pglyphBase 
-   );
-   int PolyGlyphBltTEFlags;
-
-   int (*PolyText8NonTE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	char *chars
-   );
-   int PolyText8NonTEFlags;
-
-   int (*PolyText16NonTE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	unsigned short *chars
-   );
-   int PolyText16NonTEFlags;
-
-   void (*ImageText8NonTE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	char *chars
-   );
-   int ImageText8NonTEFlags;
-
-   void (*ImageText16NonTE) (
-	DrawablePtr pDraw,
-	GCPtr pGC,
-	int x, int y,
-	int count,
-	unsigned short *chars
-   );
-   int ImageText16NonTEFlags;
-
-   void (*ImageGlyphBltNonTE) (
-	DrawablePtr pDrawable,
-	GCPtr pGC,
-	int xInit, int yInit,
-	unsigned int nglyph,
-	CharInfoPtr *ppci,
-	pointer pglyphBase 
-   );
-   int ImageGlyphBltNonTEFlags;
-
-   void (*PolyGlyphBltNonTE) (
-	DrawablePtr pDrawable,
-	GCPtr pGC,
-	int xInit, int yInit,
-	unsigned int nglyph,
-	CharInfoPtr *ppci,
-	pointer pglyphBase 
-   );
-   int PolyGlyphBltNonTEFlags;
-
-   void (*PolyRectangleThinSolid)(
-	DrawablePtr  pDrawable,
-	GCPtr        pGC,    
-	int	     nRectsInit,
-	xRectangle  *pRectsInit 
-   );
-   int PolyRectangleThinSolidFlags;
-
-   void (*PolylinesWideSolid)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		mode,
-	int 		npt,
-	DDXPointPtr pPts
-   );
-   int PolylinesWideSolidFlags;
-
-   void (*PolylinesThinSolid)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		mode,
-	int 		npt,
-	DDXPointPtr pPts
-   );
-   int PolylinesThinSolidFlags;
-
-   void (*PolySegmentThinSolid)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		nseg,
-	xSegment	*pSeg
-   );
-   int PolySegmentThinSolidFlags;
-
-   void (*PolylinesThinDashed)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		mode,
-	int 		npt,
-	DDXPointPtr pPts
-   );
-   int PolylinesThinDashedFlags;
-
-   void (*PolySegmentThinDashed)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		nseg,
-	xSegment	*pSeg
-   );
-   int PolySegmentThinDashedFlags;
-
-   void (*FillPolygonSolid)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		shape,
-	int		mode,
-	int		count,
-	DDXPointPtr	ptsIn 
-   );
-   int FillPolygonSolidFlags;
-
-   void (*FillPolygonStippled)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		shape,
-	int		mode,
-	int		count,
-	DDXPointPtr	ptsIn 
-   );
-   int FillPolygonStippledFlags;
-
-   void (*FillPolygonOpaqueStippled)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		shape,
-	int		mode,
-	int		count,
-	DDXPointPtr	ptsIn 
-   );
-   int FillPolygonOpaqueStippledFlags;
-
-   void (*FillPolygonTiled)(
-	DrawablePtr	pDrawable,
-	GCPtr		pGC,
-	int		shape,
-	int		mode,
-	int		count,
-	DDXPointPtr	ptsIn 
-   );
-   int FillPolygonTiledFlags;
-
-   void (*PolyFillArcSolid)(
-	DrawablePtr	pDraw,
-	GCPtr		pGC,
-	int		narcs,
-	xArc		*parcs
-   );
-   int PolyFillArcSolidFlags;
-
-   void (*PutImage)(
-	DrawablePtr pDraw,
-	GCPtr       pGC,
-	int         depth, 
-	int	    x, 
-	int         y, 
-	int	    w, 
-	int	    h,
-	int         leftPad,
-	int         format,
-	char        *pImage
-   );
-   int PutImageFlags;
-   
-   /* Validation masks */
-
-   unsigned long FillSpansMask;
-   ValidateGCProcPtr ValidateFillSpans;
-   unsigned long SetSpansMask;
-   ValidateGCProcPtr ValidateSetSpans;
-   unsigned long PutImageMask;
-   ValidateGCProcPtr ValidatePutImage;
-   unsigned long CopyAreaMask;
-   ValidateGCProcPtr ValidateCopyArea;
-   unsigned long CopyPlaneMask;
-   ValidateGCProcPtr ValidateCopyPlane;
-   unsigned long PolyPointMask;
-   ValidateGCProcPtr ValidatePolyPoint;
-   unsigned long PolylinesMask;
-   ValidateGCProcPtr ValidatePolylines;
-   unsigned long PolySegmentMask;
-   ValidateGCProcPtr ValidatePolySegment;
-   unsigned long PolyRectangleMask;
-   ValidateGCProcPtr ValidatePolyRectangle;
-   unsigned long PolyArcMask;
-   ValidateGCProcPtr ValidatePolyArc;
-   unsigned long FillPolygonMask;
-   ValidateGCProcPtr ValidateFillPolygon;
-   unsigned long PolyFillRectMask;
-   ValidateGCProcPtr ValidatePolyFillRect;
-   unsigned long PolyFillArcMask;
-   ValidateGCProcPtr ValidatePolyFillArc;
-   unsigned long PolyText8Mask;
-   ValidateGCProcPtr ValidatePolyText8;
-   unsigned long PolyText16Mask;
-   ValidateGCProcPtr ValidatePolyText16;
-   unsigned long ImageText8Mask;
-   ValidateGCProcPtr ValidateImageText8;
-   unsigned long ImageText16Mask;
-   ValidateGCProcPtr ValidateImageText16;
-   unsigned long PolyGlyphBltMask;
-   ValidateGCProcPtr ValidatePolyGlyphBlt;
-   unsigned long ImageGlyphBltMask;
-   ValidateGCProcPtr ValidateImageGlyphBlt;
-   unsigned long PushPixelsMask;
-   ValidateGCProcPtr ValidatePushPixels;
-
-   void (*ComputeDash)(GCPtr pGC);
-
-   /* Pixmap Cache */
-
-   int  PixmapCacheFlags;
-   Bool UsingPixmapCache;
-   Bool CanDoMono8x8;
-   Bool CanDoColor8x8;
-
-   void (*InitPixmapCache)(
-	ScreenPtr pScreen, 
-	RegionPtr areas,
-	pointer data
-   );
-   void (*ClosePixmapCache)(
-	ScreenPtr pScreen
-   );
-
-   int (*StippledFillChooser)(GCPtr pGC);
-   int (*OpaqueStippledFillChooser)(GCPtr pGC);
-   int (*TiledFillChooser)(GCPtr pGC);
-
-   int  CachePixelGranularity;
-   int  MaxCacheableTileWidth;
-   int  MaxCacheableTileHeight;
-   int  MaxCacheableStippleWidth;
-   int  MaxCacheableStippleHeight;
-
-   XAACacheInfoPtr (*CacheTile)(
-	ScrnInfoPtr Scrn, PixmapPtr pPix
-   );
-   XAACacheInfoPtr (*CacheStipple)(
-	ScrnInfoPtr Scrn, PixmapPtr pPix, 
-	int fg, int bg
-   );
-   XAACacheInfoPtr (*CacheMonoStipple)(
-	ScrnInfoPtr Scrn, PixmapPtr pPix
-   );
-   XAACacheInfoPtr (*CacheMono8x8Pattern)(
-	ScrnInfoPtr Scrn, int pat0, int pat1
-   );
-   XAACacheInfoPtr (*CacheColor8x8Pattern)(
-	ScrnInfoPtr Scrn, PixmapPtr pPix, 
-	int fg, int bg
-   );
-
-
-   int MonoPatternPitch;
-   int CacheWidthMono8x8Pattern;
-   int CacheHeightMono8x8Pattern;
-
-   int ColorPatternPitch;
-   int CacheWidthColor8x8Pattern;
-   int CacheHeightColor8x8Pattern;
-
-   int CacheColorExpandDensity;
-
-   void (*WriteBitmapToCache) (
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	unsigned char *src,
-    	int srcwidth,
-	int fg, int bg
-   );
-   void (*WritePixmapToCache) (
-	ScrnInfoPtr pScrn,
-	int x, int y, int w, int h,
-	unsigned char *src,
-    	int srcwidth,
-	int bpp, int depth
-   );
-   void (*WriteMono8x8PatternToCache)(
-	ScrnInfoPtr pScrn, 
-	XAACacheInfoPtr pCache
-   );
-   void (*WriteColor8x8PatternToCache)(
-	ScrnInfoPtr pScrn, 
-	PixmapPtr pPix, 
-	XAACacheInfoPtr pCache
-   );
-   
-   char* PixmapCachePrivate;
-
-   /* Miscellaneous */
-
-   GC ScratchGC;
-   int PreAllocSize;
-   unsigned char *PreAllocMem;
-
-   CharInfoPtr CharInfo[255];
-   NonTEGlyphInfo GlyphInfo[255];
-
-   unsigned int FullPlanemask; /* deprecated */
-
-   PixmapLinkPtr OffscreenPixmaps;
-   int maxOffPixWidth;
-   int maxOffPixHeight;   
-
-   XAACacheInfoRec ScratchCacheInfoRec;
-
-   BoxPtr ClipBox;
-
-   Bool NeedToSync;
-
-   char *dgaSaves;
-
-   /* These can be supplied to override the defaults */
-
-   GetImageProcPtr GetImage;
-   GetSpansProcPtr GetSpans;
-   CopyWindowProcPtr CopyWindow;
-   BackingStoreSaveAreasProcPtr SaveAreas;
-   BackingStoreRestoreAreasProcPtr RestoreAreas;
-
-   unsigned int offscreenDepths;
-   Bool offscreenDepthsInitialized;
-
-   CARD32 FullPlanemasks[32];
-
-   Bool (*Composite) (
-   	CARD8      op,
-        PicturePtr pSrc,
-        PicturePtr pMask,
-        PicturePtr pDst,
-        INT16      xSrc,
-        INT16      ySrc,
-        INT16      xMask,
-        INT16      yMask,
-        INT16      xDst,
-        INT16      yDst,
-        CARD16     width,
-        CARD16     height
-   );
-
-   Bool (*Glyphs) (
-        CARD8         op,
-        PicturePtr    pSrc,
-        PicturePtr    pDst,
-        PictFormatPtr maskFormat,
-        INT16         xSrc,
-        INT16         ySrc,
-        int           nlist,
-        GlyphListPtr  list,
-        GlyphPtr      *glyphs
-   );
-
-   /* The old SetupForCPUToScreenAlphaTexture function is no longer used because
-    * it doesn't pass in enough information to write a conforming
-    * implementation.  See SetupForCPUToScreenAlphaTexture2.
-    */
-   Bool (*SetupForCPUToScreenAlphaTexture) (
-	ScrnInfoPtr	pScrn,
-	int		op,
-	CARD16		red,
-	CARD16		green,
-	CARD16		blue,
-	CARD16		alpha,
-	int		alphaType,
-	CARD8		*alphaPtr,
-	int		alphaPitch,
-	int		width,
-	int		height,
-	int		flags
-   );
-   void (*SubsequentCPUToScreenAlphaTexture) (
-	ScrnInfoPtr	pScrn,
-	int		dstx,
-	int		dsty,
-	int		srcx,
-	int		srcy,
-	int		width,
-	int		height
-   );
-   int CPUToScreenAlphaTextureFlags;
-   CARD32 * CPUToScreenAlphaTextureFormats;
-
-   /* The old SetupForCPUToScreenTexture function is no longer used because
-    * it doesn't pass in enough information to write a conforming
-    * implementation.  See SetupForCPUToScreenTexture2.
-    */
-   Bool (*SetupForCPUToScreenTexture) (
-	ScrnInfoPtr	pScrn,
-	int		op,
-	int		texType,
-	CARD8		*texPtr,
-	int		texPitch,
-	int		width,
-	int		height,
-	int		flags
-   );
-   void (*SubsequentCPUToScreenTexture) (
-	ScrnInfoPtr	pScrn,
-	int		dstx,
-	int		dsty,
-	int		srcx,
-	int		srcy,
-	int		width,
-	int		height
-   );
-   int CPUToScreenTextureFlags;
-   CARD32 * CPUToScreenTextureFormats;
-
-
-   /* these were added for 4.3.0 */
-   BoxRec SolidLineLimits;
-   BoxRec DashedLineLimits;
-
-   /* These were added for X.Org 6.8.0 */
-   Bool (*SetupForCPUToScreenAlphaTexture2) (
-	ScrnInfoPtr	pScrn,
-	int		op,
-	CARD16		red,
-	CARD16		green,
-	CARD16		blue,
-	CARD16		alpha,
-	CARD32		maskFormat,
-	CARD32		dstFormat,
-	CARD8		*alphaPtr,
-	int		alphaPitch,
-	int		width,
-	int		height,
-	int		flags
-   );
-   CARD32 *CPUToScreenAlphaTextureDstFormats;
-
-   Bool (*SetupForCPUToScreenTexture2) (
-	ScrnInfoPtr	pScrn,
-	int		op,
-	CARD32		srcFormat,
-	CARD32		dstFormat,
-	CARD8		*texPtr,
-	int		texPitch,
-	int		width,
-	int		height,
-	int		flags
-   );
-   CARD32 *CPUToScreenTextureDstFormats;
-} XAAInfoRec, *XAAInfoRecPtr;
-
-#define SET_SYNC_FLAG(infoRec)	(infoRec)->NeedToSync = TRUE
-
-
-extern _X_EXPORT Bool
-XAAInit(
-    ScreenPtr pScreen,
-    XAAInfoRecPtr infoRec
-);
-
-extern _X_EXPORT XAAInfoRecPtr XAACreateInfoRec(void);
-
-extern _X_EXPORT void
-XAADestroyInfoRec(
-    XAAInfoRecPtr infoRec
-);
-
-typedef void (*DepthChangeFuncPtr) (ScrnInfoPtr pScrn, int depth);
-
-extern _X_EXPORT Bool
-XAAInitDualFramebufferOverlay(
-   ScreenPtr pScreen, 
-   DepthChangeFuncPtr callback
-);
-
-#endif /* _XAA_H */
+
+#ifndef _XAA_H
+#define _XAA_H
+
+#define XAA_VERSION_MAJOR   1
+#define XAA_VERSION_MINOR   2
+#define XAA_VERSION_RELEASE 1
+
+/*
+
+   ******** OPERATION SPECIFIC FLAGS *********
+
+   **** solid/dashed line flags ****
+ 
+---------               --------
+23           LINE_PATTERN_LSBFIRST_MSBJUSTIFIED
+22           LINE_PATTERN_LSBFIRST_LSBJUSTIFIED
+21           LINE_PATTERN_MSBFIRST_MSBJUSTIFIED
+20           LINE_PATTERN_MSBFIRST_LSBJUSTIFIED
+19           LINE_PATTERN_POWER_OF_2_ONLY
+18           LINE_LIMIT_COORDS
+17                         .
+16                         .
+---------               -------
+
+   **** screen to screen copy flags ****
+
+---------               --------
+23           ONLY_LEFT_TO_RIGHT_BITBLT
+22           ONLY_TWO_BITBLT_DIRECTIONS
+21                         .
+20                         .
+19                         .
+18                         .
+17                         .
+16                         .
+---------               -------
+
+   ****  clipping flags ****
+
+---------               --------
+23                         .
+22           HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND
+21           HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY
+20           HARDWARE_CLIP_MONO_8x8_FILL
+19           HARDWARE_CLIP_COLOR_8x8_FILL    
+18           HARDWARE_CLIP_SOLID_FILL
+17           HARDWARE_CLIP_DASHED_LINE
+16           HARDWARE_CLIP_SOLID_LINE
+---------               -------
+
+
+   ****  hardware pattern flags ****
+
+---------               --------
+23                         .
+22                         .
+21           HARDWARE_PATTERN_SCREEN_ORIGIN
+20                         .
+19                         .
+18                         .
+17           HARDWARE_PATTERN_PROGRAMMED_ORIGIN
+16           HARDWARE_PATTERN_PROGRAMMED_BITS
+---------               -------
+
+   ****  write pixmap flags ****
+
+---------               --------
+23                         .
+22                         .
+21                         .
+20                         .
+19                         .
+18                         .
+17                         .
+16           CONVERT_32BPP_TO_24BPP
+---------               -------
+
+
+   ******** GENERIC FLAGS *********
+
+---------               -------
+15           SYNC_AFTER_COLOR_EXPAND
+14           CPU_TRANSFER_PAD_QWORD
+13                         .
+12           LEFT_EDGE_CLIPPING_NEGATIVE_X
+11	     LEFT_EDGE_CLIPPING
+10	     CPU_TRANSFER_BASE_FIXED
+ 9           BIT_ORDER_IN_BYTE_MSBFIRST           
+ 8           TRANSPARENCY_GXCOPY_ONLY
+---------               -------
+ 7           NO_TRANSPARENCY
+ 6           TRANSPARENCY_ONLY
+ 5           ROP_NEEDS_SOURCE
+ 4           TRIPLE_BITS_24BPP
+ 3           RGB_EQUAL
+ 2           NO_PLANEMASK
+ 1           NO_GXCOPY
+ 0           GXCOPY_ONLY
+---------               -------
+
+
+*/
+
+#include "gcstruct.h"
+#include "pixmapstr.h"
+#include "xf86str.h"
+#include "regionstr.h"
+#include "xf86fbman.h"
+
+#include "picturestr.h"
+
+/* Flags */
+#define PIXMAP_CACHE			0x00000001
+#define MICROSOFT_ZERO_LINE_BIAS	0x00000002
+#define OFFSCREEN_PIXMAPS		0x00000004
+#define LINEAR_FRAMEBUFFER		0x00000008
+
+
+/* GC fg, bg, and planemask restrictions */
+#define GXCOPY_ONLY			0x00000001
+#define NO_GXCOPY			0x00000002
+#define NO_PLANEMASK			0x00000004
+#define RGB_EQUAL			0x00000008
+#define TRIPLE_BITS_24BPP		0x00000010
+#define ROP_NEEDS_SOURCE		0x00000020
+
+/* transparency restrictions */
+#define TRANSPARENCY_ONLY		0x00000040
+#define NO_TRANSPARENCY			0x00000080
+#define TRANSPARENCY_GXCOPY_ONLY     	0x00000100
+
+/* bit order restrictions */
+#define BIT_ORDER_IN_BYTE_MSBFIRST	0x00000200
+#define BIT_ORDER_IN_BYTE_LSBFIRST	0x00000000
+
+/* transfer base restriction */
+#define CPU_TRANSFER_BASE_FIXED		0x00000400
+
+/* skipleft restrictions */
+#define LEFT_EDGE_CLIPPING		0x00000800
+#define LEFT_EDGE_CLIPPING_NEGATIVE_X	0x00001000
+
+/* data padding */
+#define CPU_TRANSFER_PAD_DWORD		0x00000000
+#define CPU_TRANSFER_PAD_QWORD		0x00004000
+#define SCANLINE_PAD_DWORD		0x00000000
+
+#define SYNC_AFTER_COLOR_EXPAND		0x00008000
+#define SYNC_AFTER_IMAGE_WRITE		SYNC_AFTER_COLOR_EXPAND
+
+/* hardware pattern */
+#define HARDWARE_PATTERN_PROGRAMMED_BITS	0x00010000
+#define HARDWARE_PATTERN_PROGRAMMED_ORIGIN	0x00020000
+#define HARDWARE_PATTERN_SCREEN_ORIGIN		0x00200000
+
+/* copyarea flags */
+#define ONLY_TWO_BITBLT_DIRECTIONS	0x00400000
+#define ONLY_LEFT_TO_RIGHT_BITBLT	0x00800000
+
+/* line flags */
+#define LINE_PATTERN_LSBFIRST_MSBJUSTIFIED	0x00800000
+#define LINE_PATTERN_LSBFIRST_LSBJUSTIFIED	0x00400000
+#define LINE_PATTERN_MSBFIRST_MSBJUSTIFIED	0x00200000
+#define LINE_PATTERN_MSBFIRST_LSBJUSTIFIED	0x00100000
+#define LINE_PATTERN_POWER_OF_2_ONLY		0x00080000
+#define LINE_LIMIT_COORDS			0x00040000
+
+/* clipping flags */
+#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND	0x00400000
+#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY		0x00200000
+#define HARDWARE_CLIP_MONO_8x8_FILL			0x00100000
+#define HARDWARE_CLIP_COLOR_8x8_FILL			0x00080000
+#define HARDWARE_CLIP_SOLID_FILL			0x00040000
+#define HARDWARE_CLIP_DASHED_LINE			0x00020000
+#define HARDWARE_CLIP_SOLID_LINE			0x00010000
+
+#define HARDWARE_CLIP_LINE				0x00000000
+
+
+/* image write flags */
+#define CONVERT_32BPP_TO_24BPP			0x00010000
+
+/* pixmap cache flags */
+#define CACHE_MONO_8x8			0x00000001
+#define CACHE_COLOR_8x8			0x00000002
+#define DO_NOT_BLIT_STIPPLES		0x00000004
+#define DO_NOT_TILE_MONO_DATA		0x00000008	
+#define DO_NOT_TILE_COLOR_DATA		0x00000010
+
+
+#define DEGREES_0	0
+#define DEGREES_90	1
+#define DEGREES_180	2
+#define DEGREES_270	3
+
+#define OMIT_LAST	1
+
+/* render flags */
+
+#define XAA_RENDER_POWER_OF_2_TILE_ONLY	0x00000008
+#define XAA_RENDER_NO_SRC_ALPHA		0x00000004
+#define XAA_RENDER_IMPRECISE_ONLY	0x00000002	
+#define XAA_RENDER_NO_TILE		0x00000001		
+
+#define XAA_RENDER_REPEAT		0x00000001
+
+typedef void (* ValidateGCProcPtr)(
+   GCPtr         pGC,
+   unsigned long changes,
+   DrawablePtr   pDraw
+);
+
+typedef struct {
+    unsigned char *bits;
+    int width;
+    int height;
+    int yoff;
+    int srcwidth;
+    int start;
+    int end;
+} NonTEGlyphInfo, *NonTEGlyphPtr;
+
+
+typedef struct {
+   int x;
+   int y;
+   int w;
+   int h;
+   int orig_w;
+   int orig_h;
+   unsigned long serialNumber;
+   int pat0;
+   int pat1;
+   int fg;
+   int bg;
+   int trans_color;
+   DDXPointPtr offsets;
+   DevUnion devPrivate;
+} XAACacheInfoRec, *XAACacheInfoPtr;
+
+
+typedef struct _PixmapLink {
+  PixmapPtr pPix;
+  struct _PixmapLink *next;
+  FBAreaPtr area;
+} PixmapLink, *PixmapLinkPtr;
+
+typedef struct _XAAInfoRec {
+   ScrnInfoPtr pScrn;
+   int Flags;
+
+   void (*Sync)(
+	ScrnInfoPtr pScrn
+   );
+   
+   /* Restore Accel State is a driver callback that is used
+    * when another screen on the same device has been active.
+    * This allows multihead on a single device to work.
+    * If The entityProp has IS_SHARED_ACCEL defined then this
+    * function is required.
+    */
+   
+   void (*RestoreAccelState)(
+	ScrnInfoPtr pScrn
+   );
+
+   /***************** Low Level *****************/
+
+/* Blits */
+   void (*SetupForScreenToScreenCopy)(
+	ScrnInfoPtr pScrn,
+	int xdir, int ydir,
+	int rop,
+	unsigned int planemask,
+	int trans_color
+   );
+   int ScreenToScreenCopyFlags;
+
+   void (*SubsequentScreenToScreenCopy)(
+	ScrnInfoPtr pScrn,
+	int xsrc, int ysrc,
+	int xdst, int ydst,
+	int w, int h
+   );
+
+   
+/* Solid fills */
+   void (*SetupForSolidFill)(
+	ScrnInfoPtr pScrn,
+	int color,
+	int rop,
+	unsigned int planemask
+   );    
+   int SolidFillFlags;  
+
+   void (*SubsequentSolidFillRect)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h
+   );    
+
+   void (*SubsequentSolidFillTrap)(
+	ScrnInfoPtr pScrn,
+	int y, int h, 
+	int left, int dxL, int dyL, int eL,
+	int right, int dxR, int dyR, int eR
+   );
+
+
+/* Solid lines */
+
+   void (*SetupForSolidLine)(
+	ScrnInfoPtr pScrn,
+	int color,
+	int rop,
+	unsigned int planemask
+   );    
+   int SolidLineFlags;  
+
+   void (*SubsequentSolidTwoPointLine)(
+	ScrnInfoPtr pScrn,
+	int xa, int ya, int xb, int yb, int flags
+   );   
+
+   void (*SubsequentSolidBresenhamLine)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int absmaj, int absmin, int err, int len, int octant
+   );   
+   int SolidBresenhamLineErrorTermBits;
+
+   void (*SubsequentSolidHorVertLine)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int len, int dir
+   );   
+
+/* Dashed lines */
+
+   void (*SetupForDashedLine)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg,
+	int rop,
+	unsigned int planemask,
+	int length,
+	unsigned char *pattern
+   );    
+   int DashedLineFlags; 
+   int DashPatternMaxLength; 
+
+   void (*SubsequentDashedTwoPointLine)(
+	ScrnInfoPtr pScrn,
+	int xa, int ya, int xb, int yb, int flags, int phase
+   );   
+
+   void (*SubsequentDashedBresenhamLine)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int absmaj, int absmin, int err, int len, int flags,
+	int phase
+   );   
+   int DashedBresenhamLineErrorTermBits;
+
+/* Clipper */
+
+   void (*SetClippingRectangle) (
+	ScrnInfoPtr pScrn,
+	int left, int top, int right, int bottom
+   );
+   int ClippingFlags;
+
+   void (*DisableClipping)(ScrnInfoPtr pScrn);
+
+/* 8x8 mono pattern fills */
+   void (*SetupForMono8x8PatternFill)(
+	ScrnInfoPtr pScrn,
+	int patx, int paty,
+	int fg, int bg,
+	int rop,
+	unsigned int planemask
+   );
+   int Mono8x8PatternFillFlags; 
+
+   void (*SubsequentMono8x8PatternFillRect)(
+	ScrnInfoPtr pScrn,
+	int patx, int paty,
+	int x, int y, int w, int h
+   );
+
+   void (*SubsequentMono8x8PatternFillTrap)(
+	ScrnInfoPtr pScrn,
+        int patx, int paty,
+	int y, int h, 
+	int left, int dxL, int dyL, int eL,
+	int right, int dxR, int dyR, int eR
+   );
+
+/* 8x8 color pattern fills */
+
+   void (*SetupForColor8x8PatternFill)(
+	ScrnInfoPtr pScrn,
+	int patx, int paty,
+	int rop,
+	unsigned int planemask,
+	int transparency_color
+   );
+   int Color8x8PatternFillFlags; 
+
+   void (*SubsequentColor8x8PatternFillRect)(
+	ScrnInfoPtr pScrn,
+	int patx, int paty,
+	int x, int y, int w, int h
+   );
+
+   void (*SubsequentColor8x8PatternFillTrap)(
+	ScrnInfoPtr pScrn,
+        int patx, int paty,
+	int y, int h, 
+	int left, int dxL, int dyL, int eL,
+	int right, int dxR, int dyR, int eR
+   );
+
+
+/* Color expansion */
+
+   void (*SetupForCPUToScreenColorExpandFill)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg,
+	int rop,
+	unsigned int planemask
+   );     
+   int CPUToScreenColorExpandFillFlags;  
+
+   void (*SubsequentCPUToScreenColorExpandFill)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	int skipleft
+   );
+
+   unsigned char *ColorExpandBase;
+   int ColorExpandRange;
+
+
+/* Scanline color expansion  */
+
+   void (*SetupForScanlineCPUToScreenColorExpandFill)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg,
+	int rop,
+	unsigned int planemask
+   );  
+   int ScanlineCPUToScreenColorExpandFillFlags;
+
+   void (*SubsequentScanlineCPUToScreenColorExpandFill)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	int skipleft
+   );
+
+   void (*SubsequentColorExpandScanline)(
+	ScrnInfoPtr pScrn,
+	int bufno
+   );
+
+   int NumScanlineColorExpandBuffers;
+   unsigned char **ScanlineColorExpandBuffers;
+
+/* Screen to screen color expansion */
+
+   void (*SetupForScreenToScreenColorExpandFill) (
+	ScrnInfoPtr pScrn,
+	int fg, int bg,
+	int rop,
+	unsigned int planemask
+   );
+   int ScreenToScreenColorExpandFillFlags;
+
+   void (*SubsequentScreenToScreenColorExpandFill)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	int srcx, int srcy, int skipleft
+   );
+   
+
+/*  Image transfers */
+
+   void (*SetupForImageWrite)(
+	ScrnInfoPtr pScrn,
+	int rop,
+	unsigned int planemask,
+	int transparency_color,
+	int bpp, int depth
+   );
+   int ImageWriteFlags;
+
+   void (*SubsequentImageWriteRect)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	int skipleft
+   );
+   unsigned char *ImageWriteBase;
+   int ImageWriteRange;
+	
+/*  Scanline Image transfers */
+
+   void (*SetupForScanlineImageWrite)(
+	ScrnInfoPtr pScrn,
+	int rop,
+	unsigned int planemask,
+	int transparency_color,
+	int bpp, int depth
+   );
+   int ScanlineImageWriteFlags;
+
+   void (*SubsequentScanlineImageWriteRect)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	int skipleft
+   );
+
+   void (*SubsequentImageWriteScanline) (
+	ScrnInfoPtr pScrn,
+	int bufno
+   );
+   
+   int NumScanlineImageWriteBuffers;
+   unsigned char **ScanlineImageWriteBuffers;
+
+  /* Image Reads - OBSOLETE AND NOT USED */
+
+   void (*SetupForImageRead) (
+	ScrnInfoPtr pScrn,
+	int bpp, int depth
+   );
+   int ImageReadFlags;
+
+   unsigned char *ImageReadBase;
+   int ImageReadRange;
+
+   void (*SubsequentImageReadRect)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h
+   );  
+
+
+   /***************** Mid Level *****************/
+   void (*ScreenToScreenBitBlt)(
+	ScrnInfoPtr pScrn,
+	int nbox,
+	DDXPointPtr pptSrc,
+        BoxPtr pbox,
+	int xdir, int ydir,
+	int alu,
+	unsigned int planmask
+   );
+   int ScreenToScreenBitBltFlags;
+
+   void (*WriteBitmap) (
+	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
+   );
+   int WriteBitmapFlags;
+
+   void (*FillSolidRects)(
+	ScrnInfoPtr pScrn,
+	int fg, int rop,
+        unsigned int planemask,
+	int nBox,
+	BoxPtr pBox 
+   );
+   int FillSolidRectsFlags;
+
+   void (*FillMono8x8PatternRects)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg, int rop,
+        unsigned int planemask,
+	int nBox,
+	BoxPtr pBox, 
+	int pat0, int pat1,
+	int xorg, int yorg
+   );
+   int FillMono8x8PatternRectsFlags;
+
+   void (*FillColor8x8PatternRects)(
+	ScrnInfoPtr pScrn,
+	int rop,
+        unsigned int planemask,
+	int nBox,
+	BoxPtr pBox,
+	int xorg, int yorg,
+	XAACacheInfoPtr pCache
+   );
+   int FillColor8x8PatternRectsFlags;
+
+   void (*FillCacheBltRects)(
+	ScrnInfoPtr pScrn,
+	int rop,
+        unsigned int planemask,
+	int nBox,
+	BoxPtr pBox,
+	int xorg, int yorg,
+	XAACacheInfoPtr pCache
+   );
+   int FillCacheBltRectsFlags;
+
+   void (*FillColorExpandRects)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg, int rop,
+        unsigned int planemask,
+	int nBox,
+	BoxPtr pBox,
+	int xorg, int yorg,
+	PixmapPtr pPix
+   );
+   int FillColorExpandRectsFlags;
+
+   void (*FillCacheExpandRects)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg, int rop,
+	unsigned int planemask,
+	int nBox,
+	BoxPtr pBox,
+	int xorg, int yorg,
+	PixmapPtr pPix
+   );
+   int FillCacheExpandRectsFlags;
+
+   void (*FillImageWriteRects)(
+	ScrnInfoPtr pScrn,
+	int rop,
+	unsigned int planemask,
+	int nBox,
+	BoxPtr pBox,
+	int xorg, int yorg,
+	PixmapPtr pPix
+   );
+   int FillImageWriteRectsFlags;
+   
+
+   void (*FillSolidSpans)(
+	ScrnInfoPtr pScrn,
+	int fg, int rop,
+        unsigned int planemask,
+	int n,
+	DDXPointPtr points,
+	int *widths,
+	int fSorted 
+   );
+   int FillSolidSpansFlags;
+
+   void (*FillMono8x8PatternSpans)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg, int rop,
+        unsigned int planemask,
+	int n,
+	DDXPointPtr points,
+	int *widths,
+	int fSorted, 
+	int pat0, int pat1,
+	int xorg, int yorg
+   );
+   int FillMono8x8PatternSpansFlags;
+
+   void (*FillColor8x8PatternSpans)(
+	ScrnInfoPtr pScrn,
+	int rop,
+        unsigned int planemask,
+	int n,
+	DDXPointPtr points,
+	int *widths,
+	int fSorted,
+	XAACacheInfoPtr pCache,
+	int xorg, int yorg
+   );
+   int FillColor8x8PatternSpansFlags;
+
+   void (*FillCacheBltSpans)(
+	ScrnInfoPtr pScrn,
+	int rop,
+        unsigned int planemask,
+	int n,
+	DDXPointPtr points,
+	int *widths,
+	int fSorted,
+	XAACacheInfoPtr pCache,
+	int xorg, int yorg
+   );
+   int FillCacheBltSpansFlags;
+
+   void (*FillColorExpandSpans)(
+	ScrnInfoPtr pScrn,
+	int fg, int bg, int rop,
+        unsigned int planemask,
+	int n,
+	DDXPointPtr points,
+	int *widths,
+	int fSorted,
+	int xorg, int yorg,
+	PixmapPtr pPix
+   );
+   int FillColorExpandSpansFlags;
+
+   void (*FillCacheExpandSpans)(
+	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
+   );
+   int FillCacheExpandSpansFlags;
+
+   void (*TEGlyphRenderer)(
+	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
+   );
+   int TEGlyphRendererFlags;
+
+   void (*NonTEGlyphRenderer)(
+	ScrnInfoPtr pScrn,
+	int x, int y, int n,
+	NonTEGlyphPtr glyphs,
+	BoxPtr pbox,
+	int fg, int rop,
+	unsigned int planemask
+   );
+   int NonTEGlyphRendererFlags;
+
+   void (*WritePixmap) (
+	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
+   );
+   int WritePixmapFlags;
+
+   void (*ReadPixmap) (
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	unsigned char *dst,	
+	int dstwidth,
+	int bpp, int depth
+   );
+   int ReadPixmapFlags;
+
+   /***************** GC Level *****************/
+   RegionPtr (*CopyArea)(
+	DrawablePtr pSrcDrawable,
+	DrawablePtr pDstDrawable,
+	GC *pGC,
+	int srcx, int srcy,
+	int width, int height,
+	int dstx, int dsty
+   );
+   int CopyAreaFlags;
+
+   RegionPtr (*CopyPlane)(
+	DrawablePtr pSrc,
+	DrawablePtr pDst,
+	GCPtr pGC,
+	int srcx, int srcy,
+	int width, int height,
+	int dstx, int dsty,
+	unsigned long bitPlane
+   );
+   int CopyPlaneFlags;
+
+   void (*PushPixelsSolid) (
+	GCPtr	pGC,
+	PixmapPtr pBitMap,
+	DrawablePtr pDrawable,
+	int dx, int dy, 
+	int xOrg, int yOrg
+   );
+   int PushPixelsFlags; 
+
+   /** PolyFillRect **/
+
+   void (*PolyFillRectSolid)(
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int nrectFill, 	
+	xRectangle *prectInit
+   );  
+   int PolyFillRectSolidFlags;
+
+   void (*PolyFillRectStippled)(
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int nrectFill, 	
+	xRectangle *prectInit
+   );  
+   int PolyFillRectStippledFlags;
+
+   void (*PolyFillRectOpaqueStippled)(
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int nrectFill, 	
+	xRectangle *prectInit
+   );  
+   int PolyFillRectOpaqueStippledFlags;
+
+   void (*PolyFillRectTiled)(
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int nrectFill, 	
+	xRectangle *prectInit
+   );  
+   int PolyFillRectTiledFlags;
+
+   /** FillSpans **/   
+
+   void (*FillSpansSolid)(
+	DrawablePtr	pDraw,
+	GCPtr		pGC,
+	int		nInit,
+	DDXPointPtr 	ppt,
+	int		*pwidth,
+	int		fSorted 
+   );
+   int FillSpansSolidFlags;
+
+   void (*FillSpansStippled)(
+	DrawablePtr	pDraw,
+	GCPtr		pGC,
+	int		nInit,
+	DDXPointPtr 	ppt,
+	int		*pwidth,
+	int		fSorted 
+   );
+   int FillSpansStippledFlags;
+
+   void (*FillSpansOpaqueStippled)(
+	DrawablePtr	pDraw,
+	GCPtr		pGC,
+	int		nInit,
+	DDXPointPtr 	ppt,
+	int		*pwidth,
+	int		fSorted 
+   );
+   int FillSpansOpaqueStippledFlags;
+
+   void (*FillSpansTiled)(
+	DrawablePtr	pDraw,
+	GCPtr		pGC,
+	int		nInit,
+	DDXPointPtr 	ppt,
+	int		*pwidth,
+	int		fSorted 
+   );
+   int FillSpansTiledFlags;
+
+   int (*PolyText8TE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	char *chars
+   );
+   int PolyText8TEFlags;
+
+   int (*PolyText16TE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	unsigned short *chars
+   );
+   int PolyText16TEFlags;
+
+   void (*ImageText8TE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	char *chars
+   );
+   int ImageText8TEFlags;
+
+   void (*ImageText16TE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	unsigned short *chars
+   );
+   int ImageText16TEFlags;
+
+   void (*ImageGlyphBltTE) (
+	DrawablePtr pDrawable,
+	GCPtr pGC,
+	int xInit, int yInit,
+	unsigned int nglyph,
+	CharInfoPtr *ppci,
+	pointer pglyphBase 
+   );
+   int ImageGlyphBltTEFlags;
+
+   void (*PolyGlyphBltTE) (
+	DrawablePtr pDrawable,
+	GCPtr pGC,
+	int xInit, int yInit,
+	unsigned int nglyph,
+	CharInfoPtr *ppci,
+	pointer pglyphBase 
+   );
+   int PolyGlyphBltTEFlags;
+
+   int (*PolyText8NonTE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	char *chars
+   );
+   int PolyText8NonTEFlags;
+
+   int (*PolyText16NonTE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	unsigned short *chars
+   );
+   int PolyText16NonTEFlags;
+
+   void (*ImageText8NonTE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	char *chars
+   );
+   int ImageText8NonTEFlags;
+
+   void (*ImageText16NonTE) (
+	DrawablePtr pDraw,
+	GCPtr pGC,
+	int x, int y,
+	int count,
+	unsigned short *chars
+   );
+   int ImageText16NonTEFlags;
+
+   void (*ImageGlyphBltNonTE) (
+	DrawablePtr pDrawable,
+	GCPtr pGC,
+	int xInit, int yInit,
+	unsigned int nglyph,
+	CharInfoPtr *ppci,
+	pointer pglyphBase 
+   );
+   int ImageGlyphBltNonTEFlags;
+
+   void (*PolyGlyphBltNonTE) (
+	DrawablePtr pDrawable,
+	GCPtr pGC,
+	int xInit, int yInit,
+	unsigned int nglyph,
+	CharInfoPtr *ppci,
+	pointer pglyphBase 
+   );
+   int PolyGlyphBltNonTEFlags;
+
+   void (*PolyRectangleThinSolid)(
+	DrawablePtr  pDrawable,
+	GCPtr        pGC,    
+	int	     nRectsInit,
+	xRectangle  *pRectsInit 
+   );
+   int PolyRectangleThinSolidFlags;
+
+   void (*PolylinesWideSolid)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		mode,
+	int 		npt,
+	DDXPointPtr pPts
+   );
+   int PolylinesWideSolidFlags;
+
+   void (*PolylinesThinSolid)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		mode,
+	int 		npt,
+	DDXPointPtr pPts
+   );
+   int PolylinesThinSolidFlags;
+
+   void (*PolySegmentThinSolid)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		nseg,
+	xSegment	*pSeg
+   );
+   int PolySegmentThinSolidFlags;
+
+   void (*PolylinesThinDashed)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		mode,
+	int 		npt,
+	DDXPointPtr pPts
+   );
+   int PolylinesThinDashedFlags;
+
+   void (*PolySegmentThinDashed)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		nseg,
+	xSegment	*pSeg
+   );
+   int PolySegmentThinDashedFlags;
+
+   void (*FillPolygonSolid)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		shape,
+	int		mode,
+	int		count,
+	DDXPointPtr	ptsIn 
+   );
+   int FillPolygonSolidFlags;
+
+   void (*FillPolygonStippled)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		shape,
+	int		mode,
+	int		count,
+	DDXPointPtr	ptsIn 
+   );
+   int FillPolygonStippledFlags;
+
+   void (*FillPolygonOpaqueStippled)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		shape,
+	int		mode,
+	int		count,
+	DDXPointPtr	ptsIn 
+   );
+   int FillPolygonOpaqueStippledFlags;
+
+   void (*FillPolygonTiled)(
+	DrawablePtr	pDrawable,
+	GCPtr		pGC,
+	int		shape,
+	int		mode,
+	int		count,
+	DDXPointPtr	ptsIn 
+   );
+   int FillPolygonTiledFlags;
+
+   void (*PolyFillArcSolid)(
+	DrawablePtr	pDraw,
+	GCPtr		pGC,
+	int		narcs,
+	xArc		*parcs
+   );
+   int PolyFillArcSolidFlags;
+
+   void (*PutImage)(
+	DrawablePtr pDraw,
+	GCPtr       pGC,
+	int         depth, 
+	int	    x, 
+	int         y, 
+	int	    w, 
+	int	    h,
+	int         leftPad,
+	int         format,
+	char        *pImage
+   );
+   int PutImageFlags;
+   
+   /* Validation masks */
+
+   unsigned long FillSpansMask;
+   ValidateGCProcPtr ValidateFillSpans;
+   unsigned long SetSpansMask;
+   ValidateGCProcPtr ValidateSetSpans;
+   unsigned long PutImageMask;
+   ValidateGCProcPtr ValidatePutImage;
+   unsigned long CopyAreaMask;
+   ValidateGCProcPtr ValidateCopyArea;
+   unsigned long CopyPlaneMask;
+   ValidateGCProcPtr ValidateCopyPlane;
+   unsigned long PolyPointMask;
+   ValidateGCProcPtr ValidatePolyPoint;
+   unsigned long PolylinesMask;
+   ValidateGCProcPtr ValidatePolylines;
+   unsigned long PolySegmentMask;
+   ValidateGCProcPtr ValidatePolySegment;
+   unsigned long PolyRectangleMask;
+   ValidateGCProcPtr ValidatePolyRectangle;
+   unsigned long PolyArcMask;
+   ValidateGCProcPtr ValidatePolyArc;
+   unsigned long FillPolygonMask;
+   ValidateGCProcPtr ValidateFillPolygon;
+   unsigned long PolyFillRectMask;
+   ValidateGCProcPtr ValidatePolyFillRect;
+   unsigned long PolyFillArcMask;
+   ValidateGCProcPtr ValidatePolyFillArc;
+   unsigned long PolyText8Mask;
+   ValidateGCProcPtr ValidatePolyText8;
+   unsigned long PolyText16Mask;
+   ValidateGCProcPtr ValidatePolyText16;
+   unsigned long ImageText8Mask;
+   ValidateGCProcPtr ValidateImageText8;
+   unsigned long ImageText16Mask;
+   ValidateGCProcPtr ValidateImageText16;
+   unsigned long PolyGlyphBltMask;
+   ValidateGCProcPtr ValidatePolyGlyphBlt;
+   unsigned long ImageGlyphBltMask;
+   ValidateGCProcPtr ValidateImageGlyphBlt;
+   unsigned long PushPixelsMask;
+   ValidateGCProcPtr ValidatePushPixels;
+
+   void (*ComputeDash)(GCPtr pGC);
+
+   /* Pixmap Cache */
+
+   int  PixmapCacheFlags;
+   Bool UsingPixmapCache;
+   Bool CanDoMono8x8;
+   Bool CanDoColor8x8;
+
+   void (*InitPixmapCache)(
+	ScreenPtr pScreen, 
+	RegionPtr areas,
+	pointer data
+   );
+   void (*ClosePixmapCache)(
+	ScreenPtr pScreen
+   );
+
+   int (*StippledFillChooser)(GCPtr pGC);
+   int (*OpaqueStippledFillChooser)(GCPtr pGC);
+   int (*TiledFillChooser)(GCPtr pGC);
+
+   int  CachePixelGranularity;
+   int  MaxCacheableTileWidth;
+   int  MaxCacheableTileHeight;
+   int  MaxCacheableStippleWidth;
+   int  MaxCacheableStippleHeight;
+
+   XAACacheInfoPtr (*CacheTile)(
+	ScrnInfoPtr Scrn, PixmapPtr pPix
+   );
+   XAACacheInfoPtr (*CacheStipple)(
+	ScrnInfoPtr Scrn, PixmapPtr pPix, 
+	int fg, int bg
+   );
+   XAACacheInfoPtr (*CacheMonoStipple)(
+	ScrnInfoPtr Scrn, PixmapPtr pPix
+   );
+   XAACacheInfoPtr (*CacheMono8x8Pattern)(
+	ScrnInfoPtr Scrn, int pat0, int pat1
+   );
+   XAACacheInfoPtr (*CacheColor8x8Pattern)(
+	ScrnInfoPtr Scrn, PixmapPtr pPix, 
+	int fg, int bg
+   );
+
+
+   int MonoPatternPitch;
+   int CacheWidthMono8x8Pattern;
+   int CacheHeightMono8x8Pattern;
+
+   int ColorPatternPitch;
+   int CacheWidthColor8x8Pattern;
+   int CacheHeightColor8x8Pattern;
+
+   int CacheColorExpandDensity;
+
+   void (*WriteBitmapToCache) (
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	unsigned char *src,
+    	int srcwidth,
+	int fg, int bg
+   );
+   void (*WritePixmapToCache) (
+	ScrnInfoPtr pScrn,
+	int x, int y, int w, int h,
+	unsigned char *src,
+    	int srcwidth,
+	int bpp, int depth
+   );
+   void (*WriteMono8x8PatternToCache)(
+	ScrnInfoPtr pScrn, 
+	XAACacheInfoPtr pCache
+   );
+   void (*WriteColor8x8PatternToCache)(
+	ScrnInfoPtr pScrn, 
+	PixmapPtr pPix, 
+	XAACacheInfoPtr pCache
+   );
+   
+   char* PixmapCachePrivate;
+
+   /* Miscellaneous */
+
+   GC ScratchGC;
+   int PreAllocSize;
+   unsigned char *PreAllocMem;
+
+   CharInfoPtr CharInfo[255];
+   NonTEGlyphInfo GlyphInfo[255];
+
+   unsigned int FullPlanemask; /* deprecated */
+
+   PixmapLinkPtr OffscreenPixmaps;
+   int maxOffPixWidth;
+   int maxOffPixHeight;   
+
+   XAACacheInfoRec ScratchCacheInfoRec;
+
+   BoxPtr ClipBox;
+
+   Bool NeedToSync;
+
+   char *dgaSaves;
+
+   /* These can be supplied to override the defaults */
+
+   GetImageProcPtr GetImage;
+   GetSpansProcPtr GetSpans;
+   CopyWindowProcPtr CopyWindow;
+
+   unsigned int offscreenDepths;
+   Bool offscreenDepthsInitialized;
+
+   CARD32 FullPlanemasks[32];
+
+   Bool (*Composite) (
+   	CARD8      op,
+        PicturePtr pSrc,
+        PicturePtr pMask,
+        PicturePtr pDst,
+        INT16      xSrc,
+        INT16      ySrc,
+        INT16      xMask,
+        INT16      yMask,
+        INT16      xDst,
+        INT16      yDst,
+        CARD16     width,
+        CARD16     height
+   );
+
+   Bool (*Glyphs) (
+        CARD8         op,
+        PicturePtr    pSrc,
+        PicturePtr    pDst,
+        PictFormatPtr maskFormat,
+        INT16         xSrc,
+        INT16         ySrc,
+        int           nlist,
+        GlyphListPtr  list,
+        GlyphPtr      *glyphs
+   );
+
+   /* The old SetupForCPUToScreenAlphaTexture function is no longer used because
+    * it doesn't pass in enough information to write a conforming
+    * implementation.  See SetupForCPUToScreenAlphaTexture2.
+    */
+   Bool (*SetupForCPUToScreenAlphaTexture) (
+	ScrnInfoPtr	pScrn,
+	int		op,
+	CARD16		red,
+	CARD16		green,
+	CARD16		blue,
+	CARD16		alpha,
+	int		alphaType,
+	CARD8		*alphaPtr,
+	int		alphaPitch,
+	int		width,
+	int		height,
+	int		flags
+   );
+   void (*SubsequentCPUToScreenAlphaTexture) (
+	ScrnInfoPtr	pScrn,
+	int		dstx,
+	int		dsty,
+	int		srcx,
+	int		srcy,
+	int		width,
+	int		height
+   );
+   int CPUToScreenAlphaTextureFlags;
+   CARD32 * CPUToScreenAlphaTextureFormats;
+
+   /* The old SetupForCPUToScreenTexture function is no longer used because
+    * it doesn't pass in enough information to write a conforming
+    * implementation.  See SetupForCPUToScreenTexture2.
+    */
+   Bool (*SetupForCPUToScreenTexture) (
+	ScrnInfoPtr	pScrn,
+	int		op,
+	int		texType,
+	CARD8		*texPtr,
+	int		texPitch,
+	int		width,
+	int		height,
+	int		flags
+   );
+   void (*SubsequentCPUToScreenTexture) (
+	ScrnInfoPtr	pScrn,
+	int		dstx,
+	int		dsty,
+	int		srcx,
+	int		srcy,
+	int		width,
+	int		height
+   );
+   int CPUToScreenTextureFlags;
+   CARD32 * CPUToScreenTextureFormats;
+
+
+   /* these were added for 4.3.0 */
+   BoxRec SolidLineLimits;
+   BoxRec DashedLineLimits;
+
+   /* These were added for X.Org 6.8.0 */
+   Bool (*SetupForCPUToScreenAlphaTexture2) (
+	ScrnInfoPtr	pScrn,
+	int		op,
+	CARD16		red,
+	CARD16		green,
+	CARD16		blue,
+	CARD16		alpha,
+	CARD32		maskFormat,
+	CARD32		dstFormat,
+	CARD8		*alphaPtr,
+	int		alphaPitch,
+	int		width,
+	int		height,
+	int		flags
+   );
+   CARD32 *CPUToScreenAlphaTextureDstFormats;
+
+   Bool (*SetupForCPUToScreenTexture2) (
+	ScrnInfoPtr	pScrn,
+	int		op,
+	CARD32		srcFormat,
+	CARD32		dstFormat,
+	CARD8		*texPtr,
+	int		texPitch,
+	int		width,
+	int		height,
+	int		flags
+   );
+   CARD32 *CPUToScreenTextureDstFormats;
+} XAAInfoRec, *XAAInfoRecPtr;
+
+#define SET_SYNC_FLAG(infoRec)	(infoRec)->NeedToSync = TRUE
+
+
+extern _X_EXPORT Bool
+XAAInit(
+    ScreenPtr pScreen,
+    XAAInfoRecPtr infoRec
+);
+
+extern _X_EXPORT XAAInfoRecPtr XAACreateInfoRec(void);
+
+extern _X_EXPORT void
+XAADestroyInfoRec(
+    XAAInfoRecPtr infoRec
+);
+
+typedef void (*DepthChangeFuncPtr) (ScrnInfoPtr pScrn, int depth);
+
+extern _X_EXPORT Bool
+XAAInitDualFramebufferOverlay(
+   ScreenPtr pScreen, 
+   DepthChangeFuncPtr callback
+);
+
+#endif /* _XAA_H */
-- 
cgit v1.2.3