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