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