1 module x11.extensions.render;
2 
3 import x11.X;
4 
5 alias XID		Glyph;
6 alias XID		GlyphSet;
7 alias XID		Picture;
8 alias XID		PictFormat;
9 
10 enum RENDER_NAME	= "RENDER";
11 enum RENDER_MAJOR	= 0;
12 enum RENDER_MINOR	= 11;
13 
14 enum X_RenderQueryVersion		        = 0;
15 enum X_RenderQueryPictFormats	        = 1;
16 enum X_RenderQueryPictIndexValues	    = 2	/* 0.7 */;
17 enum X_RenderQueryDithers		        = 3;
18 enum X_RenderCreatePicture		        = 4;
19 enum X_RenderChangePicture		        = 5;
20 enum X_RenderSetPictureClipRectangles   = 6;
21 enum X_RenderFreePicture	    	    = 7;
22 enum X_RenderComposite		            = 8;
23 enum X_RenderScale			            = 9;
24 enum X_RenderTrapezoids		            = 10;
25 enum X_RenderTriangles		            = 11;
26 enum X_RenderTriStrip		            = 12;
27 enum X_RenderTriFan			            = 13;
28 enum X_RenderColorTrapezoids		    = 14;
29 enum X_RenderColorTriangles		        = 15;
30 /* enum X_RenderTransform		        = 16 */;
31 enum X_RenderCreateGlyphSet		        = 17;
32 enum X_RenderReferenceGlyphSet	        = 18;
33 enum X_RenderFreeGlyphSet		        = 19;
34 enum X_RenderAddGlyphs		            = 20;
35 enum X_RenderAddGlyphsFromPicture	    = 21;
36 enum X_RenderFreeGlyphs		            = 22;
37 enum X_RenderCompositeGlyphs8	        = 23;
38 enum X_RenderCompositeGlyphs16	        = 24;
39 enum X_RenderCompositeGlyphs32	        = 25;
40 enum X_RenderFillRectangles		        = 26;
41 /* 0.5 */
42 enum X_RenderCreateCursor		        = 27;
43 /* 0.6 */
44 enum X_RenderSetPictureTransform	    = 28;
45 enum X_RenderQueryFilters		        = 29;
46 enum X_RenderSetPictureFilter	        = 30;
47 /* 0.8 */
48 enum X_RenderCreateAnimCursor	        = 31;
49 /* 0.9 */
50 enum X_RenderAddTraps		            = 32;
51 /* 0.10 */
52 enum X_RenderCreateSolidFill            = 33;
53 enum X_RenderCreateLinearGradient       = 34;
54 enum X_RenderCreateRadialGradient       = 35;
55 enum X_RenderCreateConicalGradient      = 36;
56 enum RenderNumberRequests		        = (X_RenderCreateConicalGradient+1);
57 
58 enum BadPictFormat		    = 0;
59 enum BadPicture			    = 1;
60 enum BadPictOp			    = 2;
61 enum BadGlyphSet			= 3;
62 enum BadGlyph			    = 4;
63 enum RenderNumberErrors		= (BadGlyph+1);
64 
65 enum PictTypeIndexed		= 0;
66 enum PictTypeDirect			= 1;
67 
68 enum PictOpMinimum			= 0;
69 enum PictOpClear			= 0;
70 enum PictOpSrc			    = 1;
71 enum PictOpDst			    = 2;
72 enum PictOpOver			    = 3;
73 enum PictOpOverReverse		= 4;
74 enum PictOpIn			    = 5;
75 enum PictOpInReverse		= 6;
76 enum PictOpOut			    = 7;
77 enum PictOpOutReverse		= 8;
78 enum PictOpAtop			    = 9;
79 enum PictOpAtopReverse		= 10;
80 enum PictOpXor			    = 11;
81 enum PictOpAdd			    = 12;
82 enum PictOpSaturate			= 13;
83 enum PictOpMaximum			= 13;
84 
85 /*
86  * Operators only available in version 0.2
87  */
88 enum PictOpDisjointMinimum		    = 0x10;
89 enum PictOpDisjointClear			= 0x10;
90 enum PictOpDisjointSrc			    = 0x11;
91 enum PictOpDisjointDst			    = 0x12;
92 enum PictOpDisjointOver			    = 0x13;
93 enum PictOpDisjointOverReverse		= 0x14;
94 enum PictOpDisjointIn			    = 0x15;
95 enum PictOpDisjointInReverse		= 0x16;
96 enum PictOpDisjointOut			    = 0x17;
97 enum PictOpDisjointOutReverse		= 0x18;
98 enum PictOpDisjointAtop			    = 0x19;
99 enum PictOpDisjointAtopReverse		= 0x1a;
100 enum PictOpDisjointXor			    = 0x1b;
101 enum PictOpDisjointMaximum			= 0x1b;
102 
103 enum PictOpConjointMinimum			= 0x20;
104 enum PictOpConjointClear			= 0x20;
105 enum PictOpConjointSrc			    = 0x21;
106 enum PictOpConjointDst			    = 0x22;
107 enum PictOpConjointOver			    = 0x23;
108 enum PictOpConjointOverReverse		= 0x24;
109 enum PictOpConjointIn			    = 0x25;
110 enum PictOpConjointInReverse		= 0x26;
111 enum PictOpConjointOut			    = 0x27;
112 enum PictOpConjointOutReverse		= 0x28;
113 enum PictOpConjointAtop			    = 0x29;
114 enum PictOpConjointAtopReverse		= 0x2a;
115 enum PictOpConjointXor			    = 0x2b;
116 enum PictOpConjointMaximum			= 0x2b;
117 
118 /*
119  * Operators only available in version 0.11
120  */
121 enum PictOpBlendMinimum			    = 0x30;
122 enum PictOpMultiply				    = 0x30;
123 enum PictOpScreen				    = 0x31;
124 enum PictOpOverlay				    = 0x32;
125 enum PictOpDarken				    = 0x33;
126 enum PictOpLighten				    = 0x34;
127 enum PictOpColorDodge			    = 0x35;
128 enum PictOpColorBurn				= 0x36;
129 enum PictOpHardLight				= 0x37;
130 enum PictOpSoftLight				= 0x38;
131 enum PictOpDifference			    = 0x39;
132 enum PictOpExclusion				= 0x3a;
133 enum PictOpHSLHue				    = 0x3b;
134 enum PictOpHSLSaturation			= 0x3c;
135 enum PictOpHSLColor				    = 0x3d;
136 enum PictOpHSLLuminosity			= 0x3e;
137 enum PictOpBlendMaximum			    = 0x3e;
138 
139 enum PolyEdgeSharp			    = 0;
140 enum PolyEdgeSmooth			    = 1;
141 
142 enum PolyModePrecise			= 0;
143 enum PolyModeImprecise		    = 1;
144 
145 enum CPRepeat			        = (1 << 0);
146 enum CPAlphaMap			        = (1 << 1);
147 enum CPAlphaXOrigin			    = (1 << 2);
148 enum CPAlphaYOrigin			    = (1 << 3);
149 enum CPClipXOrigin			    = (1 << 4);
150 enum CPClipYOrigin			    = (1 << 5);
151 enum CPClipMask			        = (1 << 6);
152 enum CPGraphicsExposure		    = (1 << 7);
153 enum CPSubwindowMode			= (1 << 8);
154 enum CPPolyEdge			        = (1 << 9);
155 enum CPPolyMode			        = (1 << 10);
156 enum CPDither			        = (1 << 11);
157 enum CPComponentAlpha		    = (1 << 12);
158 enum CPLastBit			        = 12;
159 
160 /* Filters included in 0.6 */
161 enum FilterNearest			    = "nearest";
162 enum FilterBilinear			    = "bilinear";
163 /* Filters included in 0.10 */
164 enum FilterConvolution		    = "convolution";
165 
166 enum FilterFast			        = "fast";
167 enum FilterGood			        = "good";
168 enum FilterBest			        = "best";
169 
170 enum FilterAliasNone			= -1;
171 
172 /* Subpixel orders included in 0.6 */
173 enum SubPixelUnknown			= 0;
174 enum SubPixelHorizontalRGB		= 1;
175 enum SubPixelHorizontalBGR		= 2;
176 enum SubPixelVerticalRGB		= 3;
177 enum SubPixelVerticalBGR		= 4;
178 enum SubPixelNone			    = 5;
179 
180 /* Extended repeat attributes included in 0.10 */
181 enum RepeatNone                 = 0;
182 enum RepeatNormal               = 1;
183 enum RepeatPad                  = 2;
184 enum RepeatReflect              = 3;