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