74938bebe5e945888b0a3242a255d4665ea224b6
[free-sw/xcb/proto] / src / extensions / render.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright (C) 2002-2004 Carl D. Worth, Jamey Sharp, Bart Massey, Josh Triplett
4 All Rights Reserved.  See the file COPYING in this directory
5 for licensing information.
6 -->
7 <xcb header="render" extension-xname="RENDER" extension-name="Render">
8   <!-- supports version 0.8 -->
9
10   <enum name="PictType">
11     <item name="Indexed" />
12     <item name="Direct" />
13   </enum>
14
15   <!-- Disjoint* and Conjoint* are new in version 0.2 -->
16   <enum name="PictOp">
17     <item name="Clear" />
18     <item name="Src" />
19     <item name="Dst" />
20     <item name="Over" />
21     <item name="OverReverse" />
22     <item name="In" />
23     <item name="InReverse" />
24     <item name="Out" />
25     <item name="OutReverse" />
26     <item name="Atop" />
27     <item name="AtopReverse" />
28     <item name="Xor" />
29     <item name="Add" />
30     <item name="Saturate" />
31     
32     <item name="DisjointClear"><value>0x10</value></item>
33     <item name="DisjointSrc" />
34     <item name="DisjointDst" />
35     <item name="DisjointOver" />
36     <item name="DisjointOverReverse" />
37     <item name="DisjointIn" />
38     <item name="DisjointInReverse" />
39     <item name="DisjointOut" />
40     <item name="DisjointOutReverse" />
41     <item name="DisjointAtop" />
42     <item name="DisjointAtopReverse" />
43     <item name="DisjointXor" />
44     
45     <item name="ConjointClear"><value>0x20</value></item>
46     <item name="ConjointSrc" />
47     <item name="ConjointDst" />
48     <item name="ConjointOver" />
49     <item name="ConjointOverReverse" />
50     <item name="ConjointIn" />
51     <item name="ConjointInReverse" />
52     <item name="ConjointOut" />
53     <item name="ConjointOutReverse" />
54     <item name="ConjointAtop" />
55     <item name="ConjointAtopReverse" />
56     <item name="ConjointXor" />
57   </enum>
58
59   <enum name="PolyEdge">
60     <item name="Sharp" />
61     <item name="Smooth" />
62   </enum>
63
64   <enum name="PolyMode">
65     <item name="Precise" />
66     <item name="Imprecise" />
67   </enum>
68
69   <enum name="CP">
70     <item name="Repeat">
71       <op op="&lt;&lt;"><value>1</value><value>0</value></op>
72     </item>
73     <item name="AlphaMap">
74       <op op="&lt;&lt;"><value>1</value><value>1</value></op>
75     </item>
76     <item name="AlphaXOrigin">
77       <op op="&lt;&lt;"><value>1</value><value>2</value></op>
78     </item>
79     <item name="AlphaYOrigin">
80       <op op="&lt;&lt;"><value>1</value><value>3</value></op>
81     </item>
82     <item name="ClipXOrigin">
83       <op op="&lt;&lt;"><value>1</value><value>4</value></op>
84     </item>
85     <item name="ClipYOrigin">
86       <op op="&lt;&lt;"><value>1</value><value>5</value></op>
87     </item>
88     <item name="ClipMask">
89       <op op="&lt;&lt;"><value>1</value><value>6</value></op>
90     </item>
91     <item name="GraphicsExposure">
92       <op op="&lt;&lt;"><value>1</value><value>7</value></op>
93     </item>
94     <item name="SubwindowMode">
95       <op op="&lt;&lt;"><value>1</value><value>8</value></op>
96     </item>
97     <item name="PolyEdge">
98       <op op="&lt;&lt;"><value>1</value><value>9</value></op>
99     </item>
100     <item name="PolyMode">
101       <op op="&lt;&lt;"><value>1</value><value>10</value></op>
102     </item>
103     <item name="Dither">
104       <op op="&lt;&lt;"><value>1</value><value>11</value></op>
105     </item>
106     <item name="ComponentAlpha">
107       <op op="&lt;&lt;"><value>1</value><value>12</value></op>
108     </item>
109   </enum>
110
111   <enum name="SubPixel">
112     <item name="Unknown" />
113     <item name="HorizontalRGB" />
114     <item name="HorizontalBGR" />
115     <item name="VerticalRGB" />
116     <item name="VerticalBGR" />
117     <item name="None" />
118   </enum>
119
120   <typedef oldname="CARD32" newname="GLYPH" />
121   <xidtype name="GLYPHSET" />
122
123   <xidtype name="PICTURE" />
124   <xidtype name="PICTFORMAT" />
125
126   <typedef oldname="INT32" newname="FIXED" />
127
128   <error name="PictFormat" number="0" />
129   <error name="Picture" number="1" />
130   <error name="PictOp" number="2" />
131   <error name="GlyphSet" number="3" />
132   <error name="Glyph" number="4" />
133
134   <struct name="DIRECTFORMAT">
135     <field type="CARD16" name="red_shift" />
136     <field type="CARD16" name="red_mask" />
137     <field type="CARD16" name="green_shift" />
138     <field type="CARD16" name="green_mask" />
139     <field type="CARD16" name="blue_shift" />
140     <field type="CARD16" name="blue_mask" />
141     <field type="CARD16" name="alpha_shift" />
142     <field type="CARD16" name="alpha_mask" />
143   </struct>
144
145   <struct name="PICTFORMINFO">
146     <field type="PICTFORMAT" name="id" />
147     <field type="CARD8" name="type" />
148     <field type="CARD8" name="depth" />
149     <pad bytes="2" />
150     <field type="DIRECTFORMAT" name="direct" />
151     <field type="COLORMAP" name="colormap" />
152   </struct>
153
154   <struct name="PICTVISUAL">
155     <field type="VISUALID" name="visual" />
156     <field type="PICTFORMAT" name="format" />
157   </struct>
158
159   <struct name="PICTDEPTH">
160     <field type="CARD8" name="depth" />
161     <pad bytes="1" />
162     <field type="CARD16" name="num_visuals" />
163     <pad bytes="4" />
164     <list type="PICTVISUAL" name="visuals">
165       <fieldref>num_visuals</fieldref>
166     </list>
167   </struct>
168
169   <struct name="PICTSCREEN">
170     <field type="CARD32" name="num_depths" />
171     <field type="PICTFORMAT" name="fallback" />
172     <list type="PICTDEPTH" name="depths">
173       <fieldref>num_depths</fieldref>
174     </list>
175   </struct>
176
177   <struct name="INDEXVALUE">
178     <field type="CARD32" name="pixel" />
179     <field type="CARD16" name="red" />
180     <field type="CARD16" name="green" />
181     <field type="CARD16" name="blue" />
182     <field type="CARD16" name="alpha" />
183   </struct>
184
185   <struct name="COLOR">
186     <field type="CARD16" name="red" />
187     <field type="CARD16" name="green" />
188     <field type="CARD16" name="blue" />
189     <field type="CARD16" name="alpha" />
190   </struct>
191
192   <struct name="POINTFIX">
193     <field type="FIXED" name="x" />
194     <field type="FIXED" name="y" />
195   </struct>
196
197   <struct name="LINEFIX">
198     <field type="POINTFIX" name="p1" />
199     <field type="POINTFIX" name="p2" />
200   </struct>
201
202   <struct name="TRIANGLE">
203     <field type="POINTFIX" name="p1" />
204     <field type="POINTFIX" name="p2" />
205     <field type="POINTFIX" name="p3" />
206   </struct>
207
208   <struct name="TRAP">
209     <field type="FIXED" name="top" />
210     <field type="FIXED" name="bottom" />
211     <field type="LINEFIX" name="left" />
212     <field type="LINEFIX" name="right" />
213   </struct>
214
215   <struct name="GLYPHINFO">
216     <field type="CARD16" name="width" />
217     <field type="CARD16" name="height" />
218     <field type="INT16" name="x" />
219     <field type="INT16" name="y" />
220     <field type="INT16" name="x_off" />
221     <field type="INT16" name="y_off" />
222   </struct>
223
224
225   <request name="QueryVersion" opcode="0">
226     <field type="CARD32" name="client_major_version" />
227     <field type="CARD32" name="client_minor_version" />
228     <reply>
229       <pad bytes="1" />
230       <field type="CARD32" name="major_version" />
231       <field type="CARD32" name="minor_version" />
232       <pad bytes="16" />
233     </reply>
234   </request>
235
236   <request name="QueryPictFormats" opcode="1">
237     <reply>
238       <pad bytes="1" />
239       <field type="CARD32" name="num_formats" />
240       <field type="CARD32" name="num_screens" />
241       <field type="CARD32" name="num_depths" />
242       <field type="CARD32" name="num_visuals" />
243       <field type="CARD32" name="num_subpixel" /> <!-- new in version 0.6 -->
244       <pad bytes="4" />
245       <list type="PICTFORMINFO" name="formats">
246         <fieldref>num_formats</fieldref>
247       </list>
248       <list type="PICTSCREEN" name="screens">
249         <fieldref>num_screens</fieldref>
250       </list>
251       <list type="CARD32" name="subpixels">
252         <fieldref>num_subpixel</fieldref>
253       </list>
254     </reply>
255   </request>
256
257   <!-- from version 0.7 -->
258   <request name="QueryPictIndexValues" opcode="2">
259     <field type="PICTFORMAT" name="format" />
260     <reply>
261       <pad bytes="1" />
262       <field type="CARD32" name="num_values" />
263       <pad bytes="20" />
264       <list type="INDEXVALUE" name="values">
265         <fieldref>num_values</fieldref>
266       </list>
267     </reply>
268   </request>
269
270   <!-- opcode 3 reserved for QueryDithers -->
271
272   <request name="CreatePicture" opcode="4">
273     <field type="PICTURE" name="pid" />
274     <field type="DRAWABLE" name="drawable" />
275     <field type="PICTFORMAT" name="format" />
276     <valueparam value-mask-type="CARD32"
277                 value-mask-name="value_mask"
278                 value-list-name="value_list" />
279   </request>
280
281   <request name="ChangePicture" opcode="5">
282     <field type="PICTURE" name="picture" />
283     <valueparam value-mask-type="CARD32"
284                 value-mask-name="value_mask"
285                 value-list-name="value_list" />
286   </request>
287
288   <request name="SetPictureClipRectangles" opcode="6">
289     <field type="PICTURE" name="picture" />
290     <field type="INT16" name="clip_x_origin" />
291     <field type="INT16" name="clip_y_origin" />
292     <list type="RECTANGLE" name="rectangles" />
293   </request>
294
295   <request name="FreePicture" opcode="7">
296     <field type="PICTURE" name="picture" />
297   </request>
298
299   <request name="Composite" opcode="8">
300     <field type="CARD8" name="op" />
301     <pad bytes="3" />
302     <field type="PICTURE" name="src" />
303     <field type="PICTURE" name="mask" />
304     <field type="PICTURE" name="dst" />
305     <field type="INT16" name="src_x" />
306     <field type="INT16" name="src_y" />
307     <field type="INT16" name="mask_x" />
308     <field type="INT16" name="mask_y" />
309     <field type="INT16" name="dst_x" />
310     <field type="INT16" name="dst_y" />
311     <field type="CARD16" name="width" />
312     <field type="CARD16" name="height" />
313   </request>
314
315   <!-- opcode 9 reserved for Scale -->
316
317   <request name="Trapezoids" opcode="10">
318     <field type="CARD8" name="op" />
319     <pad bytes="3" />
320     <field type="PICTURE" name="src" />
321     <field type="PICTURE" name="dst" />
322     <field type="PICTFORMAT" name="mask_format" />
323     <field type="INT16" name="src_x" />
324     <field type="INT16" name="src_y" />
325     <list type="TRAP" name="traps" />
326   </request>
327
328   <request name="Triangles" opcode="11">
329     <field type="CARD8" name="op" />
330     <pad bytes="3" />
331     <field type="PICTURE" name="src" />
332     <field type="PICTURE" name="dst" />
333     <field type="PICTFORMAT" name="mask_format" />
334     <field type="INT16" name="src_x" />
335     <field type="INT16" name="src_y" />
336     <list type="TRIANGLE" name="triangles" />
337   </request>
338
339   <request name="TriStrip" opcode="12">
340     <field type="CARD8" name="op" />
341     <pad bytes="3" />
342     <field type="PICTURE" name="src" />
343     <field type="PICTURE" name="dst" />
344     <field type="PICTFORMAT" name="mask_format" />
345     <field type="INT16" name="src_x" />
346     <field type="INT16" name="src_y" />
347     <list type="POINTFIX" name="points" />
348   </request>
349
350   <request name="TriFan" opcode="13">
351     <field type="CARD8" name="op" />
352     <pad bytes="3" />
353     <field type="PICTURE" name="src" />
354     <field type="PICTURE" name="dst" />
355     <field type="PICTFORMAT" name="mask_format" />
356     <field type="INT16" name="src_x" />
357     <field type="INT16" name="src_y" />
358     <list type="POINTFIX" name="points" />
359   </request>
360
361   <!-- opcode 14 reserved for ColorTrapezoids -->
362
363   <!-- opcode 15 reserved for ColorTriangles -->
364
365   <!-- opcode 16 reserved for Transform -->
366
367   <request name="CreateGlyphSet" opcode="17">
368     <field type="GLYPHSET" name="gsid" />
369     <field type="PICTFORMAT" name="format" />
370   </request>
371
372   <request name="ReferenceGlyphSet" opcode="18">
373     <field type="GLYPHSET" name="gsid" />
374     <field type="GLYPHSET" name="existing" />
375   </request>
376
377   <request name="FreeGlyphSet" opcode="19">
378     <field type="GLYPHSET" name="glyphset" />
379   </request>
380
381   <request name="AddGlyphs" opcode="20">
382     <field type="GLYPHSET" name="glyphset" />
383     <field type="CARD32" name="glyphs_len" />
384     <list type="CARD32" name="glyphids">
385       <fieldref>glyphs_len</fieldref>
386     </list>
387     <list type="GLYPHINFO" name="glyphs">
388       <fieldref>glyphs_len</fieldref>
389     </list>
390     <list type="BYTE" name="data" />
391   </request>
392
393   <!-- opcode 21 reserved for AddGlyphsFromPicture -->
394
395   <request name="FreeGlyphs" opcode="22">
396     <field type="GLYPHSET" name="glyphset" />
397     <list type="GLYPH" name="glyphs" />
398   </request>
399
400   <struct name="GLYPHSETELT">
401     <field type="CARD8" name="len" />
402     <pad bytes="3" />
403     <field type="INT16" name="deltax" />
404     <field type="INT16" name="deltay" />
405     <field type="GLYPHSET" name="glyphset" />
406   </struct>
407
408   <!-- CompositeGlyphs8 -->
409
410   <struct name="GLYPHELT8">
411     <field type="CARD8" name="len" />
412     <pad bytes="3" />
413     <field type="INT16" name="deltax" />
414     <field type="INT16" name="deltay" />
415     <list type="CARD8" name="glyphs">
416       <fieldref>len</fieldref>
417     </list>
418   </struct>
419
420   <union name="GLYPHITEM8">
421     <field type="GLYPHELT8" name="glyphelt" />
422     <field type="GLYPHSETELT" name="glyphset" />
423   </union>
424
425   <request name="CompositeGlyphs8" opcode="23">
426     <field type="CARD8" name="op" />
427     <pad bytes="3" />
428     <field type="PICTURE" name="src" />
429     <field type="PICTURE" name="dst" />
430     <field type="PICTFORMAT" name="mask_format" />
431     <field type="GLYPHSET" name="glyphset" />
432     <field type="INT16" name="src_x" />
433     <field type="INT16" name="src_y" />
434     <list type="GLYPHITEM8" name="glyphcmds" />
435   </request>
436
437   <!-- CompositeGlyphs16 -->
438
439   <struct name="GLYPHELT16">
440     <field type="CARD8" name="len" />
441     <pad bytes="3" />
442     <field type="INT16" name="deltax" />
443     <field type="INT16" name="deltay" />
444     <list type="CARD16" name="glyphs">
445       <fieldref>len</fieldref>
446     </list>
447   </struct>
448
449   <union name="GLYPHITEM16">
450     <field type="GLYPHELT16" name="glyphelt" />
451     <field type="GLYPHSETELT" name="glyphset" />
452   </union>
453
454   <request name="CompositeGlyphs16" opcode="24">
455     <field type="CARD8" name="op" />
456     <pad bytes="3" />
457     <field type="PICTURE" name="src" />
458     <field type="PICTURE" name="dst" />
459     <field type="PICTFORMAT" name="mask_format" />
460     <field type="GLYPHSET" name="glyphset" />
461     <field type="INT16" name="src_x" />
462     <field type="INT16" name="src_y" />
463     <list type="GLYPHITEM16" name="glyphcmds" />
464   </request>
465
466   <!-- CompositeGlyphs32 -->
467
468   <struct name="GLYPHELT32">
469     <field type="CARD8" name="len" />
470     <pad bytes="3" />
471     <field type="INT16" name="deltax" />
472     <field type="INT16" name="deltay" />
473     <list type="CARD32" name="glyphs">
474       <fieldref>len</fieldref>
475     </list>
476   </struct>
477
478   <union name="GLYPHITEM32">
479     <field type="GLYPHELT32" name="glyphelt" />
480     <field type="GLYPHSETELT" name="glyphset" />
481   </union>
482
483   <request name="CompositeGlyphs32" opcode="25">
484     <field type="CARD8" name="op" />
485     <pad bytes="3" />
486     <field type="PICTURE" name="src" />
487     <field type="PICTURE" name="dst" />
488     <field type="PICTFORMAT" name="mask_format" />
489     <field type="GLYPHSET" name="glyphset" />
490     <field type="INT16" name="src_x" />
491     <field type="INT16" name="src_y" />
492     <list type="GLYPHITEM32" name="glyphcmds" />
493   </request>
494
495   <!-- new in version 0.1 -->
496
497   <request name="FillRectangles" opcode="26">
498     <field type="CARD8" name="op" />
499     <pad bytes="3" />
500     <field type="PICTURE" name="dst" />
501     <field type="COLOR" name="color" />
502     <list type="RECTANGLE" name="rects" />
503   </request>
504
505   <!-- new in version 0.5 -->
506
507   <request name="CreateCursor" opcode="27">
508     <field type="CURSOR" name="cid" />
509     <field type="PICTURE" name="source" />
510     <field type="CARD16" name="x" />
511     <field type="CARD16" name="y" />
512   </request>
513
514   <!-- new in version 0.6 -->
515
516   <struct name="TRANSFORM">
517     <field type="FIXED" name="matrix11" />
518     <field type="FIXED" name="matrix12" />
519     <field type="FIXED" name="matrix13" />
520     <field type="FIXED" name="matrix21" />
521     <field type="FIXED" name="matrix22" />
522     <field type="FIXED" name="matrix23" />
523     <field type="FIXED" name="matrix31" />
524     <field type="FIXED" name="matrix32" />
525     <field type="FIXED" name="matrix33" />
526   </struct>
527
528   <request name="SetPictureTransform" opcode="28">
529     <field type="PICTURE" name="picture" />
530     <field type="TRANSFORM" name="transform" />
531   </request>
532
533   <request name="QueryFilters" opcode="29">
534     <field type="DRAWABLE" name="drawable" />
535     <reply>
536       <pad bytes="1" />
537       <field type="CARD32" name="num_aliases" />
538       <field type="CARD32" name="num_filters" />
539       <pad bytes="16" />
540       <list type="CARD16" name="aliases">
541         <fieldref>num_aliases</fieldref>
542       </list>
543       <list type="STR" name="filters">
544         <fieldref>num_filters</fieldref>
545       </list>
546     </reply>
547   </request>
548
549   <request name="SetPictureFilter" opcode="30">
550     <field type="PICTURE" name="picture" />
551     <field type="CARD16" name="filter_len" />
552     <list type="char" name="filter">
553       <fieldref>filter_len</fieldref>
554     </list>
555     <list type="FIXED" name="values" />
556   </request>
557
558   <!-- new in version 0.8 -->
559
560   <struct name="ANIMCURSORELT">
561     <field type="CURSOR" name="cursor" />
562     <field type="CARD32" name="delay" />
563   </struct>
564
565   <request name="CreateAnimCursor" opcode="31">
566     <field type="CURSOR" name="cid" />
567     <list type="ANIMCURSORELT" name="cursors" />
568   </request>
569 </xcb>