1706f2543Smrg 2706f2543Smrg#ifndef _XAA_H 3706f2543Smrg#define _XAA_H 4706f2543Smrg 5706f2543Smrg#define XAA_VERSION_MAJOR 1 6706f2543Smrg#define XAA_VERSION_MINOR 2 7706f2543Smrg#define XAA_VERSION_RELEASE 1 8706f2543Smrg 9706f2543Smrg/* 10706f2543Smrg 11706f2543Smrg ******** OPERATION SPECIFIC FLAGS ********* 12706f2543Smrg 13706f2543Smrg **** solid/dashed line flags **** 14706f2543Smrg 15706f2543Smrg--------- -------- 16706f2543Smrg23 LINE_PATTERN_LSBFIRST_MSBJUSTIFIED 17706f2543Smrg22 LINE_PATTERN_LSBFIRST_LSBJUSTIFIED 18706f2543Smrg21 LINE_PATTERN_MSBFIRST_MSBJUSTIFIED 19706f2543Smrg20 LINE_PATTERN_MSBFIRST_LSBJUSTIFIED 20706f2543Smrg19 LINE_PATTERN_POWER_OF_2_ONLY 21706f2543Smrg18 LINE_LIMIT_COORDS 22706f2543Smrg17 . 23706f2543Smrg16 . 24706f2543Smrg--------- ------- 25706f2543Smrg 26706f2543Smrg **** screen to screen copy flags **** 27706f2543Smrg 28706f2543Smrg--------- -------- 29706f2543Smrg23 ONLY_LEFT_TO_RIGHT_BITBLT 30706f2543Smrg22 ONLY_TWO_BITBLT_DIRECTIONS 31706f2543Smrg21 . 32706f2543Smrg20 . 33706f2543Smrg19 . 34706f2543Smrg18 . 35706f2543Smrg17 . 36706f2543Smrg16 . 37706f2543Smrg--------- ------- 38706f2543Smrg 39706f2543Smrg **** clipping flags **** 40706f2543Smrg 41706f2543Smrg--------- -------- 42706f2543Smrg23 . 43706f2543Smrg22 HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND 44706f2543Smrg21 HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY 45706f2543Smrg20 HARDWARE_CLIP_MONO_8x8_FILL 46706f2543Smrg19 HARDWARE_CLIP_COLOR_8x8_FILL 47706f2543Smrg18 HARDWARE_CLIP_SOLID_FILL 48706f2543Smrg17 HARDWARE_CLIP_DASHED_LINE 49706f2543Smrg16 HARDWARE_CLIP_SOLID_LINE 50706f2543Smrg--------- ------- 51706f2543Smrg 52706f2543Smrg 53706f2543Smrg **** hardware pattern flags **** 54706f2543Smrg 55706f2543Smrg--------- -------- 56706f2543Smrg23 . 57706f2543Smrg22 . 58706f2543Smrg21 HARDWARE_PATTERN_SCREEN_ORIGIN 59706f2543Smrg20 . 60706f2543Smrg19 . 61706f2543Smrg18 . 62706f2543Smrg17 HARDWARE_PATTERN_PROGRAMMED_ORIGIN 63706f2543Smrg16 HARDWARE_PATTERN_PROGRAMMED_BITS 64706f2543Smrg--------- ------- 65706f2543Smrg 66706f2543Smrg **** write pixmap flags **** 67706f2543Smrg 68706f2543Smrg--------- -------- 69706f2543Smrg23 . 70706f2543Smrg22 . 71706f2543Smrg21 . 72706f2543Smrg20 . 73706f2543Smrg19 . 74706f2543Smrg18 . 75706f2543Smrg17 . 76706f2543Smrg16 CONVERT_32BPP_TO_24BPP 77706f2543Smrg--------- ------- 78706f2543Smrg 79706f2543Smrg 80706f2543Smrg ******** GENERIC FLAGS ********* 81706f2543Smrg 82706f2543Smrg--------- ------- 83706f2543Smrg15 SYNC_AFTER_COLOR_EXPAND 84706f2543Smrg14 CPU_TRANSFER_PAD_QWORD 85706f2543Smrg13 . 86706f2543Smrg12 LEFT_EDGE_CLIPPING_NEGATIVE_X 87706f2543Smrg11 LEFT_EDGE_CLIPPING 88706f2543Smrg10 CPU_TRANSFER_BASE_FIXED 89706f2543Smrg 9 BIT_ORDER_IN_BYTE_MSBFIRST 90706f2543Smrg 8 TRANSPARENCY_GXCOPY_ONLY 91706f2543Smrg--------- ------- 92706f2543Smrg 7 NO_TRANSPARENCY 93706f2543Smrg 6 TRANSPARENCY_ONLY 94706f2543Smrg 5 ROP_NEEDS_SOURCE 95706f2543Smrg 4 TRIPLE_BITS_24BPP 96706f2543Smrg 3 RGB_EQUAL 97706f2543Smrg 2 NO_PLANEMASK 98706f2543Smrg 1 NO_GXCOPY 99706f2543Smrg 0 GXCOPY_ONLY 100706f2543Smrg--------- ------- 101706f2543Smrg 102706f2543Smrg 103706f2543Smrg*/ 104706f2543Smrg 105706f2543Smrg#include "gcstruct.h" 106706f2543Smrg#include "pixmapstr.h" 107706f2543Smrg#include "xf86str.h" 108706f2543Smrg#include "regionstr.h" 109706f2543Smrg#include "xf86fbman.h" 110706f2543Smrg 111706f2543Smrg#include "picturestr.h" 112706f2543Smrg 113706f2543Smrg/* Flags */ 114706f2543Smrg#define PIXMAP_CACHE 0x00000001 115706f2543Smrg#define MICROSOFT_ZERO_LINE_BIAS 0x00000002 116706f2543Smrg#define OFFSCREEN_PIXMAPS 0x00000004 117706f2543Smrg#define LINEAR_FRAMEBUFFER 0x00000008 118706f2543Smrg 119706f2543Smrg 120706f2543Smrg/* GC fg, bg, and planemask restrictions */ 121706f2543Smrg#define GXCOPY_ONLY 0x00000001 122706f2543Smrg#define NO_GXCOPY 0x00000002 123706f2543Smrg#define NO_PLANEMASK 0x00000004 124706f2543Smrg#define RGB_EQUAL 0x00000008 125706f2543Smrg#define TRIPLE_BITS_24BPP 0x00000010 126706f2543Smrg#define ROP_NEEDS_SOURCE 0x00000020 127706f2543Smrg 128706f2543Smrg/* transparency restrictions */ 129706f2543Smrg#define TRANSPARENCY_ONLY 0x00000040 130706f2543Smrg#define NO_TRANSPARENCY 0x00000080 131706f2543Smrg#define TRANSPARENCY_GXCOPY_ONLY 0x00000100 132706f2543Smrg 133706f2543Smrg/* bit order restrictions */ 134706f2543Smrg#define BIT_ORDER_IN_BYTE_MSBFIRST 0x00000200 135706f2543Smrg#define BIT_ORDER_IN_BYTE_LSBFIRST 0x00000000 136706f2543Smrg 137706f2543Smrg/* transfer base restriction */ 138706f2543Smrg#define CPU_TRANSFER_BASE_FIXED 0x00000400 139706f2543Smrg 140706f2543Smrg/* skipleft restrictions */ 141706f2543Smrg#define LEFT_EDGE_CLIPPING 0x00000800 142706f2543Smrg#define LEFT_EDGE_CLIPPING_NEGATIVE_X 0x00001000 143706f2543Smrg 144706f2543Smrg/* data padding */ 145706f2543Smrg#define CPU_TRANSFER_PAD_DWORD 0x00000000 146706f2543Smrg#define CPU_TRANSFER_PAD_QWORD 0x00004000 147706f2543Smrg#define SCANLINE_PAD_DWORD 0x00000000 148706f2543Smrg 149706f2543Smrg#define SYNC_AFTER_COLOR_EXPAND 0x00008000 150706f2543Smrg#define SYNC_AFTER_IMAGE_WRITE SYNC_AFTER_COLOR_EXPAND 151706f2543Smrg 152706f2543Smrg/* hardware pattern */ 153706f2543Smrg#define HARDWARE_PATTERN_PROGRAMMED_BITS 0x00010000 154706f2543Smrg#define HARDWARE_PATTERN_PROGRAMMED_ORIGIN 0x00020000 155706f2543Smrg#define HARDWARE_PATTERN_SCREEN_ORIGIN 0x00200000 156706f2543Smrg 157706f2543Smrg/* copyarea flags */ 158706f2543Smrg#define ONLY_TWO_BITBLT_DIRECTIONS 0x00400000 159706f2543Smrg#define ONLY_LEFT_TO_RIGHT_BITBLT 0x00800000 160706f2543Smrg 161706f2543Smrg/* line flags */ 162706f2543Smrg#define LINE_PATTERN_LSBFIRST_MSBJUSTIFIED 0x00800000 163706f2543Smrg#define LINE_PATTERN_LSBFIRST_LSBJUSTIFIED 0x00400000 164706f2543Smrg#define LINE_PATTERN_MSBFIRST_MSBJUSTIFIED 0x00200000 165706f2543Smrg#define LINE_PATTERN_MSBFIRST_LSBJUSTIFIED 0x00100000 166706f2543Smrg#define LINE_PATTERN_POWER_OF_2_ONLY 0x00080000 167706f2543Smrg#define LINE_LIMIT_COORDS 0x00040000 168706f2543Smrg 169706f2543Smrg/* clipping flags */ 170706f2543Smrg#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND 0x00400000 171706f2543Smrg#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY 0x00200000 172706f2543Smrg#define HARDWARE_CLIP_MONO_8x8_FILL 0x00100000 173706f2543Smrg#define HARDWARE_CLIP_COLOR_8x8_FILL 0x00080000 174706f2543Smrg#define HARDWARE_CLIP_SOLID_FILL 0x00040000 175706f2543Smrg#define HARDWARE_CLIP_DASHED_LINE 0x00020000 176706f2543Smrg#define HARDWARE_CLIP_SOLID_LINE 0x00010000 177706f2543Smrg 178706f2543Smrg#define HARDWARE_CLIP_LINE 0x00000000 179706f2543Smrg 180706f2543Smrg 181706f2543Smrg/* image write flags */ 182706f2543Smrg#define CONVERT_32BPP_TO_24BPP 0x00010000 183706f2543Smrg 184706f2543Smrg/* pixmap cache flags */ 185706f2543Smrg#define CACHE_MONO_8x8 0x00000001 186706f2543Smrg#define CACHE_COLOR_8x8 0x00000002 187706f2543Smrg#define DO_NOT_BLIT_STIPPLES 0x00000004 188706f2543Smrg#define DO_NOT_TILE_MONO_DATA 0x00000008 189706f2543Smrg#define DO_NOT_TILE_COLOR_DATA 0x00000010 190706f2543Smrg 191706f2543Smrg 192706f2543Smrg#define DEGREES_0 0 193706f2543Smrg#define DEGREES_90 1 194706f2543Smrg#define DEGREES_180 2 195706f2543Smrg#define DEGREES_270 3 196706f2543Smrg 197706f2543Smrg#define OMIT_LAST 1 198706f2543Smrg 199706f2543Smrg/* render flags */ 200706f2543Smrg 201706f2543Smrg#define XAA_RENDER_POWER_OF_2_TILE_ONLY 0x00000008 202706f2543Smrg#define XAA_RENDER_NO_SRC_ALPHA 0x00000004 203706f2543Smrg#define XAA_RENDER_IMPRECISE_ONLY 0x00000002 204706f2543Smrg#define XAA_RENDER_NO_TILE 0x00000001 205706f2543Smrg 206706f2543Smrg#define XAA_RENDER_REPEAT 0x00000001 207706f2543Smrg 208706f2543Smrgtypedef void (* ValidateGCProcPtr)( 209706f2543Smrg GCPtr pGC, 210706f2543Smrg unsigned long changes, 211706f2543Smrg DrawablePtr pDraw 212706f2543Smrg); 213706f2543Smrg 214706f2543Smrgtypedef struct { 215706f2543Smrg unsigned char *bits; 216706f2543Smrg int width; 217706f2543Smrg int height; 218706f2543Smrg int yoff; 219706f2543Smrg int srcwidth; 220706f2543Smrg int start; 221706f2543Smrg int end; 222706f2543Smrg} NonTEGlyphInfo, *NonTEGlyphPtr; 223706f2543Smrg 224706f2543Smrg 225706f2543Smrgtypedef struct { 226706f2543Smrg int x; 227706f2543Smrg int y; 228706f2543Smrg int w; 229706f2543Smrg int h; 230706f2543Smrg int orig_w; 231706f2543Smrg int orig_h; 232706f2543Smrg unsigned long serialNumber; 233706f2543Smrg int pat0; 234706f2543Smrg int pat1; 235706f2543Smrg int fg; 236706f2543Smrg int bg; 237706f2543Smrg int trans_color; 238706f2543Smrg DDXPointPtr offsets; 239706f2543Smrg DevUnion devPrivate; 240706f2543Smrg} XAACacheInfoRec, *XAACacheInfoPtr; 241706f2543Smrg 242706f2543Smrg 243706f2543Smrgtypedef struct _PixmapLink { 244706f2543Smrg PixmapPtr pPix; 245706f2543Smrg struct _PixmapLink *next; 246706f2543Smrg FBAreaPtr area; 247706f2543Smrg} PixmapLink, *PixmapLinkPtr; 248706f2543Smrg 249706f2543Smrgtypedef struct _XAAInfoRec { 250706f2543Smrg ScrnInfoPtr pScrn; 251706f2543Smrg int Flags; 252706f2543Smrg 253706f2543Smrg void (*Sync)( 254706f2543Smrg ScrnInfoPtr pScrn 255706f2543Smrg ); 256706f2543Smrg 257706f2543Smrg /* Restore Accel State is a driver callback that is used 258706f2543Smrg * when another screen on the same device has been active. 259706f2543Smrg * This allows multihead on a single device to work. 260706f2543Smrg * If The entityProp has IS_SHARED_ACCEL defined then this 261706f2543Smrg * function is required. 262706f2543Smrg */ 263706f2543Smrg 264706f2543Smrg void (*RestoreAccelState)( 265706f2543Smrg ScrnInfoPtr pScrn 266706f2543Smrg ); 267706f2543Smrg 268706f2543Smrg /***************** Low Level *****************/ 269706f2543Smrg 270706f2543Smrg/* Blits */ 271706f2543Smrg void (*SetupForScreenToScreenCopy)( 272706f2543Smrg ScrnInfoPtr pScrn, 273706f2543Smrg int xdir, int ydir, 274706f2543Smrg int rop, 275706f2543Smrg unsigned int planemask, 276706f2543Smrg int trans_color 277706f2543Smrg ); 278706f2543Smrg int ScreenToScreenCopyFlags; 279706f2543Smrg 280706f2543Smrg void (*SubsequentScreenToScreenCopy)( 281706f2543Smrg ScrnInfoPtr pScrn, 282706f2543Smrg int xsrc, int ysrc, 283706f2543Smrg int xdst, int ydst, 284706f2543Smrg int w, int h 285706f2543Smrg ); 286706f2543Smrg 287706f2543Smrg 288706f2543Smrg/* Solid fills */ 289706f2543Smrg void (*SetupForSolidFill)( 290706f2543Smrg ScrnInfoPtr pScrn, 291706f2543Smrg int color, 292706f2543Smrg int rop, 293706f2543Smrg unsigned int planemask 294706f2543Smrg ); 295706f2543Smrg int SolidFillFlags; 296706f2543Smrg 297706f2543Smrg void (*SubsequentSolidFillRect)( 298706f2543Smrg ScrnInfoPtr pScrn, 299706f2543Smrg int x, int y, int w, int h 300706f2543Smrg ); 301706f2543Smrg 302706f2543Smrg void (*SubsequentSolidFillTrap)( 303706f2543Smrg ScrnInfoPtr pScrn, 304706f2543Smrg int y, int h, 305706f2543Smrg int left, int dxL, int dyL, int eL, 306706f2543Smrg int right, int dxR, int dyR, int eR 307706f2543Smrg ); 308706f2543Smrg 309706f2543Smrg 310706f2543Smrg/* Solid lines */ 311706f2543Smrg 312706f2543Smrg void (*SetupForSolidLine)( 313706f2543Smrg ScrnInfoPtr pScrn, 314706f2543Smrg int color, 315706f2543Smrg int rop, 316706f2543Smrg unsigned int planemask 317706f2543Smrg ); 318706f2543Smrg int SolidLineFlags; 319706f2543Smrg 320706f2543Smrg void (*SubsequentSolidTwoPointLine)( 321706f2543Smrg ScrnInfoPtr pScrn, 322706f2543Smrg int xa, int ya, int xb, int yb, int flags 323706f2543Smrg ); 324706f2543Smrg 325706f2543Smrg void (*SubsequentSolidBresenhamLine)( 326706f2543Smrg ScrnInfoPtr pScrn, 327706f2543Smrg int x, int y, int absmaj, int absmin, int err, int len, int octant 328706f2543Smrg ); 329706f2543Smrg int SolidBresenhamLineErrorTermBits; 330706f2543Smrg 331706f2543Smrg void (*SubsequentSolidHorVertLine)( 332706f2543Smrg ScrnInfoPtr pScrn, 333706f2543Smrg int x, int y, int len, int dir 334706f2543Smrg ); 335706f2543Smrg 336706f2543Smrg/* Dashed lines */ 337706f2543Smrg 338706f2543Smrg void (*SetupForDashedLine)( 339706f2543Smrg ScrnInfoPtr pScrn, 340706f2543Smrg int fg, int bg, 341706f2543Smrg int rop, 342706f2543Smrg unsigned int planemask, 343706f2543Smrg int length, 344706f2543Smrg unsigned char *pattern 345706f2543Smrg ); 346706f2543Smrg int DashedLineFlags; 347706f2543Smrg int DashPatternMaxLength; 348706f2543Smrg 349706f2543Smrg void (*SubsequentDashedTwoPointLine)( 350706f2543Smrg ScrnInfoPtr pScrn, 351706f2543Smrg int xa, int ya, int xb, int yb, int flags, int phase 352706f2543Smrg ); 353706f2543Smrg 354706f2543Smrg void (*SubsequentDashedBresenhamLine)( 355706f2543Smrg ScrnInfoPtr pScrn, 356706f2543Smrg int x, int y, int absmaj, int absmin, int err, int len, int flags, 357706f2543Smrg int phase 358706f2543Smrg ); 359706f2543Smrg int DashedBresenhamLineErrorTermBits; 360706f2543Smrg 361706f2543Smrg/* Clipper */ 362706f2543Smrg 363706f2543Smrg void (*SetClippingRectangle) ( 364706f2543Smrg ScrnInfoPtr pScrn, 365706f2543Smrg int left, int top, int right, int bottom 366706f2543Smrg ); 367706f2543Smrg int ClippingFlags; 368706f2543Smrg 369706f2543Smrg void (*DisableClipping)(ScrnInfoPtr pScrn); 370706f2543Smrg 371706f2543Smrg/* 8x8 mono pattern fills */ 372706f2543Smrg void (*SetupForMono8x8PatternFill)( 373706f2543Smrg ScrnInfoPtr pScrn, 374706f2543Smrg int patx, int paty, 375706f2543Smrg int fg, int bg, 376706f2543Smrg int rop, 377706f2543Smrg unsigned int planemask 378706f2543Smrg ); 379706f2543Smrg int Mono8x8PatternFillFlags; 380706f2543Smrg 381706f2543Smrg void (*SubsequentMono8x8PatternFillRect)( 382706f2543Smrg ScrnInfoPtr pScrn, 383706f2543Smrg int patx, int paty, 384706f2543Smrg int x, int y, int w, int h 385706f2543Smrg ); 386706f2543Smrg 387706f2543Smrg void (*SubsequentMono8x8PatternFillTrap)( 388706f2543Smrg ScrnInfoPtr pScrn, 389706f2543Smrg int patx, int paty, 390706f2543Smrg int y, int h, 391706f2543Smrg int left, int dxL, int dyL, int eL, 392706f2543Smrg int right, int dxR, int dyR, int eR 393706f2543Smrg ); 394706f2543Smrg 395706f2543Smrg/* 8x8 color pattern fills */ 396706f2543Smrg 397706f2543Smrg void (*SetupForColor8x8PatternFill)( 398706f2543Smrg ScrnInfoPtr pScrn, 399706f2543Smrg int patx, int paty, 400706f2543Smrg int rop, 401706f2543Smrg unsigned int planemask, 402706f2543Smrg int transparency_color 403706f2543Smrg ); 404706f2543Smrg int Color8x8PatternFillFlags; 405706f2543Smrg 406706f2543Smrg void (*SubsequentColor8x8PatternFillRect)( 407706f2543Smrg ScrnInfoPtr pScrn, 408706f2543Smrg int patx, int paty, 409706f2543Smrg int x, int y, int w, int h 410706f2543Smrg ); 411706f2543Smrg 412706f2543Smrg void (*SubsequentColor8x8PatternFillTrap)( 413706f2543Smrg ScrnInfoPtr pScrn, 414706f2543Smrg int patx, int paty, 415706f2543Smrg int y, int h, 416706f2543Smrg int left, int dxL, int dyL, int eL, 417706f2543Smrg int right, int dxR, int dyR, int eR 418706f2543Smrg ); 419706f2543Smrg 420706f2543Smrg 421706f2543Smrg/* Color expansion */ 422706f2543Smrg 423706f2543Smrg void (*SetupForCPUToScreenColorExpandFill)( 424706f2543Smrg ScrnInfoPtr pScrn, 425706f2543Smrg int fg, int bg, 426706f2543Smrg int rop, 427706f2543Smrg unsigned int planemask 428706f2543Smrg ); 429706f2543Smrg int CPUToScreenColorExpandFillFlags; 430706f2543Smrg 431706f2543Smrg void (*SubsequentCPUToScreenColorExpandFill)( 432706f2543Smrg ScrnInfoPtr pScrn, 433706f2543Smrg int x, int y, int w, int h, 434706f2543Smrg int skipleft 435706f2543Smrg ); 436706f2543Smrg 437706f2543Smrg unsigned char *ColorExpandBase; 438706f2543Smrg int ColorExpandRange; 439706f2543Smrg 440706f2543Smrg 441706f2543Smrg/* Scanline color expansion */ 442706f2543Smrg 443706f2543Smrg void (*SetupForScanlineCPUToScreenColorExpandFill)( 444706f2543Smrg ScrnInfoPtr pScrn, 445706f2543Smrg int fg, int bg, 446706f2543Smrg int rop, 447706f2543Smrg unsigned int planemask 448706f2543Smrg ); 449706f2543Smrg int ScanlineCPUToScreenColorExpandFillFlags; 450706f2543Smrg 451706f2543Smrg void (*SubsequentScanlineCPUToScreenColorExpandFill)( 452706f2543Smrg ScrnInfoPtr pScrn, 453706f2543Smrg int x, int y, int w, int h, 454706f2543Smrg int skipleft 455706f2543Smrg ); 456706f2543Smrg 457706f2543Smrg void (*SubsequentColorExpandScanline)( 458706f2543Smrg ScrnInfoPtr pScrn, 459706f2543Smrg int bufno 460706f2543Smrg ); 461706f2543Smrg 462706f2543Smrg int NumScanlineColorExpandBuffers; 463706f2543Smrg unsigned char **ScanlineColorExpandBuffers; 464706f2543Smrg 465706f2543Smrg/* Screen to screen color expansion */ 466706f2543Smrg 467706f2543Smrg void (*SetupForScreenToScreenColorExpandFill) ( 468706f2543Smrg ScrnInfoPtr pScrn, 469706f2543Smrg int fg, int bg, 470706f2543Smrg int rop, 471706f2543Smrg unsigned int planemask 472706f2543Smrg ); 473706f2543Smrg int ScreenToScreenColorExpandFillFlags; 474706f2543Smrg 475706f2543Smrg void (*SubsequentScreenToScreenColorExpandFill)( 476706f2543Smrg ScrnInfoPtr pScrn, 477706f2543Smrg int x, int y, int w, int h, 478706f2543Smrg int srcx, int srcy, int skipleft 479706f2543Smrg ); 480706f2543Smrg 481706f2543Smrg 482706f2543Smrg/* Image transfers */ 483706f2543Smrg 484706f2543Smrg void (*SetupForImageWrite)( 485706f2543Smrg ScrnInfoPtr pScrn, 486706f2543Smrg int rop, 487706f2543Smrg unsigned int planemask, 488706f2543Smrg int transparency_color, 489706f2543Smrg int bpp, int depth 490706f2543Smrg ); 491706f2543Smrg int ImageWriteFlags; 492706f2543Smrg 493706f2543Smrg void (*SubsequentImageWriteRect)( 494706f2543Smrg ScrnInfoPtr pScrn, 495706f2543Smrg int x, int y, int w, int h, 496706f2543Smrg int skipleft 497706f2543Smrg ); 498706f2543Smrg unsigned char *ImageWriteBase; 499706f2543Smrg int ImageWriteRange; 500706f2543Smrg 501706f2543Smrg/* Scanline Image transfers */ 502706f2543Smrg 503706f2543Smrg void (*SetupForScanlineImageWrite)( 504706f2543Smrg ScrnInfoPtr pScrn, 505706f2543Smrg int rop, 506706f2543Smrg unsigned int planemask, 507706f2543Smrg int transparency_color, 508706f2543Smrg int bpp, int depth 509706f2543Smrg ); 510706f2543Smrg int ScanlineImageWriteFlags; 511706f2543Smrg 512706f2543Smrg void (*SubsequentScanlineImageWriteRect)( 513706f2543Smrg ScrnInfoPtr pScrn, 514706f2543Smrg int x, int y, int w, int h, 515706f2543Smrg int skipleft 516706f2543Smrg ); 517706f2543Smrg 518706f2543Smrg void (*SubsequentImageWriteScanline) ( 519706f2543Smrg ScrnInfoPtr pScrn, 520706f2543Smrg int bufno 521706f2543Smrg ); 522706f2543Smrg 523706f2543Smrg int NumScanlineImageWriteBuffers; 524706f2543Smrg unsigned char **ScanlineImageWriteBuffers; 525706f2543Smrg 526706f2543Smrg /* Image Reads - OBSOLETE AND NOT USED */ 527706f2543Smrg 528706f2543Smrg void (*SetupForImageRead) ( 529706f2543Smrg ScrnInfoPtr pScrn, 530706f2543Smrg int bpp, int depth 531706f2543Smrg ); 532706f2543Smrg int ImageReadFlags; 533706f2543Smrg 534706f2543Smrg unsigned char *ImageReadBase; 535706f2543Smrg int ImageReadRange; 536706f2543Smrg 537706f2543Smrg void (*SubsequentImageReadRect)( 538706f2543Smrg ScrnInfoPtr pScrn, 539706f2543Smrg int x, int y, int w, int h 540706f2543Smrg ); 541706f2543Smrg 542706f2543Smrg 543706f2543Smrg /***************** Mid Level *****************/ 544706f2543Smrg void (*ScreenToScreenBitBlt)( 545706f2543Smrg ScrnInfoPtr pScrn, 546706f2543Smrg int nbox, 547706f2543Smrg DDXPointPtr pptSrc, 548706f2543Smrg BoxPtr pbox, 549706f2543Smrg int xdir, int ydir, 550706f2543Smrg int alu, 551706f2543Smrg unsigned int planmask 552706f2543Smrg ); 553706f2543Smrg int ScreenToScreenBitBltFlags; 554706f2543Smrg 555706f2543Smrg void (*WriteBitmap) ( 556706f2543Smrg ScrnInfoPtr pScrn, 557706f2543Smrg int x, int y, int w, int h, 558706f2543Smrg unsigned char *src, 559706f2543Smrg int srcwidth, 560706f2543Smrg int skipleft, 561706f2543Smrg int fg, int bg, 562706f2543Smrg int rop, 563706f2543Smrg unsigned int planemask 564706f2543Smrg ); 565706f2543Smrg int WriteBitmapFlags; 566706f2543Smrg 567706f2543Smrg void (*FillSolidRects)( 568706f2543Smrg ScrnInfoPtr pScrn, 569706f2543Smrg int fg, int rop, 570706f2543Smrg unsigned int planemask, 571706f2543Smrg int nBox, 572706f2543Smrg BoxPtr pBox 573706f2543Smrg ); 574706f2543Smrg int FillSolidRectsFlags; 575706f2543Smrg 576706f2543Smrg void (*FillMono8x8PatternRects)( 577706f2543Smrg ScrnInfoPtr pScrn, 578706f2543Smrg int fg, int bg, int rop, 579706f2543Smrg unsigned int planemask, 580706f2543Smrg int nBox, 581706f2543Smrg BoxPtr pBox, 582706f2543Smrg int pat0, int pat1, 583706f2543Smrg int xorg, int yorg 584706f2543Smrg ); 585706f2543Smrg int FillMono8x8PatternRectsFlags; 586706f2543Smrg 587706f2543Smrg void (*FillColor8x8PatternRects)( 588706f2543Smrg ScrnInfoPtr pScrn, 589706f2543Smrg int rop, 590706f2543Smrg unsigned int planemask, 591706f2543Smrg int nBox, 592706f2543Smrg BoxPtr pBox, 593706f2543Smrg int xorg, int yorg, 594706f2543Smrg XAACacheInfoPtr pCache 595706f2543Smrg ); 596706f2543Smrg int FillColor8x8PatternRectsFlags; 597706f2543Smrg 598706f2543Smrg void (*FillCacheBltRects)( 599706f2543Smrg ScrnInfoPtr pScrn, 600706f2543Smrg int rop, 601706f2543Smrg unsigned int planemask, 602706f2543Smrg int nBox, 603706f2543Smrg BoxPtr pBox, 604706f2543Smrg int xorg, int yorg, 605706f2543Smrg XAACacheInfoPtr pCache 606706f2543Smrg ); 607706f2543Smrg int FillCacheBltRectsFlags; 608706f2543Smrg 609706f2543Smrg void (*FillColorExpandRects)( 610706f2543Smrg ScrnInfoPtr pScrn, 611706f2543Smrg int fg, int bg, int rop, 612706f2543Smrg unsigned int planemask, 613706f2543Smrg int nBox, 614706f2543Smrg BoxPtr pBox, 615706f2543Smrg int xorg, int yorg, 616706f2543Smrg PixmapPtr pPix 617706f2543Smrg ); 618706f2543Smrg int FillColorExpandRectsFlags; 619706f2543Smrg 620706f2543Smrg void (*FillCacheExpandRects)( 621706f2543Smrg ScrnInfoPtr pScrn, 622706f2543Smrg int fg, int bg, int rop, 623706f2543Smrg unsigned int planemask, 624706f2543Smrg int nBox, 625706f2543Smrg BoxPtr pBox, 626706f2543Smrg int xorg, int yorg, 627706f2543Smrg PixmapPtr pPix 628706f2543Smrg ); 629706f2543Smrg int FillCacheExpandRectsFlags; 630706f2543Smrg 631706f2543Smrg void (*FillImageWriteRects)( 632706f2543Smrg ScrnInfoPtr pScrn, 633706f2543Smrg int rop, 634706f2543Smrg unsigned int planemask, 635706f2543Smrg int nBox, 636706f2543Smrg BoxPtr pBox, 637706f2543Smrg int xorg, int yorg, 638706f2543Smrg PixmapPtr pPix 639706f2543Smrg ); 640706f2543Smrg int FillImageWriteRectsFlags; 641706f2543Smrg 642706f2543Smrg 643706f2543Smrg void (*FillSolidSpans)( 644706f2543Smrg ScrnInfoPtr pScrn, 645706f2543Smrg int fg, int rop, 646706f2543Smrg unsigned int planemask, 647706f2543Smrg int n, 648706f2543Smrg DDXPointPtr points, 649706f2543Smrg int *widths, 650706f2543Smrg int fSorted 651706f2543Smrg ); 652706f2543Smrg int FillSolidSpansFlags; 653706f2543Smrg 654706f2543Smrg void (*FillMono8x8PatternSpans)( 655706f2543Smrg ScrnInfoPtr pScrn, 656706f2543Smrg int fg, int bg, int rop, 657706f2543Smrg unsigned int planemask, 658706f2543Smrg int n, 659706f2543Smrg DDXPointPtr points, 660706f2543Smrg int *widths, 661706f2543Smrg int fSorted, 662706f2543Smrg int pat0, int pat1, 663706f2543Smrg int xorg, int yorg 664706f2543Smrg ); 665706f2543Smrg int FillMono8x8PatternSpansFlags; 666706f2543Smrg 667706f2543Smrg void (*FillColor8x8PatternSpans)( 668706f2543Smrg ScrnInfoPtr pScrn, 669706f2543Smrg int rop, 670706f2543Smrg unsigned int planemask, 671706f2543Smrg int n, 672706f2543Smrg DDXPointPtr points, 673706f2543Smrg int *widths, 674706f2543Smrg int fSorted, 675706f2543Smrg XAACacheInfoPtr pCache, 676706f2543Smrg int xorg, int yorg 677706f2543Smrg ); 678706f2543Smrg int FillColor8x8PatternSpansFlags; 679706f2543Smrg 680706f2543Smrg void (*FillCacheBltSpans)( 681706f2543Smrg ScrnInfoPtr pScrn, 682706f2543Smrg int rop, 683706f2543Smrg unsigned int planemask, 684706f2543Smrg int n, 685706f2543Smrg DDXPointPtr points, 686706f2543Smrg int *widths, 687706f2543Smrg int fSorted, 688706f2543Smrg XAACacheInfoPtr pCache, 689706f2543Smrg int xorg, int yorg 690706f2543Smrg ); 691706f2543Smrg int FillCacheBltSpansFlags; 692706f2543Smrg 693706f2543Smrg void (*FillColorExpandSpans)( 694706f2543Smrg ScrnInfoPtr pScrn, 695706f2543Smrg int fg, int bg, int rop, 696706f2543Smrg unsigned int planemask, 697706f2543Smrg int n, 698706f2543Smrg DDXPointPtr points, 699706f2543Smrg int *widths, 700706f2543Smrg int fSorted, 701706f2543Smrg int xorg, int yorg, 702706f2543Smrg PixmapPtr pPix 703706f2543Smrg ); 704706f2543Smrg int FillColorExpandSpansFlags; 705706f2543Smrg 706706f2543Smrg void (*FillCacheExpandSpans)( 707706f2543Smrg ScrnInfoPtr pScrn, 708706f2543Smrg int fg, int bg, int rop, 709706f2543Smrg unsigned int planemask, 710706f2543Smrg int n, 711706f2543Smrg DDXPointPtr ppt, 712706f2543Smrg int *pwidth, 713706f2543Smrg int fSorted, 714706f2543Smrg int xorg, int yorg, 715706f2543Smrg PixmapPtr pPix 716706f2543Smrg ); 717706f2543Smrg int FillCacheExpandSpansFlags; 718706f2543Smrg 719706f2543Smrg void (*TEGlyphRenderer)( 720706f2543Smrg ScrnInfoPtr pScrn, 721706f2543Smrg int x, int y, int w, int h, int skipleft, int startline, 722706f2543Smrg unsigned int **glyphs, int glyphWidth, 723706f2543Smrg int fg, int bg, int rop, unsigned planemask 724706f2543Smrg ); 725706f2543Smrg int TEGlyphRendererFlags; 726706f2543Smrg 727706f2543Smrg void (*NonTEGlyphRenderer)( 728706f2543Smrg ScrnInfoPtr pScrn, 729706f2543Smrg int x, int y, int n, 730706f2543Smrg NonTEGlyphPtr glyphs, 731706f2543Smrg BoxPtr pbox, 732706f2543Smrg int fg, int rop, 733706f2543Smrg unsigned int planemask 734706f2543Smrg ); 735706f2543Smrg int NonTEGlyphRendererFlags; 736706f2543Smrg 737706f2543Smrg void (*WritePixmap) ( 738706f2543Smrg ScrnInfoPtr pScrn, 739706f2543Smrg int x, int y, int w, int h, 740706f2543Smrg unsigned char *src, 741706f2543Smrg int srcwidth, 742706f2543Smrg int rop, 743706f2543Smrg unsigned int planemask, 744706f2543Smrg int transparency_color, 745706f2543Smrg int bpp, int depth 746706f2543Smrg ); 747706f2543Smrg int WritePixmapFlags; 748706f2543Smrg 749706f2543Smrg void (*ReadPixmap) ( 750706f2543Smrg ScrnInfoPtr pScrn, 751706f2543Smrg int x, int y, int w, int h, 752706f2543Smrg unsigned char *dst, 753706f2543Smrg int dstwidth, 754706f2543Smrg int bpp, int depth 755706f2543Smrg ); 756706f2543Smrg int ReadPixmapFlags; 757706f2543Smrg 758706f2543Smrg /***************** GC Level *****************/ 759706f2543Smrg RegionPtr (*CopyArea)( 760706f2543Smrg DrawablePtr pSrcDrawable, 761706f2543Smrg DrawablePtr pDstDrawable, 762706f2543Smrg GC *pGC, 763706f2543Smrg int srcx, int srcy, 764706f2543Smrg int width, int height, 765706f2543Smrg int dstx, int dsty 766706f2543Smrg ); 767706f2543Smrg int CopyAreaFlags; 768706f2543Smrg 769706f2543Smrg RegionPtr (*CopyPlane)( 770706f2543Smrg DrawablePtr pSrc, 771706f2543Smrg DrawablePtr pDst, 772706f2543Smrg GCPtr pGC, 773706f2543Smrg int srcx, int srcy, 774706f2543Smrg int width, int height, 775706f2543Smrg int dstx, int dsty, 776706f2543Smrg unsigned long bitPlane 777706f2543Smrg ); 778706f2543Smrg int CopyPlaneFlags; 779706f2543Smrg 780706f2543Smrg void (*PushPixelsSolid) ( 781706f2543Smrg GCPtr pGC, 782706f2543Smrg PixmapPtr pBitMap, 783706f2543Smrg DrawablePtr pDrawable, 784706f2543Smrg int dx, int dy, 785706f2543Smrg int xOrg, int yOrg 786706f2543Smrg ); 787706f2543Smrg int PushPixelsFlags; 788706f2543Smrg 789706f2543Smrg /** PolyFillRect **/ 790706f2543Smrg 791706f2543Smrg void (*PolyFillRectSolid)( 792706f2543Smrg DrawablePtr pDraw, 793706f2543Smrg GCPtr pGC, 794706f2543Smrg int nrectFill, 795706f2543Smrg xRectangle *prectInit 796706f2543Smrg ); 797706f2543Smrg int PolyFillRectSolidFlags; 798706f2543Smrg 799706f2543Smrg void (*PolyFillRectStippled)( 800706f2543Smrg DrawablePtr pDraw, 801706f2543Smrg GCPtr pGC, 802706f2543Smrg int nrectFill, 803706f2543Smrg xRectangle *prectInit 804706f2543Smrg ); 805706f2543Smrg int PolyFillRectStippledFlags; 806706f2543Smrg 807706f2543Smrg void (*PolyFillRectOpaqueStippled)( 808706f2543Smrg DrawablePtr pDraw, 809706f2543Smrg GCPtr pGC, 810706f2543Smrg int nrectFill, 811706f2543Smrg xRectangle *prectInit 812706f2543Smrg ); 813706f2543Smrg int PolyFillRectOpaqueStippledFlags; 814706f2543Smrg 815706f2543Smrg void (*PolyFillRectTiled)( 816706f2543Smrg DrawablePtr pDraw, 817706f2543Smrg GCPtr pGC, 818706f2543Smrg int nrectFill, 819706f2543Smrg xRectangle *prectInit 820706f2543Smrg ); 821706f2543Smrg int PolyFillRectTiledFlags; 822706f2543Smrg 823706f2543Smrg /** FillSpans **/ 824706f2543Smrg 825706f2543Smrg void (*FillSpansSolid)( 826706f2543Smrg DrawablePtr pDraw, 827706f2543Smrg GCPtr pGC, 828706f2543Smrg int nInit, 829706f2543Smrg DDXPointPtr ppt, 830706f2543Smrg int *pwidth, 831706f2543Smrg int fSorted 832706f2543Smrg ); 833706f2543Smrg int FillSpansSolidFlags; 834706f2543Smrg 835706f2543Smrg void (*FillSpansStippled)( 836706f2543Smrg DrawablePtr pDraw, 837706f2543Smrg GCPtr pGC, 838706f2543Smrg int nInit, 839706f2543Smrg DDXPointPtr ppt, 840706f2543Smrg int *pwidth, 841706f2543Smrg int fSorted 842706f2543Smrg ); 843706f2543Smrg int FillSpansStippledFlags; 844706f2543Smrg 845706f2543Smrg void (*FillSpansOpaqueStippled)( 846706f2543Smrg DrawablePtr pDraw, 847706f2543Smrg GCPtr pGC, 848706f2543Smrg int nInit, 849706f2543Smrg DDXPointPtr ppt, 850706f2543Smrg int *pwidth, 851706f2543Smrg int fSorted 852706f2543Smrg ); 853706f2543Smrg int FillSpansOpaqueStippledFlags; 854706f2543Smrg 855706f2543Smrg void (*FillSpansTiled)( 856706f2543Smrg DrawablePtr pDraw, 857706f2543Smrg GCPtr pGC, 858706f2543Smrg int nInit, 859706f2543Smrg DDXPointPtr ppt, 860706f2543Smrg int *pwidth, 861706f2543Smrg int fSorted 862706f2543Smrg ); 863706f2543Smrg int FillSpansTiledFlags; 864706f2543Smrg 865706f2543Smrg int (*PolyText8TE) ( 866706f2543Smrg DrawablePtr pDraw, 867706f2543Smrg GCPtr pGC, 868706f2543Smrg int x, int y, 869706f2543Smrg int count, 870706f2543Smrg char *chars 871706f2543Smrg ); 872706f2543Smrg int PolyText8TEFlags; 873706f2543Smrg 874706f2543Smrg int (*PolyText16TE) ( 875706f2543Smrg DrawablePtr pDraw, 876706f2543Smrg GCPtr pGC, 877706f2543Smrg int x, int y, 878706f2543Smrg int count, 879706f2543Smrg unsigned short *chars 880706f2543Smrg ); 881706f2543Smrg int PolyText16TEFlags; 882706f2543Smrg 883706f2543Smrg void (*ImageText8TE) ( 884706f2543Smrg DrawablePtr pDraw, 885706f2543Smrg GCPtr pGC, 886706f2543Smrg int x, int y, 887706f2543Smrg int count, 888706f2543Smrg char *chars 889706f2543Smrg ); 890706f2543Smrg int ImageText8TEFlags; 891706f2543Smrg 892706f2543Smrg void (*ImageText16TE) ( 893706f2543Smrg DrawablePtr pDraw, 894706f2543Smrg GCPtr pGC, 895706f2543Smrg int x, int y, 896706f2543Smrg int count, 897706f2543Smrg unsigned short *chars 898706f2543Smrg ); 899706f2543Smrg int ImageText16TEFlags; 900706f2543Smrg 901706f2543Smrg void (*ImageGlyphBltTE) ( 902706f2543Smrg DrawablePtr pDrawable, 903706f2543Smrg GCPtr pGC, 904706f2543Smrg int xInit, int yInit, 905706f2543Smrg unsigned int nglyph, 906706f2543Smrg CharInfoPtr *ppci, 907706f2543Smrg pointer pglyphBase 908706f2543Smrg ); 909706f2543Smrg int ImageGlyphBltTEFlags; 910706f2543Smrg 911706f2543Smrg void (*PolyGlyphBltTE) ( 912706f2543Smrg DrawablePtr pDrawable, 913706f2543Smrg GCPtr pGC, 914706f2543Smrg int xInit, int yInit, 915706f2543Smrg unsigned int nglyph, 916706f2543Smrg CharInfoPtr *ppci, 917706f2543Smrg pointer pglyphBase 918706f2543Smrg ); 919706f2543Smrg int PolyGlyphBltTEFlags; 920706f2543Smrg 921706f2543Smrg int (*PolyText8NonTE) ( 922706f2543Smrg DrawablePtr pDraw, 923706f2543Smrg GCPtr pGC, 924706f2543Smrg int x, int y, 925706f2543Smrg int count, 926706f2543Smrg char *chars 927706f2543Smrg ); 928706f2543Smrg int PolyText8NonTEFlags; 929706f2543Smrg 930706f2543Smrg int (*PolyText16NonTE) ( 931706f2543Smrg DrawablePtr pDraw, 932706f2543Smrg GCPtr pGC, 933706f2543Smrg int x, int y, 934706f2543Smrg int count, 935706f2543Smrg unsigned short *chars 936706f2543Smrg ); 937706f2543Smrg int PolyText16NonTEFlags; 938706f2543Smrg 939706f2543Smrg void (*ImageText8NonTE) ( 940706f2543Smrg DrawablePtr pDraw, 941706f2543Smrg GCPtr pGC, 942706f2543Smrg int x, int y, 943706f2543Smrg int count, 944706f2543Smrg char *chars 945706f2543Smrg ); 946706f2543Smrg int ImageText8NonTEFlags; 947706f2543Smrg 948706f2543Smrg void (*ImageText16NonTE) ( 949706f2543Smrg DrawablePtr pDraw, 950706f2543Smrg GCPtr pGC, 951706f2543Smrg int x, int y, 952706f2543Smrg int count, 953706f2543Smrg unsigned short *chars 954706f2543Smrg ); 955706f2543Smrg int ImageText16NonTEFlags; 956706f2543Smrg 957706f2543Smrg void (*ImageGlyphBltNonTE) ( 958706f2543Smrg DrawablePtr pDrawable, 959706f2543Smrg GCPtr pGC, 960706f2543Smrg int xInit, int yInit, 961706f2543Smrg unsigned int nglyph, 962706f2543Smrg CharInfoPtr *ppci, 963706f2543Smrg pointer pglyphBase 964706f2543Smrg ); 965706f2543Smrg int ImageGlyphBltNonTEFlags; 966706f2543Smrg 967706f2543Smrg void (*PolyGlyphBltNonTE) ( 968706f2543Smrg DrawablePtr pDrawable, 969706f2543Smrg GCPtr pGC, 970706f2543Smrg int xInit, int yInit, 971706f2543Smrg unsigned int nglyph, 972706f2543Smrg CharInfoPtr *ppci, 973706f2543Smrg pointer pglyphBase 974706f2543Smrg ); 975706f2543Smrg int PolyGlyphBltNonTEFlags; 976706f2543Smrg 977706f2543Smrg void (*PolyRectangleThinSolid)( 978706f2543Smrg DrawablePtr pDrawable, 979706f2543Smrg GCPtr pGC, 980706f2543Smrg int nRectsInit, 981706f2543Smrg xRectangle *pRectsInit 982706f2543Smrg ); 983706f2543Smrg int PolyRectangleThinSolidFlags; 984706f2543Smrg 985706f2543Smrg void (*PolylinesWideSolid)( 986706f2543Smrg DrawablePtr pDrawable, 987706f2543Smrg GCPtr pGC, 988706f2543Smrg int mode, 989706f2543Smrg int npt, 990706f2543Smrg DDXPointPtr pPts 991706f2543Smrg ); 992706f2543Smrg int PolylinesWideSolidFlags; 993706f2543Smrg 994706f2543Smrg void (*PolylinesThinSolid)( 995706f2543Smrg DrawablePtr pDrawable, 996706f2543Smrg GCPtr pGC, 997706f2543Smrg int mode, 998706f2543Smrg int npt, 999706f2543Smrg DDXPointPtr pPts 1000706f2543Smrg ); 1001706f2543Smrg int PolylinesThinSolidFlags; 1002706f2543Smrg 1003706f2543Smrg void (*PolySegmentThinSolid)( 1004706f2543Smrg DrawablePtr pDrawable, 1005706f2543Smrg GCPtr pGC, 1006706f2543Smrg int nseg, 1007706f2543Smrg xSegment *pSeg 1008706f2543Smrg ); 1009706f2543Smrg int PolySegmentThinSolidFlags; 1010706f2543Smrg 1011706f2543Smrg void (*PolylinesThinDashed)( 1012706f2543Smrg DrawablePtr pDrawable, 1013706f2543Smrg GCPtr pGC, 1014706f2543Smrg int mode, 1015706f2543Smrg int npt, 1016706f2543Smrg DDXPointPtr pPts 1017706f2543Smrg ); 1018706f2543Smrg int PolylinesThinDashedFlags; 1019706f2543Smrg 1020706f2543Smrg void (*PolySegmentThinDashed)( 1021706f2543Smrg DrawablePtr pDrawable, 1022706f2543Smrg GCPtr pGC, 1023706f2543Smrg int nseg, 1024706f2543Smrg xSegment *pSeg 1025706f2543Smrg ); 1026706f2543Smrg int PolySegmentThinDashedFlags; 1027706f2543Smrg 1028706f2543Smrg void (*FillPolygonSolid)( 1029706f2543Smrg DrawablePtr pDrawable, 1030706f2543Smrg GCPtr pGC, 1031706f2543Smrg int shape, 1032706f2543Smrg int mode, 1033706f2543Smrg int count, 1034706f2543Smrg DDXPointPtr ptsIn 1035706f2543Smrg ); 1036706f2543Smrg int FillPolygonSolidFlags; 1037706f2543Smrg 1038706f2543Smrg void (*FillPolygonStippled)( 1039706f2543Smrg DrawablePtr pDrawable, 1040706f2543Smrg GCPtr pGC, 1041706f2543Smrg int shape, 1042706f2543Smrg int mode, 1043706f2543Smrg int count, 1044706f2543Smrg DDXPointPtr ptsIn 1045706f2543Smrg ); 1046706f2543Smrg int FillPolygonStippledFlags; 1047706f2543Smrg 1048706f2543Smrg void (*FillPolygonOpaqueStippled)( 1049706f2543Smrg DrawablePtr pDrawable, 1050706f2543Smrg GCPtr pGC, 1051706f2543Smrg int shape, 1052706f2543Smrg int mode, 1053706f2543Smrg int count, 1054706f2543Smrg DDXPointPtr ptsIn 1055706f2543Smrg ); 1056706f2543Smrg int FillPolygonOpaqueStippledFlags; 1057706f2543Smrg 1058706f2543Smrg void (*FillPolygonTiled)( 1059706f2543Smrg DrawablePtr pDrawable, 1060706f2543Smrg GCPtr pGC, 1061706f2543Smrg int shape, 1062706f2543Smrg int mode, 1063706f2543Smrg int count, 1064706f2543Smrg DDXPointPtr ptsIn 1065706f2543Smrg ); 1066706f2543Smrg int FillPolygonTiledFlags; 1067706f2543Smrg 1068706f2543Smrg void (*PolyFillArcSolid)( 1069706f2543Smrg DrawablePtr pDraw, 1070706f2543Smrg GCPtr pGC, 1071706f2543Smrg int narcs, 1072706f2543Smrg xArc *parcs 1073706f2543Smrg ); 1074706f2543Smrg int PolyFillArcSolidFlags; 1075706f2543Smrg 1076706f2543Smrg void (*PutImage)( 1077706f2543Smrg DrawablePtr pDraw, 1078706f2543Smrg GCPtr pGC, 1079706f2543Smrg int depth, 1080706f2543Smrg int x, 1081706f2543Smrg int y, 1082706f2543Smrg int w, 1083706f2543Smrg int h, 1084706f2543Smrg int leftPad, 1085706f2543Smrg int format, 1086706f2543Smrg char *pImage 1087706f2543Smrg ); 1088706f2543Smrg int PutImageFlags; 1089706f2543Smrg 1090706f2543Smrg /* Validation masks */ 1091706f2543Smrg 1092706f2543Smrg unsigned long FillSpansMask; 1093706f2543Smrg ValidateGCProcPtr ValidateFillSpans; 1094706f2543Smrg unsigned long SetSpansMask; 1095706f2543Smrg ValidateGCProcPtr ValidateSetSpans; 1096706f2543Smrg unsigned long PutImageMask; 1097706f2543Smrg ValidateGCProcPtr ValidatePutImage; 1098706f2543Smrg unsigned long CopyAreaMask; 1099706f2543Smrg ValidateGCProcPtr ValidateCopyArea; 1100706f2543Smrg unsigned long CopyPlaneMask; 1101706f2543Smrg ValidateGCProcPtr ValidateCopyPlane; 1102706f2543Smrg unsigned long PolyPointMask; 1103706f2543Smrg ValidateGCProcPtr ValidatePolyPoint; 1104706f2543Smrg unsigned long PolylinesMask; 1105706f2543Smrg ValidateGCProcPtr ValidatePolylines; 1106706f2543Smrg unsigned long PolySegmentMask; 1107706f2543Smrg ValidateGCProcPtr ValidatePolySegment; 1108706f2543Smrg unsigned long PolyRectangleMask; 1109706f2543Smrg ValidateGCProcPtr ValidatePolyRectangle; 1110706f2543Smrg unsigned long PolyArcMask; 1111706f2543Smrg ValidateGCProcPtr ValidatePolyArc; 1112706f2543Smrg unsigned long FillPolygonMask; 1113706f2543Smrg ValidateGCProcPtr ValidateFillPolygon; 1114706f2543Smrg unsigned long PolyFillRectMask; 1115706f2543Smrg ValidateGCProcPtr ValidatePolyFillRect; 1116706f2543Smrg unsigned long PolyFillArcMask; 1117706f2543Smrg ValidateGCProcPtr ValidatePolyFillArc; 1118706f2543Smrg unsigned long PolyText8Mask; 1119706f2543Smrg ValidateGCProcPtr ValidatePolyText8; 1120706f2543Smrg unsigned long PolyText16Mask; 1121706f2543Smrg ValidateGCProcPtr ValidatePolyText16; 1122706f2543Smrg unsigned long ImageText8Mask; 1123706f2543Smrg ValidateGCProcPtr ValidateImageText8; 1124706f2543Smrg unsigned long ImageText16Mask; 1125706f2543Smrg ValidateGCProcPtr ValidateImageText16; 1126706f2543Smrg unsigned long PolyGlyphBltMask; 1127706f2543Smrg ValidateGCProcPtr ValidatePolyGlyphBlt; 1128706f2543Smrg unsigned long ImageGlyphBltMask; 1129706f2543Smrg ValidateGCProcPtr ValidateImageGlyphBlt; 1130706f2543Smrg unsigned long PushPixelsMask; 1131706f2543Smrg ValidateGCProcPtr ValidatePushPixels; 1132706f2543Smrg 1133706f2543Smrg void (*ComputeDash)(GCPtr pGC); 1134706f2543Smrg 1135706f2543Smrg /* Pixmap Cache */ 1136706f2543Smrg 1137706f2543Smrg int PixmapCacheFlags; 1138706f2543Smrg Bool UsingPixmapCache; 1139706f2543Smrg Bool CanDoMono8x8; 1140706f2543Smrg Bool CanDoColor8x8; 1141706f2543Smrg 1142706f2543Smrg void (*InitPixmapCache)( 1143706f2543Smrg ScreenPtr pScreen, 1144706f2543Smrg RegionPtr areas, 1145706f2543Smrg pointer data 1146706f2543Smrg ); 1147706f2543Smrg void (*ClosePixmapCache)( 1148706f2543Smrg ScreenPtr pScreen 1149706f2543Smrg ); 1150706f2543Smrg 1151706f2543Smrg int (*StippledFillChooser)(GCPtr pGC); 1152706f2543Smrg int (*OpaqueStippledFillChooser)(GCPtr pGC); 1153706f2543Smrg int (*TiledFillChooser)(GCPtr pGC); 1154706f2543Smrg 1155706f2543Smrg int CachePixelGranularity; 1156706f2543Smrg int MaxCacheableTileWidth; 1157706f2543Smrg int MaxCacheableTileHeight; 1158706f2543Smrg int MaxCacheableStippleWidth; 1159706f2543Smrg int MaxCacheableStippleHeight; 1160706f2543Smrg 1161706f2543Smrg XAACacheInfoPtr (*CacheTile)( 1162706f2543Smrg ScrnInfoPtr Scrn, PixmapPtr pPix 1163706f2543Smrg ); 1164706f2543Smrg XAACacheInfoPtr (*CacheStipple)( 1165706f2543Smrg ScrnInfoPtr Scrn, PixmapPtr pPix, 1166706f2543Smrg int fg, int bg 1167706f2543Smrg ); 1168706f2543Smrg XAACacheInfoPtr (*CacheMonoStipple)( 1169706f2543Smrg ScrnInfoPtr Scrn, PixmapPtr pPix 1170706f2543Smrg ); 1171706f2543Smrg XAACacheInfoPtr (*CacheMono8x8Pattern)( 1172706f2543Smrg ScrnInfoPtr Scrn, int pat0, int pat1 1173706f2543Smrg ); 1174706f2543Smrg XAACacheInfoPtr (*CacheColor8x8Pattern)( 1175706f2543Smrg ScrnInfoPtr Scrn, PixmapPtr pPix, 1176706f2543Smrg int fg, int bg 1177706f2543Smrg ); 1178706f2543Smrg 1179706f2543Smrg 1180706f2543Smrg int MonoPatternPitch; 1181706f2543Smrg int CacheWidthMono8x8Pattern; 1182706f2543Smrg int CacheHeightMono8x8Pattern; 1183706f2543Smrg 1184706f2543Smrg int ColorPatternPitch; 1185706f2543Smrg int CacheWidthColor8x8Pattern; 1186706f2543Smrg int CacheHeightColor8x8Pattern; 1187706f2543Smrg 1188706f2543Smrg int CacheColorExpandDensity; 1189706f2543Smrg 1190706f2543Smrg void (*WriteBitmapToCache) ( 1191706f2543Smrg ScrnInfoPtr pScrn, 1192706f2543Smrg int x, int y, int w, int h, 1193706f2543Smrg unsigned char *src, 1194706f2543Smrg int srcwidth, 1195706f2543Smrg int fg, int bg 1196706f2543Smrg ); 1197706f2543Smrg void (*WritePixmapToCache) ( 1198706f2543Smrg ScrnInfoPtr pScrn, 1199706f2543Smrg int x, int y, int w, int h, 1200706f2543Smrg unsigned char *src, 1201706f2543Smrg int srcwidth, 1202706f2543Smrg int bpp, int depth 1203706f2543Smrg ); 1204706f2543Smrg void (*WriteMono8x8PatternToCache)( 1205706f2543Smrg ScrnInfoPtr pScrn, 1206706f2543Smrg XAACacheInfoPtr pCache 1207706f2543Smrg ); 1208706f2543Smrg void (*WriteColor8x8PatternToCache)( 1209706f2543Smrg ScrnInfoPtr pScrn, 1210706f2543Smrg PixmapPtr pPix, 1211706f2543Smrg XAACacheInfoPtr pCache 1212706f2543Smrg ); 1213706f2543Smrg 1214706f2543Smrg char* PixmapCachePrivate; 1215706f2543Smrg 1216706f2543Smrg /* Miscellaneous */ 1217706f2543Smrg 1218706f2543Smrg GC ScratchGC; 1219706f2543Smrg int PreAllocSize; 1220706f2543Smrg unsigned char *PreAllocMem; 1221706f2543Smrg 1222706f2543Smrg CharInfoPtr CharInfo[255]; 1223706f2543Smrg NonTEGlyphInfo GlyphInfo[255]; 1224706f2543Smrg 1225706f2543Smrg unsigned int FullPlanemask; /* deprecated */ 1226706f2543Smrg 1227706f2543Smrg PixmapLinkPtr OffscreenPixmaps; 1228706f2543Smrg int maxOffPixWidth; 1229706f2543Smrg int maxOffPixHeight; 1230706f2543Smrg 1231706f2543Smrg XAACacheInfoRec ScratchCacheInfoRec; 1232706f2543Smrg 1233706f2543Smrg BoxPtr ClipBox; 1234706f2543Smrg 1235706f2543Smrg Bool NeedToSync; 1236706f2543Smrg 1237706f2543Smrg char *dgaSaves; 1238706f2543Smrg 1239706f2543Smrg /* These can be supplied to override the defaults */ 1240706f2543Smrg 1241706f2543Smrg GetImageProcPtr GetImage; 1242706f2543Smrg GetSpansProcPtr GetSpans; 1243706f2543Smrg CopyWindowProcPtr CopyWindow; 1244706f2543Smrg 1245706f2543Smrg unsigned int offscreenDepths; 1246706f2543Smrg Bool offscreenDepthsInitialized; 1247706f2543Smrg 1248706f2543Smrg CARD32 FullPlanemasks[32]; 1249706f2543Smrg 1250706f2543Smrg Bool (*Composite) ( 1251706f2543Smrg CARD8 op, 1252706f2543Smrg PicturePtr pSrc, 1253706f2543Smrg PicturePtr pMask, 1254706f2543Smrg PicturePtr pDst, 1255706f2543Smrg INT16 xSrc, 1256706f2543Smrg INT16 ySrc, 1257706f2543Smrg INT16 xMask, 1258706f2543Smrg INT16 yMask, 1259706f2543Smrg INT16 xDst, 1260706f2543Smrg INT16 yDst, 1261706f2543Smrg CARD16 width, 1262706f2543Smrg CARD16 height 1263706f2543Smrg ); 1264706f2543Smrg 1265706f2543Smrg Bool (*Glyphs) ( 1266706f2543Smrg CARD8 op, 1267706f2543Smrg PicturePtr pSrc, 1268706f2543Smrg PicturePtr pDst, 1269706f2543Smrg PictFormatPtr maskFormat, 1270706f2543Smrg INT16 xSrc, 1271706f2543Smrg INT16 ySrc, 1272706f2543Smrg int nlist, 1273706f2543Smrg GlyphListPtr list, 1274706f2543Smrg GlyphPtr *glyphs 1275706f2543Smrg ); 1276706f2543Smrg 1277706f2543Smrg /* The old SetupForCPUToScreenAlphaTexture function is no longer used because 1278706f2543Smrg * it doesn't pass in enough information to write a conforming 1279706f2543Smrg * implementation. See SetupForCPUToScreenAlphaTexture2. 1280706f2543Smrg */ 1281706f2543Smrg Bool (*SetupForCPUToScreenAlphaTexture) ( 1282706f2543Smrg ScrnInfoPtr pScrn, 1283706f2543Smrg int op, 1284706f2543Smrg CARD16 red, 1285706f2543Smrg CARD16 green, 1286706f2543Smrg CARD16 blue, 1287706f2543Smrg CARD16 alpha, 1288706f2543Smrg int alphaType, 1289706f2543Smrg CARD8 *alphaPtr, 1290706f2543Smrg int alphaPitch, 1291706f2543Smrg int width, 1292706f2543Smrg int height, 1293706f2543Smrg int flags 1294706f2543Smrg ); 1295706f2543Smrg void (*SubsequentCPUToScreenAlphaTexture) ( 1296706f2543Smrg ScrnInfoPtr pScrn, 1297706f2543Smrg int dstx, 1298706f2543Smrg int dsty, 1299706f2543Smrg int srcx, 1300706f2543Smrg int srcy, 1301706f2543Smrg int width, 1302706f2543Smrg int height 1303706f2543Smrg ); 1304706f2543Smrg int CPUToScreenAlphaTextureFlags; 1305706f2543Smrg CARD32 * CPUToScreenAlphaTextureFormats; 1306706f2543Smrg 1307706f2543Smrg /* The old SetupForCPUToScreenTexture function is no longer used because 1308706f2543Smrg * it doesn't pass in enough information to write a conforming 1309706f2543Smrg * implementation. See SetupForCPUToScreenTexture2. 1310706f2543Smrg */ 1311706f2543Smrg Bool (*SetupForCPUToScreenTexture) ( 1312706f2543Smrg ScrnInfoPtr pScrn, 1313706f2543Smrg int op, 1314706f2543Smrg int texType, 1315706f2543Smrg CARD8 *texPtr, 1316706f2543Smrg int texPitch, 1317706f2543Smrg int width, 1318706f2543Smrg int height, 1319706f2543Smrg int flags 1320706f2543Smrg ); 1321706f2543Smrg void (*SubsequentCPUToScreenTexture) ( 1322706f2543Smrg ScrnInfoPtr pScrn, 1323706f2543Smrg int dstx, 1324706f2543Smrg int dsty, 1325706f2543Smrg int srcx, 1326706f2543Smrg int srcy, 1327706f2543Smrg int width, 1328706f2543Smrg int height 1329706f2543Smrg ); 1330706f2543Smrg int CPUToScreenTextureFlags; 1331706f2543Smrg CARD32 * CPUToScreenTextureFormats; 1332706f2543Smrg 1333706f2543Smrg 1334706f2543Smrg /* these were added for 4.3.0 */ 1335706f2543Smrg BoxRec SolidLineLimits; 1336706f2543Smrg BoxRec DashedLineLimits; 1337706f2543Smrg 1338706f2543Smrg /* These were added for X.Org 6.8.0 */ 1339706f2543Smrg Bool (*SetupForCPUToScreenAlphaTexture2) ( 1340706f2543Smrg ScrnInfoPtr pScrn, 1341706f2543Smrg int op, 1342706f2543Smrg CARD16 red, 1343706f2543Smrg CARD16 green, 1344706f2543Smrg CARD16 blue, 1345706f2543Smrg CARD16 alpha, 1346706f2543Smrg CARD32 maskFormat, 1347706f2543Smrg CARD32 dstFormat, 1348706f2543Smrg CARD8 *alphaPtr, 1349706f2543Smrg int alphaPitch, 1350706f2543Smrg int width, 1351706f2543Smrg int height, 1352706f2543Smrg int flags 1353706f2543Smrg ); 1354706f2543Smrg CARD32 *CPUToScreenAlphaTextureDstFormats; 1355706f2543Smrg 1356706f2543Smrg Bool (*SetupForCPUToScreenTexture2) ( 1357706f2543Smrg ScrnInfoPtr pScrn, 1358706f2543Smrg int op, 1359706f2543Smrg CARD32 srcFormat, 1360706f2543Smrg CARD32 dstFormat, 1361706f2543Smrg CARD8 *texPtr, 1362706f2543Smrg int texPitch, 1363706f2543Smrg int width, 1364706f2543Smrg int height, 1365706f2543Smrg int flags 1366706f2543Smrg ); 1367706f2543Smrg CARD32 *CPUToScreenTextureDstFormats; 1368706f2543Smrg} XAAInfoRec, *XAAInfoRecPtr; 1369706f2543Smrg 1370706f2543Smrg#define SET_SYNC_FLAG(infoRec) (infoRec)->NeedToSync = TRUE 1371706f2543Smrg 1372706f2543Smrg 1373706f2543Smrgextern _X_EXPORT Bool 1374706f2543SmrgXAAInit( 1375706f2543Smrg ScreenPtr pScreen, 1376706f2543Smrg XAAInfoRecPtr infoRec 1377706f2543Smrg); 1378706f2543Smrg 1379706f2543Smrgextern _X_EXPORT XAAInfoRecPtr XAACreateInfoRec(void); 1380706f2543Smrg 1381706f2543Smrgextern _X_EXPORT void 1382706f2543SmrgXAADestroyInfoRec( 1383706f2543Smrg XAAInfoRecPtr infoRec 1384706f2543Smrg); 1385706f2543Smrg 1386706f2543Smrgtypedef void (*DepthChangeFuncPtr) (ScrnInfoPtr pScrn, int depth); 1387706f2543Smrg 1388706f2543Smrgextern _X_EXPORT Bool 1389706f2543SmrgXAAInitDualFramebufferOverlay( 1390706f2543Smrg ScreenPtr pScreen, 1391706f2543Smrg DepthChangeFuncPtr callback 1392706f2543Smrg); 1393706f2543Smrg 1394706f2543Smrg#endif /* _XAA_H */ 1395