VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/7.0/xorg/xaa.h@ 17233

Last change on this file since 17233 was 17233, checked in by vboxsync, 16 years ago

Additions/x11/x11include: corrected svn:keywords property on all files as per http://linserv.germany/vbox/wiki/SvnKeywords

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 28.6 KB
Line 
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--------- --------
1323 LINE_PATTERN_LSBFIRST_MSBJUSTIFIED
1422 LINE_PATTERN_LSBFIRST_LSBJUSTIFIED
1521 LINE_PATTERN_MSBFIRST_MSBJUSTIFIED
1620 LINE_PATTERN_MSBFIRST_LSBJUSTIFIED
1719 LINE_PATTERN_POWER_OF_2_ONLY
1818 LINE_LIMIT_COORDS
1917 .
2016 .
21--------- -------
22
23 **** screen to screen copy flags ****
24
25--------- --------
2623 ONLY_LEFT_TO_RIGHT_BITBLT
2722 ONLY_TWO_BITBLT_DIRECTIONS
2821 .
2920 .
3019 .
3118 .
3217 .
3316 .
34--------- -------
35
36 **** clipping flags ****
37
38--------- --------
3923 .
4022 HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND
4121 HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY
4220 HARDWARE_CLIP_MONO_8x8_FILL
4319 HARDWARE_CLIP_COLOR_8x8_FILL
4418 HARDWARE_CLIP_SOLID_FILL
4517 HARDWARE_CLIP_DASHED_LINE
4616 HARDWARE_CLIP_SOLID_LINE
47--------- -------
48
49
50 **** hardware pattern flags ****
51
52--------- --------
5323 .
5422 .
5521 HARDWARE_PATTERN_SCREEN_ORIGIN
5620 .
5719 .
5818 .
5917 HARDWARE_PATTERN_PROGRAMMED_ORIGIN
6016 HARDWARE_PATTERN_PROGRAMMED_BITS
61--------- -------
62
63 **** write pixmap flags ****
64
65--------- --------
6623 .
6722 .
6821 .
6920 .
7019 .
7118 .
7217 .
7316 CONVERT_32BPP_TO_24BPP
74--------- -------
75
76
77 ******** GENERIC FLAGS *********
78
79--------- -------
8015 SYNC_AFTER_COLOR_EXPAND
8114 CPU_TRANSFER_PAD_QWORD
8213 .
8312 LEFT_EDGE_CLIPPING_NEGATIVE_X
8411 LEFT_EDGE_CLIPPING
8510 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
207typedef void (* ValidateGCProcPtr)(
208 GCPtr pGC,
209 unsigned long changes,
210 DrawablePtr pDraw
211);
212
213typedef 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
224typedef 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
242typedef struct _PixmapLink {
243 PixmapPtr pPix;
244 struct _PixmapLink *next;
245 FBAreaPtr area;
246} PixmapLink, *PixmapLinkPtr;
247
248typedef 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
1381Bool
1382XAAInit(
1383 ScreenPtr pScreen,
1384 XAAInfoRecPtr infoRec
1385);
1386
1387XAAInfoRecPtr XAACreateInfoRec(void);
1388
1389void
1390XAADestroyInfoRec(
1391 XAAInfoRecPtr infoRec
1392);
1393
1394typedef void (*DepthChangeFuncPtr) (ScrnInfoPtr pScrn, int depth);
1395
1396Bool
1397XAAInitDualFramebufferOverlay(
1398 ScreenPtr pScreen,
1399 DepthChangeFuncPtr callback
1400);
1401
1402#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