~ubuntu-branches/ubuntu/intrepid/xserver-xgl/intrepid

« back to all changes in this revision

Viewing changes to hw/xfree86/xaa/xaa.h

  • Committer: Bazaar Package Importer
  • Author(s): Matthew Garrett
  • Date: 2006-02-13 14:21:43 UTC
  • Revision ID: james.westby@ubuntu.com-20060213142143-mad6z9xzem7hzxz9
Tags: upstream-7.0.0
ImportĀ upstreamĀ versionĀ 7.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaa.h,v 1.38 2002/10/21 01:54:04 mvojkovi Exp $ */
 
2
 
 
3
#ifndef _XAA_H
 
4
#define _XAA_H
 
5
 
 
6
/*
 
7
 
 
8
   ******** OPERATION SPECIFIC FLAGS *********
 
9
 
 
10
   **** solid/dashed line flags ****
 
11
 
 
12
---------               --------
 
13
23           LINE_PATTERN_LSBFIRST_MSBJUSTIFIED
 
14
22           LINE_PATTERN_LSBFIRST_LSBJUSTIFIED
 
15
21           LINE_PATTERN_MSBFIRST_MSBJUSTIFIED
 
16
20           LINE_PATTERN_MSBFIRST_LSBJUSTIFIED
 
17
19           LINE_PATTERN_POWER_OF_2_ONLY
 
18
18           LINE_LIMIT_COORDS
 
19
17                         .
 
20
16                         .
 
21
---------               -------
 
22
 
 
23
   **** screen to screen copy flags ****
 
24
 
 
25
---------               --------
 
26
23           ONLY_LEFT_TO_RIGHT_BITBLT
 
27
22           ONLY_TWO_BITBLT_DIRECTIONS
 
28
21                         .
 
29
20                         .
 
30
19                         .
 
31
18                         .
 
32
17                         .
 
33
16                         .
 
34
---------               -------
 
35
 
 
36
   ****  clipping flags ****
 
37
 
 
38
---------               --------
 
39
23                         .
 
40
22           HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND
 
41
21           HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY
 
42
20           HARDWARE_CLIP_MONO_8x8_FILL
 
43
19           HARDWARE_CLIP_COLOR_8x8_FILL    
 
44
18           HARDWARE_CLIP_SOLID_FILL
 
45
17           HARDWARE_CLIP_DASHED_LINE
 
46
16           HARDWARE_CLIP_SOLID_LINE
 
47
---------               -------
 
48
 
 
49
 
 
50
   ****  hardware pattern flags ****
 
51
 
 
52
---------               --------
 
53
23                         .
 
54
22                         .
 
55
21           HARDWARE_PATTERN_SCREEN_ORIGIN
 
56
20                         .
 
57
19                         .
 
58
18                         .
 
59
17           HARDWARE_PATTERN_PROGRAMMED_ORIGIN
 
60
16           HARDWARE_PATTERN_PROGRAMMED_BITS
 
61
---------               -------
 
62
 
 
63
   ****  write pixmap flags ****
 
64
 
 
65
---------               --------
 
66
23                         .
 
67
22                         .
 
68
21                         .
 
69
20                         .
 
70
19                         .
 
71
18                         .
 
72
17                         .
 
73
16           CONVERT_32BPP_TO_24BPP
 
74
---------               -------
 
75
 
 
76
 
 
77
   ******** GENERIC FLAGS *********
 
78
 
 
79
---------               -------
 
80
15           SYNC_AFTER_COLOR_EXPAND
 
81
14           CPU_TRANSFER_PAD_QWORD
 
82
13                         .
 
83
12           LEFT_EDGE_CLIPPING_NEGATIVE_X
 
84
11           LEFT_EDGE_CLIPPING
 
85
10           CPU_TRANSFER_BASE_FIXED
 
86
 9           BIT_ORDER_IN_BYTE_MSBFIRST           
 
87
 8           TRANSPARENCY_GXCOPY_ONLY
 
88
---------               -------
 
89
 7           NO_TRANSPARENCY
 
90
 6           TRANSPARENCY_ONLY
 
91
 5           ROP_NEEDS_SOURCE
 
92
 4           TRIPLE_BITS_24BPP
 
93
 3           RGB_EQUAL
 
94
 2           NO_PLANEMASK
 
95
 1           NO_GXCOPY
 
96
 0           GXCOPY_ONLY
 
97
---------               -------
 
98
 
 
99
 
 
100
*/
 
101
 
 
102
#include "gcstruct.h"
 
103
#include "pixmapstr.h"
 
104
#include "xf86str.h"
 
105
#include "regionstr.h"
 
106
#include "xf86fbman.h"
 
107
 
 
108
#ifdef RENDER
 
109
#include "picturestr.h"
 
110
#endif
 
111
 
 
112
/* Flags */
 
113
#define PIXMAP_CACHE                    0x00000001
 
114
#define MICROSOFT_ZERO_LINE_BIAS        0x00000002
 
115
#define OFFSCREEN_PIXMAPS               0x00000004
 
116
#define LINEAR_FRAMEBUFFER              0x00000008
 
117
 
 
118
 
 
119
/* GC fg, bg, and planemask restrictions */
 
120
#define GXCOPY_ONLY                     0x00000001
 
121
#define NO_GXCOPY                       0x00000002
 
122
#define NO_PLANEMASK                    0x00000004
 
123
#define RGB_EQUAL                       0x00000008
 
124
#define TRIPLE_BITS_24BPP               0x00000010
 
125
#define ROP_NEEDS_SOURCE                0x00000020
 
126
 
 
127
/* transparency restrictions */
 
128
#define TRANSPARENCY_ONLY               0x00000040
 
129
#define NO_TRANSPARENCY                 0x00000080
 
130
#define TRANSPARENCY_GXCOPY_ONLY        0x00000100
 
131
 
 
132
/* bit order restrictions */
 
133
#define BIT_ORDER_IN_BYTE_MSBFIRST      0x00000200
 
134
#define BIT_ORDER_IN_BYTE_LSBFIRST      0x00000000
 
135
 
 
136
/* transfer base restriction */
 
137
#define CPU_TRANSFER_BASE_FIXED         0x00000400
 
138
 
 
139
/* skipleft restrictions */
 
140
#define LEFT_EDGE_CLIPPING              0x00000800
 
141
#define LEFT_EDGE_CLIPPING_NEGATIVE_X   0x00001000
 
142
 
 
143
/* data padding */
 
144
#define CPU_TRANSFER_PAD_DWORD          0x00000000
 
145
#define CPU_TRANSFER_PAD_QWORD          0x00004000
 
146
#define SCANLINE_PAD_DWORD              0x00000000
 
147
 
 
148
#define SYNC_AFTER_COLOR_EXPAND         0x00008000
 
149
#define SYNC_AFTER_IMAGE_WRITE          SYNC_AFTER_COLOR_EXPAND
 
150
 
 
151
/* hardware pattern */
 
152
#define HARDWARE_PATTERN_PROGRAMMED_BITS        0x00010000
 
153
#define HARDWARE_PATTERN_PROGRAMMED_ORIGIN      0x00020000
 
154
#define HARDWARE_PATTERN_SCREEN_ORIGIN          0x00200000
 
155
 
 
156
/* copyarea flags */
 
157
#define ONLY_TWO_BITBLT_DIRECTIONS      0x00400000
 
158
#define ONLY_LEFT_TO_RIGHT_BITBLT       0x00800000
 
159
 
 
160
/* line flags */
 
161
#define LINE_PATTERN_LSBFIRST_MSBJUSTIFIED      0x00800000
 
162
#define LINE_PATTERN_LSBFIRST_LSBJUSTIFIED      0x00400000
 
163
#define LINE_PATTERN_MSBFIRST_MSBJUSTIFIED      0x00200000
 
164
#define LINE_PATTERN_MSBFIRST_LSBJUSTIFIED      0x00100000
 
165
#define LINE_PATTERN_POWER_OF_2_ONLY            0x00080000
 
166
#define LINE_LIMIT_COORDS                       0x00040000
 
167
 
 
168
/* clipping flags */
 
169
#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND     0x00400000
 
170
#define HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY             0x00200000
 
171
#define HARDWARE_CLIP_MONO_8x8_FILL                     0x00100000
 
172
#define HARDWARE_CLIP_COLOR_8x8_FILL                    0x00080000
 
173
#define HARDWARE_CLIP_SOLID_FILL                        0x00040000
 
174
#define HARDWARE_CLIP_DASHED_LINE                       0x00020000
 
175
#define HARDWARE_CLIP_SOLID_LINE                        0x00010000
 
176
 
 
177
#define HARDWARE_CLIP_LINE                              0x00000000
 
178
 
 
179
 
 
180
/* image write flags */
 
181
#define CONVERT_32BPP_TO_24BPP                  0x00010000
 
182
 
 
183
/* pixmap cache flags */
 
184
#define CACHE_MONO_8x8                  0x00000001
 
185
#define CACHE_COLOR_8x8                 0x00000002
 
186
#define DO_NOT_BLIT_STIPPLES            0x00000004
 
187
#define DO_NOT_TILE_MONO_DATA           0x00000008      
 
188
#define DO_NOT_TILE_COLOR_DATA          0x00000010
 
189
 
 
190
 
 
191
#define DEGREES_0       0
 
192
#define DEGREES_90      1
 
193
#define DEGREES_180     2
 
194
#define DEGREES_270     3
 
195
 
 
196
#define OMIT_LAST       1
 
197
 
 
198
/* render flags */
 
199
 
 
200
#define XAA_RENDER_POWER_OF_2_TILE_ONLY 0x00000008
 
201
#define XAA_RENDER_NO_SRC_ALPHA         0x00000004
 
202
#define XAA_RENDER_IMPRECISE_ONLY       0x00000002      
 
203
#define XAA_RENDER_NO_TILE              0x00000001              
 
204
 
 
205
#define XAA_RENDER_REPEAT               0x00000001
 
206
 
 
207
typedef void (* ValidateGCProcPtr)(
 
208
   GCPtr         pGC,
 
209
   unsigned long changes,
 
210
   DrawablePtr   pDraw
 
211
);
 
212
 
 
213
typedef struct {
 
214
    unsigned char *bits;
 
215
    int width;
 
216
    int height;
 
217
    int yoff;
 
218
    int srcwidth;
 
219
    int start;
 
220
    int end;
 
221
} NonTEGlyphInfo, *NonTEGlyphPtr;
 
222
 
 
223
 
 
224
typedef struct {
 
225
   int x;
 
226
   int y;
 
227
   int w;
 
228
   int h;
 
229
   int orig_w;
 
230
   int orig_h;
 
231
   unsigned long serialNumber;
 
232
   int pat0;
 
233
   int pat1;
 
234
   int fg;
 
235
   int bg;
 
236
   int trans_color;
 
237
   DDXPointPtr offsets;
 
238
   DevUnion devPrivate;
 
239
} XAACacheInfoRec, *XAACacheInfoPtr;
 
240
 
 
241
 
 
242
typedef struct _PixmapLink {
 
243
  PixmapPtr pPix;
 
244
  struct _PixmapLink *next;
 
245
  FBAreaPtr area;
 
246
} PixmapLink, *PixmapLinkPtr;
 
247
 
 
248
typedef struct _XAAInfoRec {
 
249
   ScrnInfoPtr pScrn;
 
250
   int Flags;
 
251
 
 
252
   void (*Sync)(
 
253
        ScrnInfoPtr pScrn
 
254
   );
 
255
   
 
256
   /* Restore Accel State is a driver callback that is used
 
257
    * when another screen on the same device has been active.
 
258
    * This allows multihead on a single device to work.
 
259
    * If The entityProp has IS_SHARED_ACCEL defined then this
 
260
    * function is required.
 
261
    */
 
262
   
 
263
   void (*RestoreAccelState)(
 
264
        ScrnInfoPtr pScrn
 
265
   );
 
266
 
 
267
   /***************** Low Level *****************/
 
268
 
 
269
/* Blits */
 
270
   void (*SetupForScreenToScreenCopy)(
 
271
        ScrnInfoPtr pScrn,
 
272
        int xdir, int ydir,
 
273
        int rop,
 
274
        unsigned int planemask,
 
275
        int trans_color
 
276
   );
 
277
   int ScreenToScreenCopyFlags;
 
278
 
 
279
   void (*SubsequentScreenToScreenCopy)(
 
280
        ScrnInfoPtr pScrn,
 
281
        int xsrc, int ysrc,
 
282
        int xdst, int ydst,
 
283
        int w, int h
 
284
   );
 
285
 
 
286
   
 
287
/* Solid fills */
 
288
   void (*SetupForSolidFill)(
 
289
        ScrnInfoPtr pScrn,
 
290
        int color,
 
291
        int rop,
 
292
        unsigned int planemask
 
293
   );    
 
294
   int SolidFillFlags;  
 
295
 
 
296
   void (*SubsequentSolidFillRect)(
 
297
        ScrnInfoPtr pScrn,
 
298
        int x, int y, int w, int h
 
299
   );    
 
300
 
 
301
   void (*SubsequentSolidFillTrap)(
 
302
        ScrnInfoPtr pScrn,
 
303
        int y, int h, 
 
304
        int left, int dxL, int dyL, int eL,
 
305
        int right, int dxR, int dyR, int eR
 
306
   );
 
307
 
 
308
 
 
309
/* Solid lines */
 
310
 
 
311
   void (*SetupForSolidLine)(
 
312
        ScrnInfoPtr pScrn,
 
313
        int color,
 
314
        int rop,
 
315
        unsigned int planemask
 
316
   );    
 
317
   int SolidLineFlags;  
 
318
 
 
319
   void (*SubsequentSolidTwoPointLine)(
 
320
        ScrnInfoPtr pScrn,
 
321
        int xa, int ya, int xb, int yb, int flags
 
322
   );   
 
323
 
 
324
   void (*SubsequentSolidBresenhamLine)(
 
325
        ScrnInfoPtr pScrn,
 
326
        int x, int y, int absmaj, int absmin, int err, int len, int octant
 
327
   );   
 
328
   int SolidBresenhamLineErrorTermBits;
 
329
 
 
330
   void (*SubsequentSolidHorVertLine)(
 
331
        ScrnInfoPtr pScrn,
 
332
        int x, int y, int len, int dir
 
333
   );   
 
334
 
 
335
/* Dashed lines */
 
336
 
 
337
   void (*SetupForDashedLine)(
 
338
        ScrnInfoPtr pScrn,
 
339
        int fg, int bg,
 
340
        int rop,
 
341
        unsigned int planemask,
 
342
        int length,
 
343
        unsigned char *pattern
 
344
   );    
 
345
   int DashedLineFlags; 
 
346
   int DashPatternMaxLength; 
 
347
 
 
348
   void (*SubsequentDashedTwoPointLine)(
 
349
        ScrnInfoPtr pScrn,
 
350
        int xa, int ya, int xb, int yb, int flags, int phase
 
351
   );   
 
352
 
 
353
   void (*SubsequentDashedBresenhamLine)(
 
354
        ScrnInfoPtr pScrn,
 
355
        int x, int y, int absmaj, int absmin, int err, int len, int flags,
 
356
        int phase
 
357
   );   
 
358
   int DashedBresenhamLineErrorTermBits;
 
359
 
 
360
/* Clipper */
 
361
 
 
362
   void (*SetClippingRectangle) (
 
363
        ScrnInfoPtr pScrn,
 
364
        int left, int top, int right, int bottom
 
365
   );
 
366
   int ClippingFlags;
 
367
 
 
368
   void (*DisableClipping)(ScrnInfoPtr pScrn);
 
369
 
 
370
/* 8x8 mono pattern fills */
 
371
   void (*SetupForMono8x8PatternFill)(
 
372
        ScrnInfoPtr pScrn,
 
373
        int patx, int paty,
 
374
        int fg, int bg,
 
375
        int rop,
 
376
        unsigned int planemask
 
377
   );
 
378
   int Mono8x8PatternFillFlags; 
 
379
 
 
380
   void (*SubsequentMono8x8PatternFillRect)(
 
381
        ScrnInfoPtr pScrn,
 
382
        int patx, int paty,
 
383
        int x, int y, int w, int h
 
384
   );
 
385
 
 
386
   void (*SubsequentMono8x8PatternFillTrap)(
 
387
        ScrnInfoPtr pScrn,
 
388
        int patx, int paty,
 
389
        int y, int h, 
 
390
        int left, int dxL, int dyL, int eL,
 
391
        int right, int dxR, int dyR, int eR
 
392
   );
 
393
 
 
394
/* 8x8 color pattern fills */
 
395
 
 
396
   void (*SetupForColor8x8PatternFill)(
 
397
        ScrnInfoPtr pScrn,
 
398
        int patx, int paty,
 
399
        int rop,
 
400
        unsigned int planemask,
 
401
        int transparency_color
 
402
   );
 
403
   int Color8x8PatternFillFlags; 
 
404
 
 
405
   void (*SubsequentColor8x8PatternFillRect)(
 
406
        ScrnInfoPtr pScrn,
 
407
        int patx, int paty,
 
408
        int x, int y, int w, int h
 
409
   );
 
410
 
 
411
   void (*SubsequentColor8x8PatternFillTrap)(
 
412
        ScrnInfoPtr pScrn,
 
413
        int patx, int paty,
 
414
        int y, int h, 
 
415
        int left, int dxL, int dyL, int eL,
 
416
        int right, int dxR, int dyR, int eR
 
417
   );
 
418
 
 
419
 
 
420
/* Color expansion */
 
421
 
 
422
   void (*SetupForCPUToScreenColorExpandFill)(
 
423
        ScrnInfoPtr pScrn,
 
424
        int fg, int bg,
 
425
        int rop,
 
426
        unsigned int planemask
 
427
   );     
 
428
   int CPUToScreenColorExpandFillFlags;  
 
429
 
 
430
   void (*SubsequentCPUToScreenColorExpandFill)(
 
431
        ScrnInfoPtr pScrn,
 
432
        int x, int y, int w, int h,
 
433
        int skipleft
 
434
   );
 
435
 
 
436
   unsigned char *ColorExpandBase;
 
437
   int ColorExpandRange;
 
438
 
 
439
 
 
440
/* Scanline color expansion  */
 
441
 
 
442
   void (*SetupForScanlineCPUToScreenColorExpandFill)(
 
443
        ScrnInfoPtr pScrn,
 
444
        int fg, int bg,
 
445
        int rop,
 
446
        unsigned int planemask
 
447
   );  
 
448
   int ScanlineCPUToScreenColorExpandFillFlags;
 
449
 
 
450
   void (*SubsequentScanlineCPUToScreenColorExpandFill)(
 
451
        ScrnInfoPtr pScrn,
 
452
        int x, int y, int w, int h,
 
453
        int skipleft
 
454
   );
 
455
 
 
456
   void (*SubsequentColorExpandScanline)(
 
457
        ScrnInfoPtr pScrn,
 
458
        int bufno
 
459
   );
 
460
 
 
461
   int NumScanlineColorExpandBuffers;
 
462
   unsigned char **ScanlineColorExpandBuffers;
 
463
 
 
464
/* Screen to screen color expansion */
 
465
 
 
466
   void (*SetupForScreenToScreenColorExpandFill) (
 
467
        ScrnInfoPtr pScrn,
 
468
        int fg, int bg,
 
469
        int rop,
 
470
        unsigned int planemask
 
471
   );
 
472
   int ScreenToScreenColorExpandFillFlags;
 
473
 
 
474
   void (*SubsequentScreenToScreenColorExpandFill)(
 
475
        ScrnInfoPtr pScrn,
 
476
        int x, int y, int w, int h,
 
477
        int srcx, int srcy, int skipleft
 
478
   );
 
479
   
 
480
 
 
481
/*  Image transfers */
 
482
 
 
483
   void (*SetupForImageWrite)(
 
484
        ScrnInfoPtr pScrn,
 
485
        int rop,
 
486
        unsigned int planemask,
 
487
        int transparency_color,
 
488
        int bpp, int depth
 
489
   );
 
490
   int ImageWriteFlags;
 
491
 
 
492
   void (*SubsequentImageWriteRect)(
 
493
        ScrnInfoPtr pScrn,
 
494
        int x, int y, int w, int h,
 
495
        int skipleft
 
496
   );
 
497
   unsigned char *ImageWriteBase;
 
498
   int ImageWriteRange;
 
499
        
 
500
/*  Scanline Image transfers */
 
501
 
 
502
   void (*SetupForScanlineImageWrite)(
 
503
        ScrnInfoPtr pScrn,
 
504
        int rop,
 
505
        unsigned int planemask,
 
506
        int transparency_color,
 
507
        int bpp, int depth
 
508
   );
 
509
   int ScanlineImageWriteFlags;
 
510
 
 
511
   void (*SubsequentScanlineImageWriteRect)(
 
512
        ScrnInfoPtr pScrn,
 
513
        int x, int y, int w, int h,
 
514
        int skipleft
 
515
   );
 
516
 
 
517
   void (*SubsequentImageWriteScanline) (
 
518
        ScrnInfoPtr pScrn,
 
519
        int bufno
 
520
   );
 
521
   
 
522
   int NumScanlineImageWriteBuffers;
 
523
   unsigned char **ScanlineImageWriteBuffers;
 
524
 
 
525
  /* Image Reads - OBSOLETE AND NOT USED */
 
526
 
 
527
   void (*SetupForImageRead) (
 
528
        ScrnInfoPtr pScrn,
 
529
        int bpp, int depth
 
530
   );
 
531
   int ImageReadFlags;
 
532
 
 
533
   unsigned char *ImageReadBase;
 
534
   int ImageReadRange;
 
535
 
 
536
   void (*SubsequentImageReadRect)(
 
537
        ScrnInfoPtr pScrn,
 
538
        int x, int y, int w, int h
 
539
   );  
 
540
 
 
541
 
 
542
   /***************** Mid Level *****************/
 
543
   void (*ScreenToScreenBitBlt)(
 
544
        ScrnInfoPtr pScrn,
 
545
        int nbox,
 
546
        DDXPointPtr pptSrc,
 
547
        BoxPtr pbox,
 
548
        int xdir, int ydir,
 
549
        int alu,
 
550
        unsigned int planmask
 
551
   );
 
552
   int ScreenToScreenBitBltFlags;
 
553
 
 
554
   void (*WriteBitmap) (
 
555
        ScrnInfoPtr pScrn,
 
556
        int x, int y, int w, int h,
 
557
        unsigned char *src,
 
558
        int srcwidth,
 
559
        int skipleft,
 
560
        int fg, int bg,
 
561
        int rop,
 
562
        unsigned int planemask
 
563
   );
 
564
   int WriteBitmapFlags;
 
565
 
 
566
   void (*FillSolidRects)(
 
567
        ScrnInfoPtr pScrn,
 
568
        int fg, int rop,
 
569
        unsigned int planemask,
 
570
        int nBox,
 
571
        BoxPtr pBox 
 
572
   );
 
573
   int FillSolidRectsFlags;
 
574
 
 
575
   void (*FillMono8x8PatternRects)(
 
576
        ScrnInfoPtr pScrn,
 
577
        int fg, int bg, int rop,
 
578
        unsigned int planemask,
 
579
        int nBox,
 
580
        BoxPtr pBox, 
 
581
        int pat0, int pat1,
 
582
        int xorg, int yorg
 
583
   );
 
584
   int FillMono8x8PatternRectsFlags;
 
585
 
 
586
   void (*FillColor8x8PatternRects)(
 
587
        ScrnInfoPtr pScrn,
 
588
        int rop,
 
589
        unsigned int planemask,
 
590
        int nBox,
 
591
        BoxPtr pBox,
 
592
        int xorg, int yorg,
 
593
        XAACacheInfoPtr pCache
 
594
   );
 
595
   int FillColor8x8PatternRectsFlags;
 
596
 
 
597
   void (*FillCacheBltRects)(
 
598
        ScrnInfoPtr pScrn,
 
599
        int rop,
 
600
        unsigned int planemask,
 
601
        int nBox,
 
602
        BoxPtr pBox,
 
603
        int xorg, int yorg,
 
604
        XAACacheInfoPtr pCache
 
605
   );
 
606
   int FillCacheBltRectsFlags;
 
607
 
 
608
   void (*FillColorExpandRects)(
 
609
        ScrnInfoPtr pScrn,
 
610
        int fg, int bg, int rop,
 
611
        unsigned int planemask,
 
612
        int nBox,
 
613
        BoxPtr pBox,
 
614
        int xorg, int yorg,
 
615
        PixmapPtr pPix
 
616
   );
 
617
   int FillColorExpandRectsFlags;
 
618
 
 
619
   void (*FillCacheExpandRects)(
 
620
        ScrnInfoPtr pScrn,
 
621
        int fg, int bg, int rop,
 
622
        unsigned int planemask,
 
623
        int nBox,
 
624
        BoxPtr pBox,
 
625
        int xorg, int yorg,
 
626
        PixmapPtr pPix
 
627
   );
 
628
   int FillCacheExpandRectsFlags;
 
629
 
 
630
   void (*FillImageWriteRects)(
 
631
        ScrnInfoPtr pScrn,
 
632
        int rop,
 
633
        unsigned int planemask,
 
634
        int nBox,
 
635
        BoxPtr pBox,
 
636
        int xorg, int yorg,
 
637
        PixmapPtr pPix
 
638
   );
 
639
   int FillImageWriteRectsFlags;
 
640
   
 
641
 
 
642
   void (*FillSolidSpans)(
 
643
        ScrnInfoPtr pScrn,
 
644
        int fg, int rop,
 
645
        unsigned int planemask,
 
646
        int n,
 
647
        DDXPointPtr points,
 
648
        int *widths,
 
649
        int fSorted 
 
650
   );
 
651
   int FillSolidSpansFlags;
 
652
 
 
653
   void (*FillMono8x8PatternSpans)(
 
654
        ScrnInfoPtr pScrn,
 
655
        int fg, int bg, int rop,
 
656
        unsigned int planemask,
 
657
        int n,
 
658
        DDXPointPtr points,
 
659
        int *widths,
 
660
        int fSorted, 
 
661
        int pat0, int pat1,
 
662
        int xorg, int yorg
 
663
   );
 
664
   int FillMono8x8PatternSpansFlags;
 
665
 
 
666
   void (*FillColor8x8PatternSpans)(
 
667
        ScrnInfoPtr pScrn,
 
668
        int rop,
 
669
        unsigned int planemask,
 
670
        int n,
 
671
        DDXPointPtr points,
 
672
        int *widths,
 
673
        int fSorted,
 
674
        XAACacheInfoPtr pCache,
 
675
        int xorg, int yorg
 
676
   );
 
677
   int FillColor8x8PatternSpansFlags;
 
678
 
 
679
   void (*FillCacheBltSpans)(
 
680
        ScrnInfoPtr pScrn,
 
681
        int rop,
 
682
        unsigned int planemask,
 
683
        int n,
 
684
        DDXPointPtr points,
 
685
        int *widths,
 
686
        int fSorted,
 
687
        XAACacheInfoPtr pCache,
 
688
        int xorg, int yorg
 
689
   );
 
690
   int FillCacheBltSpansFlags;
 
691
 
 
692
   void (*FillColorExpandSpans)(
 
693
        ScrnInfoPtr pScrn,
 
694
        int fg, int bg, int rop,
 
695
        unsigned int planemask,
 
696
        int n,
 
697
        DDXPointPtr points,
 
698
        int *widths,
 
699
        int fSorted,
 
700
        int xorg, int yorg,
 
701
        PixmapPtr pPix
 
702
   );
 
703
   int FillColorExpandSpansFlags;
 
704
 
 
705
   void (*FillCacheExpandSpans)(
 
706
        ScrnInfoPtr pScrn,
 
707
        int fg, int bg, int rop,
 
708
        unsigned int planemask,
 
709
        int n,
 
710
        DDXPointPtr ppt,
 
711
        int *pwidth,
 
712
        int fSorted,
 
713
        int xorg, int yorg,
 
714
        PixmapPtr pPix
 
715
   );
 
716
   int FillCacheExpandSpansFlags;
 
717
 
 
718
   void (*TEGlyphRenderer)(
 
719
        ScrnInfoPtr pScrn,
 
720
        int x, int y, int w, int h, int skipleft, int startline, 
 
721
        unsigned int **glyphs, int glyphWidth,
 
722
        int fg, int bg, int rop, unsigned planemask
 
723
   );
 
724
   int TEGlyphRendererFlags;
 
725
 
 
726
   void (*NonTEGlyphRenderer)(
 
727
        ScrnInfoPtr pScrn,
 
728
        int x, int y, int n,
 
729
        NonTEGlyphPtr glyphs,
 
730
        BoxPtr pbox,
 
731
        int fg, int rop,
 
732
        unsigned int planemask
 
733
   );
 
734
   int NonTEGlyphRendererFlags;
 
735
 
 
736
   void (*WritePixmap) (
 
737
        ScrnInfoPtr pScrn,
 
738
        int x, int y, int w, int h,
 
739
        unsigned char *src,
 
740
        int srcwidth,
 
741
        int rop,
 
742
        unsigned int planemask,
 
743
        int transparency_color,
 
744
        int bpp, int depth
 
745
   );
 
746
   int WritePixmapFlags;
 
747
 
 
748
   void (*ReadPixmap) (
 
749
        ScrnInfoPtr pScrn,
 
750
        int x, int y, int w, int h,
 
751
        unsigned char *dst,     
 
752
        int dstwidth,
 
753
        int bpp, int depth
 
754
   );
 
755
   int ReadPixmapFlags;
 
756
 
 
757
   /***************** GC Level *****************/
 
758
   RegionPtr (*CopyArea)(
 
759
        DrawablePtr pSrcDrawable,
 
760
        DrawablePtr pDstDrawable,
 
761
        GC *pGC,
 
762
        int srcx, int srcy,
 
763
        int width, int height,
 
764
        int dstx, int dsty
 
765
   );
 
766
   int CopyAreaFlags;
 
767
 
 
768
   RegionPtr (*CopyPlane)(
 
769
        DrawablePtr pSrc,
 
770
        DrawablePtr pDst,
 
771
        GCPtr pGC,
 
772
        int srcx, int srcy,
 
773
        int width, int height,
 
774
        int dstx, int dsty,
 
775
        unsigned long bitPlane
 
776
   );
 
777
   int CopyPlaneFlags;
 
778
 
 
779
   void (*PushPixelsSolid) (
 
780
        GCPtr   pGC,
 
781
        PixmapPtr pBitMap,
 
782
        DrawablePtr pDrawable,
 
783
        int dx, int dy, 
 
784
        int xOrg, int yOrg
 
785
   );
 
786
   int PushPixelsFlags; 
 
787
 
 
788
   /** PolyFillRect **/
 
789
 
 
790
   void (*PolyFillRectSolid)(
 
791
        DrawablePtr pDraw,
 
792
        GCPtr pGC,
 
793
        int nrectFill,  
 
794
        xRectangle *prectInit
 
795
   );  
 
796
   int PolyFillRectSolidFlags;
 
797
 
 
798
   void (*PolyFillRectStippled)(
 
799
        DrawablePtr pDraw,
 
800
        GCPtr pGC,
 
801
        int nrectFill,  
 
802
        xRectangle *prectInit
 
803
   );  
 
804
   int PolyFillRectStippledFlags;
 
805
 
 
806
   void (*PolyFillRectOpaqueStippled)(
 
807
        DrawablePtr pDraw,
 
808
        GCPtr pGC,
 
809
        int nrectFill,  
 
810
        xRectangle *prectInit
 
811
   );  
 
812
   int PolyFillRectOpaqueStippledFlags;
 
813
 
 
814
   void (*PolyFillRectTiled)(
 
815
        DrawablePtr pDraw,
 
816
        GCPtr pGC,
 
817
        int nrectFill,  
 
818
        xRectangle *prectInit
 
819
   );  
 
820
   int PolyFillRectTiledFlags;
 
821
 
 
822
   /** FillSpans **/   
 
823
 
 
824
   void (*FillSpansSolid)(
 
825
        DrawablePtr     pDraw,
 
826
        GCPtr           pGC,
 
827
        int             nInit,
 
828
        DDXPointPtr     ppt,
 
829
        int             *pwidth,
 
830
        int             fSorted 
 
831
   );
 
832
   int FillSpansSolidFlags;
 
833
 
 
834
   void (*FillSpansStippled)(
 
835
        DrawablePtr     pDraw,
 
836
        GCPtr           pGC,
 
837
        int             nInit,
 
838
        DDXPointPtr     ppt,
 
839
        int             *pwidth,
 
840
        int             fSorted 
 
841
   );
 
842
   int FillSpansStippledFlags;
 
843
 
 
844
   void (*FillSpansOpaqueStippled)(
 
845
        DrawablePtr     pDraw,
 
846
        GCPtr           pGC,
 
847
        int             nInit,
 
848
        DDXPointPtr     ppt,
 
849
        int             *pwidth,
 
850
        int             fSorted 
 
851
   );
 
852
   int FillSpansOpaqueStippledFlags;
 
853
 
 
854
   void (*FillSpansTiled)(
 
855
        DrawablePtr     pDraw,
 
856
        GCPtr           pGC,
 
857
        int             nInit,
 
858
        DDXPointPtr     ppt,
 
859
        int             *pwidth,
 
860
        int             fSorted 
 
861
   );
 
862
   int FillSpansTiledFlags;
 
863
 
 
864
   int (*PolyText8TE) (
 
865
        DrawablePtr pDraw,
 
866
        GCPtr pGC,
 
867
        int x, int y,
 
868
        int count,
 
869
        char *chars
 
870
   );
 
871
   int PolyText8TEFlags;
 
872
 
 
873
   int (*PolyText16TE) (
 
874
        DrawablePtr pDraw,
 
875
        GCPtr pGC,
 
876
        int x, int y,
 
877
        int count,
 
878
        unsigned short *chars
 
879
   );
 
880
   int PolyText16TEFlags;
 
881
 
 
882
   void (*ImageText8TE) (
 
883
        DrawablePtr pDraw,
 
884
        GCPtr pGC,
 
885
        int x, int y,
 
886
        int count,
 
887
        char *chars
 
888
   );
 
889
   int ImageText8TEFlags;
 
890
 
 
891
   void (*ImageText16TE) (
 
892
        DrawablePtr pDraw,
 
893
        GCPtr pGC,
 
894
        int x, int y,
 
895
        int count,
 
896
        unsigned short *chars
 
897
   );
 
898
   int ImageText16TEFlags;
 
899
 
 
900
   void (*ImageGlyphBltTE) (
 
901
        DrawablePtr pDrawable,
 
902
        GCPtr pGC,
 
903
        int xInit, int yInit,
 
904
        unsigned int nglyph,
 
905
        CharInfoPtr *ppci,
 
906
        pointer pglyphBase 
 
907
   );
 
908
   int ImageGlyphBltTEFlags;
 
909
 
 
910
   void (*PolyGlyphBltTE) (
 
911
        DrawablePtr pDrawable,
 
912
        GCPtr pGC,
 
913
        int xInit, int yInit,
 
914
        unsigned int nglyph,
 
915
        CharInfoPtr *ppci,
 
916
        pointer pglyphBase 
 
917
   );
 
918
   int PolyGlyphBltTEFlags;
 
919
 
 
920
   int (*PolyText8NonTE) (
 
921
        DrawablePtr pDraw,
 
922
        GCPtr pGC,
 
923
        int x, int y,
 
924
        int count,
 
925
        char *chars
 
926
   );
 
927
   int PolyText8NonTEFlags;
 
928
 
 
929
   int (*PolyText16NonTE) (
 
930
        DrawablePtr pDraw,
 
931
        GCPtr pGC,
 
932
        int x, int y,
 
933
        int count,
 
934
        unsigned short *chars
 
935
   );
 
936
   int PolyText16NonTEFlags;
 
937
 
 
938
   void (*ImageText8NonTE) (
 
939
        DrawablePtr pDraw,
 
940
        GCPtr pGC,
 
941
        int x, int y,
 
942
        int count,
 
943
        char *chars
 
944
   );
 
945
   int ImageText8NonTEFlags;
 
946
 
 
947
   void (*ImageText16NonTE) (
 
948
        DrawablePtr pDraw,
 
949
        GCPtr pGC,
 
950
        int x, int y,
 
951
        int count,
 
952
        unsigned short *chars
 
953
   );
 
954
   int ImageText16NonTEFlags;
 
955
 
 
956
   void (*ImageGlyphBltNonTE) (
 
957
        DrawablePtr pDrawable,
 
958
        GCPtr pGC,
 
959
        int xInit, int yInit,
 
960
        unsigned int nglyph,
 
961
        CharInfoPtr *ppci,
 
962
        pointer pglyphBase 
 
963
   );
 
964
   int ImageGlyphBltNonTEFlags;
 
965
 
 
966
   void (*PolyGlyphBltNonTE) (
 
967
        DrawablePtr pDrawable,
 
968
        GCPtr pGC,
 
969
        int xInit, int yInit,
 
970
        unsigned int nglyph,
 
971
        CharInfoPtr *ppci,
 
972
        pointer pglyphBase 
 
973
   );
 
974
   int PolyGlyphBltNonTEFlags;
 
975
 
 
976
   void (*PolyRectangleThinSolid)(
 
977
        DrawablePtr  pDrawable,
 
978
        GCPtr        pGC,    
 
979
        int          nRectsInit,
 
980
        xRectangle  *pRectsInit 
 
981
   );
 
982
   int PolyRectangleThinSolidFlags;
 
983
 
 
984
   void (*PolylinesWideSolid)(
 
985
        DrawablePtr     pDrawable,
 
986
        GCPtr           pGC,
 
987
        int             mode,
 
988
        int             npt,
 
989
        DDXPointPtr pPts
 
990
   );
 
991
   int PolylinesWideSolidFlags;
 
992
 
 
993
   void (*PolylinesThinSolid)(
 
994
        DrawablePtr     pDrawable,
 
995
        GCPtr           pGC,
 
996
        int             mode,
 
997
        int             npt,
 
998
        DDXPointPtr pPts
 
999
   );
 
1000
   int PolylinesThinSolidFlags;
 
1001
 
 
1002
   void (*PolySegmentThinSolid)(
 
1003
        DrawablePtr     pDrawable,
 
1004
        GCPtr           pGC,
 
1005
        int             nseg,
 
1006
        xSegment        *pSeg
 
1007
   );
 
1008
   int PolySegmentThinSolidFlags;
 
1009
 
 
1010
   void (*PolylinesThinDashed)(
 
1011
        DrawablePtr     pDrawable,
 
1012
        GCPtr           pGC,
 
1013
        int             mode,
 
1014
        int             npt,
 
1015
        DDXPointPtr pPts
 
1016
   );
 
1017
   int PolylinesThinDashedFlags;
 
1018
 
 
1019
   void (*PolySegmentThinDashed)(
 
1020
        DrawablePtr     pDrawable,
 
1021
        GCPtr           pGC,
 
1022
        int             nseg,
 
1023
        xSegment        *pSeg
 
1024
   );
 
1025
   int PolySegmentThinDashedFlags;
 
1026
 
 
1027
   void (*FillPolygonSolid)(
 
1028
        DrawablePtr     pDrawable,
 
1029
        GCPtr           pGC,
 
1030
        int             shape,
 
1031
        int             mode,
 
1032
        int             count,
 
1033
        DDXPointPtr     ptsIn 
 
1034
   );
 
1035
   int FillPolygonSolidFlags;
 
1036
 
 
1037
   void (*FillPolygonStippled)(
 
1038
        DrawablePtr     pDrawable,
 
1039
        GCPtr           pGC,
 
1040
        int             shape,
 
1041
        int             mode,
 
1042
        int             count,
 
1043
        DDXPointPtr     ptsIn 
 
1044
   );
 
1045
   int FillPolygonStippledFlags;
 
1046
 
 
1047
   void (*FillPolygonOpaqueStippled)(
 
1048
        DrawablePtr     pDrawable,
 
1049
        GCPtr           pGC,
 
1050
        int             shape,
 
1051
        int             mode,
 
1052
        int             count,
 
1053
        DDXPointPtr     ptsIn 
 
1054
   );
 
1055
   int FillPolygonOpaqueStippledFlags;
 
1056
 
 
1057
   void (*FillPolygonTiled)(
 
1058
        DrawablePtr     pDrawable,
 
1059
        GCPtr           pGC,
 
1060
        int             shape,
 
1061
        int             mode,
 
1062
        int             count,
 
1063
        DDXPointPtr     ptsIn 
 
1064
   );
 
1065
   int FillPolygonTiledFlags;
 
1066
 
 
1067
   void (*PolyFillArcSolid)(
 
1068
        DrawablePtr     pDraw,
 
1069
        GCPtr           pGC,
 
1070
        int             narcs,
 
1071
        xArc            *parcs
 
1072
   );
 
1073
   int PolyFillArcSolidFlags;
 
1074
 
 
1075
   void (*PutImage)(
 
1076
        DrawablePtr pDraw,
 
1077
        GCPtr       pGC,
 
1078
        int         depth, 
 
1079
        int         x, 
 
1080
        int         y, 
 
1081
        int         w, 
 
1082
        int         h,
 
1083
        int         leftPad,
 
1084
        int         format,
 
1085
        char        *pImage
 
1086
   );
 
1087
   int PutImageFlags;
 
1088
   
 
1089
   /* Validation masks */
 
1090
 
 
1091
   unsigned long FillSpansMask;
 
1092
   ValidateGCProcPtr ValidateFillSpans;
 
1093
   unsigned long SetSpansMask;
 
1094
   ValidateGCProcPtr ValidateSetSpans;
 
1095
   unsigned long PutImageMask;
 
1096
   ValidateGCProcPtr ValidatePutImage;
 
1097
   unsigned long CopyAreaMask;
 
1098
   ValidateGCProcPtr ValidateCopyArea;
 
1099
   unsigned long CopyPlaneMask;
 
1100
   ValidateGCProcPtr ValidateCopyPlane;
 
1101
   unsigned long PolyPointMask;
 
1102
   ValidateGCProcPtr ValidatePolyPoint;
 
1103
   unsigned long PolylinesMask;
 
1104
   ValidateGCProcPtr ValidatePolylines;
 
1105
   unsigned long PolySegmentMask;
 
1106
   ValidateGCProcPtr ValidatePolySegment;
 
1107
   unsigned long PolyRectangleMask;
 
1108
   ValidateGCProcPtr ValidatePolyRectangle;
 
1109
   unsigned long PolyArcMask;
 
1110
   ValidateGCProcPtr ValidatePolyArc;
 
1111
   unsigned long FillPolygonMask;
 
1112
   ValidateGCProcPtr ValidateFillPolygon;
 
1113
   unsigned long PolyFillRectMask;
 
1114
   ValidateGCProcPtr ValidatePolyFillRect;
 
1115
   unsigned long PolyFillArcMask;
 
1116
   ValidateGCProcPtr ValidatePolyFillArc;
 
1117
   unsigned long PolyText8Mask;
 
1118
   ValidateGCProcPtr ValidatePolyText8;
 
1119
   unsigned long PolyText16Mask;
 
1120
   ValidateGCProcPtr ValidatePolyText16;
 
1121
   unsigned long ImageText8Mask;
 
1122
   ValidateGCProcPtr ValidateImageText8;
 
1123
   unsigned long ImageText16Mask;
 
1124
   ValidateGCProcPtr ValidateImageText16;
 
1125
   unsigned long PolyGlyphBltMask;
 
1126
   ValidateGCProcPtr ValidatePolyGlyphBlt;
 
1127
   unsigned long ImageGlyphBltMask;
 
1128
   ValidateGCProcPtr ValidateImageGlyphBlt;
 
1129
   unsigned long PushPixelsMask;
 
1130
   ValidateGCProcPtr ValidatePushPixels;
 
1131
 
 
1132
   void (*ComputeDash)(GCPtr pGC);
 
1133
 
 
1134
   /* Pixmap Cache */
 
1135
 
 
1136
   int  PixmapCacheFlags;
 
1137
   Bool UsingPixmapCache;
 
1138
   Bool CanDoMono8x8;
 
1139
   Bool CanDoColor8x8;
 
1140
 
 
1141
   void (*InitPixmapCache)(
 
1142
        ScreenPtr pScreen, 
 
1143
        RegionPtr areas,
 
1144
        pointer data
 
1145
   );
 
1146
   void (*ClosePixmapCache)(
 
1147
        ScreenPtr pScreen
 
1148
   );
 
1149
 
 
1150
   int (*StippledFillChooser)(GCPtr pGC);
 
1151
   int (*OpaqueStippledFillChooser)(GCPtr pGC);
 
1152
   int (*TiledFillChooser)(GCPtr pGC);
 
1153
 
 
1154
   int  CachePixelGranularity;
 
1155
   int  MaxCacheableTileWidth;
 
1156
   int  MaxCacheableTileHeight;
 
1157
   int  MaxCacheableStippleWidth;
 
1158
   int  MaxCacheableStippleHeight;
 
1159
 
 
1160
   XAACacheInfoPtr (*CacheTile)(
 
1161
        ScrnInfoPtr Scrn, PixmapPtr pPix
 
1162
   );
 
1163
   XAACacheInfoPtr (*CacheStipple)(
 
1164
        ScrnInfoPtr Scrn, PixmapPtr pPix, 
 
1165
        int fg, int bg
 
1166
   );
 
1167
   XAACacheInfoPtr (*CacheMonoStipple)(
 
1168
        ScrnInfoPtr Scrn, PixmapPtr pPix
 
1169
   );
 
1170
   XAACacheInfoPtr (*CacheMono8x8Pattern)(
 
1171
        ScrnInfoPtr Scrn, int pat0, int pat1
 
1172
   );
 
1173
   XAACacheInfoPtr (*CacheColor8x8Pattern)(
 
1174
        ScrnInfoPtr Scrn, PixmapPtr pPix, 
 
1175
        int fg, int bg
 
1176
   );
 
1177
 
 
1178
 
 
1179
   int MonoPatternPitch;
 
1180
   int CacheWidthMono8x8Pattern;
 
1181
   int CacheHeightMono8x8Pattern;
 
1182
 
 
1183
   int ColorPatternPitch;
 
1184
   int CacheWidthColor8x8Pattern;
 
1185
   int CacheHeightColor8x8Pattern;
 
1186
 
 
1187
   int CacheColorExpandDensity;
 
1188
 
 
1189
   void (*WriteBitmapToCache) (
 
1190
        ScrnInfoPtr pScrn,
 
1191
        int x, int y, int w, int h,
 
1192
        unsigned char *src,
 
1193
        int srcwidth,
 
1194
        int fg, int bg
 
1195
   );
 
1196
   void (*WritePixmapToCache) (
 
1197
        ScrnInfoPtr pScrn,
 
1198
        int x, int y, int w, int h,
 
1199
        unsigned char *src,
 
1200
        int srcwidth,
 
1201
        int bpp, int depth
 
1202
   );
 
1203
   void (*WriteMono8x8PatternToCache)(
 
1204
        ScrnInfoPtr pScrn, 
 
1205
        XAACacheInfoPtr pCache
 
1206
   );
 
1207
   void (*WriteColor8x8PatternToCache)(
 
1208
        ScrnInfoPtr pScrn, 
 
1209
        PixmapPtr pPix, 
 
1210
        XAACacheInfoPtr pCache
 
1211
   );
 
1212
   
 
1213
   char* PixmapCachePrivate;
 
1214
 
 
1215
   /* Miscellaneous */
 
1216
 
 
1217
   GC ScratchGC;
 
1218
   int PreAllocSize;
 
1219
   unsigned char *PreAllocMem;
 
1220
 
 
1221
   CharInfoPtr CharInfo[255];
 
1222
   NonTEGlyphInfo GlyphInfo[255];
 
1223
 
 
1224
   unsigned int FullPlanemask; /* deprecated */
 
1225
 
 
1226
   PixmapLinkPtr OffscreenPixmaps;
 
1227
   int maxOffPixWidth;
 
1228
   int maxOffPixHeight;   
 
1229
 
 
1230
   XAACacheInfoRec ScratchCacheInfoRec;
 
1231
 
 
1232
   BoxPtr ClipBox;
 
1233
 
 
1234
   Bool NeedToSync;
 
1235
 
 
1236
   char *dgaSaves;
 
1237
 
 
1238
   /* These can be supplied to override the defaults */
 
1239
 
 
1240
   GetImageProcPtr GetImage;
 
1241
   GetSpansProcPtr GetSpans;
 
1242
   PaintWindowBackgroundProcPtr PaintWindowBackground;
 
1243
   PaintWindowBorderProcPtr PaintWindowBorder;
 
1244
   CopyWindowProcPtr CopyWindow;
 
1245
   BackingStoreSaveAreasProcPtr SaveAreas;
 
1246
   BackingStoreRestoreAreasProcPtr RestoreAreas;
 
1247
 
 
1248
   unsigned int offscreenDepths;
 
1249
   Bool offscreenDepthsInitialized;
 
1250
 
 
1251
   CARD32 FullPlanemasks[32];
 
1252
 
 
1253
#ifdef RENDER
 
1254
   Bool (*Composite) (
 
1255
        CARD8      op,
 
1256
        PicturePtr pSrc,
 
1257
        PicturePtr pMask,
 
1258
        PicturePtr pDst,
 
1259
        INT16      xSrc,
 
1260
        INT16      ySrc,
 
1261
        INT16      xMask,
 
1262
        INT16      yMask,
 
1263
        INT16      xDst,
 
1264
        INT16      yDst,
 
1265
        CARD16     width,
 
1266
        CARD16     height
 
1267
   );
 
1268
 
 
1269
   Bool (*Glyphs) (
 
1270
        CARD8         op,
 
1271
        PicturePtr    pSrc,
 
1272
        PicturePtr    pDst,
 
1273
        PictFormatPtr maskFormat,
 
1274
        INT16         xSrc,
 
1275
        INT16         ySrc,
 
1276
        int           nlist,
 
1277
        GlyphListPtr  list,
 
1278
        GlyphPtr      *glyphs
 
1279
   );
 
1280
 
 
1281
   /* The old SetupForCPUToScreenAlphaTexture function is no longer used because
 
1282
    * it doesn't pass in enough information to write a conforming
 
1283
    * implementation.  See SetupForCPUToScreenAlphaTexture2.
 
1284
    */
 
1285
   Bool (*SetupForCPUToScreenAlphaTexture) (
 
1286
        ScrnInfoPtr     pScrn,
 
1287
        int             op,
 
1288
        CARD16          red,
 
1289
        CARD16          green,
 
1290
        CARD16          blue,
 
1291
        CARD16          alpha,
 
1292
        int             alphaType,
 
1293
        CARD8           *alphaPtr,
 
1294
        int             alphaPitch,
 
1295
        int             width,
 
1296
        int             height,
 
1297
        int             flags
 
1298
   );
 
1299
   void (*SubsequentCPUToScreenAlphaTexture) (
 
1300
        ScrnInfoPtr     pScrn,
 
1301
        int             dstx,
 
1302
        int             dsty,
 
1303
        int             srcx,
 
1304
        int             srcy,
 
1305
        int             width,
 
1306
        int             height
 
1307
   );
 
1308
   int CPUToScreenAlphaTextureFlags;
 
1309
   CARD32 * CPUToScreenAlphaTextureFormats;
 
1310
 
 
1311
   /* The old SetupForCPUToScreenTexture function is no longer used because
 
1312
    * it doesn't pass in enough information to write a conforming
 
1313
    * implementation.  See SetupForCPUToScreenTexture2.
 
1314
    */
 
1315
   Bool (*SetupForCPUToScreenTexture) (
 
1316
        ScrnInfoPtr     pScrn,
 
1317
        int             op,
 
1318
        int             texType,
 
1319
        CARD8           *texPtr,
 
1320
        int             texPitch,
 
1321
        int             width,
 
1322
        int             height,
 
1323
        int             flags
 
1324
   );
 
1325
   void (*SubsequentCPUToScreenTexture) (
 
1326
        ScrnInfoPtr     pScrn,
 
1327
        int             dstx,
 
1328
        int             dsty,
 
1329
        int             srcx,
 
1330
        int             srcy,
 
1331
        int             width,
 
1332
        int             height
 
1333
   );
 
1334
   int CPUToScreenTextureFlags;
 
1335
   CARD32 * CPUToScreenTextureFormats;
 
1336
 
 
1337
 
 
1338
#endif
 
1339
 
 
1340
   /* these were added for 4.3.0 */
 
1341
   BoxRec SolidLineLimits;
 
1342
   BoxRec DashedLineLimits;
 
1343
 
 
1344
#ifdef RENDER
 
1345
   /* These were added for X.Org 6.8.0 */
 
1346
   Bool (*SetupForCPUToScreenAlphaTexture2) (
 
1347
        ScrnInfoPtr     pScrn,
 
1348
        int             op,
 
1349
        CARD16          red,
 
1350
        CARD16          green,
 
1351
        CARD16          blue,
 
1352
        CARD16          alpha,
 
1353
        CARD32          maskFormat,
 
1354
        CARD32          dstFormat,
 
1355
        CARD8           *alphaPtr,
 
1356
        int             alphaPitch,
 
1357
        int             width,
 
1358
        int             height,
 
1359
        int             flags
 
1360
   );
 
1361
   CARD32 *CPUToScreenAlphaTextureDstFormats;
 
1362
 
 
1363
   Bool (*SetupForCPUToScreenTexture2) (
 
1364
        ScrnInfoPtr     pScrn,
 
1365
        int             op,
 
1366
        CARD32          srcFormat,
 
1367
        CARD32          dstFormat,
 
1368
        CARD8           *texPtr,
 
1369
        int             texPitch,
 
1370
        int             width,
 
1371
        int             height,
 
1372
        int             flags
 
1373
   );
 
1374
   CARD32 *CPUToScreenTextureDstFormats;
 
1375
#endif /* RENDER */
 
1376
} XAAInfoRec, *XAAInfoRecPtr;
 
1377
 
 
1378
#define SET_SYNC_FLAG(infoRec)  (infoRec)->NeedToSync = TRUE
 
1379
 
 
1380
 
 
1381
Bool 
 
1382
XAAInit(
 
1383
    ScreenPtr pScreen,
 
1384
    XAAInfoRecPtr infoRec
 
1385
);
 
1386
 
 
1387
XAAInfoRecPtr XAACreateInfoRec(void);
 
1388
 
 
1389
void
 
1390
XAADestroyInfoRec(
 
1391
    XAAInfoRecPtr infoRec
 
1392
);
 
1393
 
 
1394
typedef void (*DepthChangeFuncPtr) (ScrnInfoPtr pScrn, int depth);
 
1395
 
 
1396
Bool
 
1397
XAAInitDualFramebufferOverlay(
 
1398
   ScreenPtr pScreen, 
 
1399
   DepthChangeFuncPtr callback
 
1400
);
 
1401
 
 
1402
#endif /* _XAA_H */