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