1 <?xml version="1.0" encoding="utf-8"?>
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.
7 <xcb header="render" extension-xname="RENDER" extension-name="Render">
8 <!-- supports version 0.10 -->
10 <enum name="PictType">
11 <item name="Indexed" />
12 <item name="Direct" />
15 <!-- Disjoint* and Conjoint* are new in version 0.2 -->
21 <item name="OverReverse" />
23 <item name="InReverse" />
25 <item name="OutReverse" />
27 <item name="AtopReverse" />
30 <item name="Saturate" />
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" />
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" />
59 <enum name="PolyEdge">
61 <item name="Smooth" />
64 <enum name="PolyMode">
65 <item name="Precise" />
66 <item name="Imprecise" />
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>
85 <enum name="SubPixel">
86 <item name="Unknown" />
87 <item name="HorizontalRGB" />
88 <item name="HorizontalBGR" />
89 <item name="VerticalRGB" />
90 <item name="VerticalBGR" />
94 <typedef oldname="CARD32" newname="GLYPH" />
95 <xidtype name="GLYPHSET" />
97 <xidtype name="PICTURE" />
98 <xidtype name="PICTFORMAT" />
100 <typedef oldname="INT32" newname="FIXED" />
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" />
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" />
119 <struct name="PICTFORMINFO">
120 <field type="PICTFORMAT" name="id" />
121 <field type="CARD8" name="type" />
122 <field type="CARD8" name="depth" />
124 <field type="DIRECTFORMAT" name="direct" />
125 <field type="COLORMAP" name="colormap" />
128 <struct name="PICTVISUAL">
129 <field type="VISUALID" name="visual" />
130 <field type="PICTFORMAT" name="format" />
133 <struct name="PICTDEPTH">
134 <field type="CARD8" name="depth" />
136 <field type="CARD16" name="num_visuals" />
138 <list type="PICTVISUAL" name="visuals">
139 <fieldref>num_visuals</fieldref>
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>
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" />
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" />
166 <struct name="POINTFIX">
167 <field type="FIXED" name="x" />
168 <field type="FIXED" name="y" />
171 <struct name="LINEFIX">
172 <field type="POINTFIX" name="p1" />
173 <field type="POINTFIX" name="p2" />
176 <struct name="TRIANGLE">
177 <field type="POINTFIX" name="p1" />
178 <field type="POINTFIX" name="p2" />
179 <field type="POINTFIX" name="p3" />
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" />
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" />
199 <request name="QueryVersion" opcode="0">
200 <field type="CARD32" name="client_major_version" />
201 <field type="CARD32" name="client_minor_version" />
204 <field type="CARD32" name="major_version" />
205 <field type="CARD32" name="minor_version" />
210 <request name="QueryPictFormats" opcode="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 -->
219 <list type="PICTFORMINFO" name="formats">
220 <fieldref>num_formats</fieldref>
222 <list type="PICTSCREEN" name="screens">
223 <fieldref>num_screens</fieldref>
225 <list type="CARD32" name="subpixels">
226 <fieldref>num_subpixel</fieldref>
231 <!-- from version 0.7 -->
232 <request name="QueryPictIndexValues" opcode="2">
233 <field type="PICTFORMAT" name="format" />
236 <field type="CARD32" name="num_values" />
238 <list type="INDEXVALUE" name="values">
239 <fieldref>num_values</fieldref>
244 <!-- opcode 3 reserved for QueryDithers -->
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" />
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" />
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" />
269 <request name="FreePicture" opcode="7">
270 <field type="PICTURE" name="picture" />
273 <request name="Composite" opcode="8">
274 <field type="CARD8" name="op" />
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" />
289 <!-- opcode 9 reserved for Scale -->
291 <request name="Trapezoids" opcode="10">
292 <field type="CARD8" name="op" />
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" />
302 <request name="Triangles" opcode="11">
303 <field type="CARD8" name="op" />
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" />
313 <request name="TriStrip" opcode="12">
314 <field type="CARD8" name="op" />
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" />
324 <request name="TriFan" opcode="13">
325 <field type="CARD8" name="op" />
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" />
335 <!-- opcode 14 reserved for ColorTrapezoids -->
337 <!-- opcode 15 reserved for ColorTriangles -->
339 <!-- opcode 16 reserved for Transform -->
341 <request name="CreateGlyphSet" opcode="17">
342 <field type="GLYPHSET" name="gsid" />
343 <field type="PICTFORMAT" name="format" />
346 <request name="ReferenceGlyphSet" opcode="18">
347 <field type="GLYPHSET" name="gsid" />
348 <field type="GLYPHSET" name="existing" />
351 <request name="FreeGlyphSet" opcode="19">
352 <field type="GLYPHSET" name="glyphset" />
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>
361 <list type="GLYPHINFO" name="glyphs">
362 <fieldref>glyphs_len</fieldref>
364 <list type="BYTE" name="data" />
367 <!-- opcode 21 reserved for AddGlyphsFromPicture -->
369 <request name="FreeGlyphs" opcode="22">
370 <field type="GLYPHSET" name="glyphset" />
371 <list type="GLYPH" name="glyphs" />
374 <struct name="GLYPHSETELT">
375 <field type="CARD8" name="len" />
377 <field type="INT16" name="deltax" />
378 <field type="INT16" name="deltay" />
379 <field type="GLYPHSET" name="glyphset" />
382 <!-- CompositeGlyphs8 -->
384 <struct name="GLYPHELT8">
385 <field type="CARD8" name="len" />
387 <field type="INT16" name="deltax" />
388 <field type="INT16" name="deltay" />
389 <list type="CARD8" name="glyphs">
390 <fieldref>len</fieldref>
394 <union name="GLYPHITEM8">
395 <field type="GLYPHELT8" name="glyphelt" />
396 <field type="GLYPHSETELT" name="glyphset" />
399 <request name="CompositeGlyphs8" opcode="23">
400 <field type="CARD8" name="op" />
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" />
411 <!-- CompositeGlyphs16 -->
413 <struct name="GLYPHELT16">
414 <field type="CARD8" name="len" />
416 <field type="INT16" name="deltax" />
417 <field type="INT16" name="deltay" />
418 <list type="CARD16" name="glyphs">
419 <fieldref>len</fieldref>
423 <union name="GLYPHITEM16">
424 <field type="GLYPHELT16" name="glyphelt" />
425 <field type="GLYPHSETELT" name="glyphset" />
428 <request name="CompositeGlyphs16" opcode="24">
429 <field type="CARD8" name="op" />
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" />
440 <!-- CompositeGlyphs32 -->
442 <struct name="GLYPHELT32">
443 <field type="CARD8" name="len" />
445 <field type="INT16" name="deltax" />
446 <field type="INT16" name="deltay" />
447 <list type="CARD32" name="glyphs">
448 <fieldref>len</fieldref>
452 <union name="GLYPHITEM32">
453 <field type="GLYPHELT32" name="glyphelt" />
454 <field type="GLYPHSETELT" name="glyphset" />
457 <request name="CompositeGlyphs32" opcode="25">
458 <field type="CARD8" name="op" />
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" />
469 <!-- new in version 0.1 -->
471 <request name="FillRectangles" opcode="26">
472 <field type="CARD8" name="op" />
474 <field type="PICTURE" name="dst" />
475 <field type="COLOR" name="color" />
476 <list type="RECTANGLE" name="rects" />
479 <!-- new in version 0.5 -->
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" />
488 <!-- new in version 0.6 -->
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" />
502 <request name="SetPictureTransform" opcode="28">
503 <field type="PICTURE" name="picture" />
504 <field type="TRANSFORM" name="transform" />
507 <request name="QueryFilters" opcode="29">
508 <field type="DRAWABLE" name="drawable" />
511 <field type="CARD32" name="num_aliases" />
512 <field type="CARD32" name="num_filters" />
514 <list type="CARD16" name="aliases">
515 <fieldref>num_aliases</fieldref>
517 <list type="STR" name="filters">
518 <fieldref>num_filters</fieldref>
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>
529 <list type="FIXED" name="values" />
532 <!-- new in version 0.8 -->
534 <struct name="ANIMCURSORELT">
535 <field type="CURSOR" name="cursor" />
536 <field type="CARD32" name="delay" />
539 <request name="CreateAnimCursor" opcode="31">
540 <field type="CURSOR" name="cid" />
541 <list type="ANIMCURSORELT" name="cursors" />
544 <!-- new in version 0.9 -->
546 <struct name="SPANFIX">
547 <field type="FIXED" name="l" />
548 <field type="FIXED" name="r" />
549 <field type="FIXED" name="y" />
553 <field type="SPANFIX" name="top" />
554 <field type="SPANFIX" name="bot" />
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" />
564 <!-- new in version 0.10 -->
566 <request name="CreateSolidFill" opcode="33">
567 <field type="PICTURE" name="picture" />
568 <field type="COLOR" name="color" />
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" />
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" />
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" />