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