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