VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.12.0/xaa.h@ 78293

Last change on this file since 78293 was 40349, checked in by vboxsync, 13 years ago

Additions/xorg: support X.Org Server 1.12.

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette