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