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 major-version="0" minor-version="11">
9 <!-- supports version 0.11 -->
11 <import>xproto</import>
13 <enum name="PictType">
14 <item name="Indexed" />
15 <item name="Direct" />
22 <!-- Disjoint* and Conjoint* are new in version 0.2 -->
23 <!-- PDF blend modes are new in version 0.11 -->
29 <item name="OverReverse" />
31 <item name="InReverse" />
33 <item name="OutReverse" />
35 <item name="AtopReverse" />
38 <item name="Saturate" />
40 <item name="DisjointClear"><value>16</value></item>
41 <item name="DisjointSrc" />
42 <item name="DisjointDst" />
43 <item name="DisjointOver" />
44 <item name="DisjointOverReverse" />
45 <item name="DisjointIn" />
46 <item name="DisjointInReverse" />
47 <item name="DisjointOut" />
48 <item name="DisjointOutReverse" />
49 <item name="DisjointAtop" />
50 <item name="DisjointAtopReverse" />
51 <item name="DisjointXor" />
53 <item name="ConjointClear"><value>32</value></item>
54 <item name="ConjointSrc" />
55 <item name="ConjointDst" />
56 <item name="ConjointOver" />
57 <item name="ConjointOverReverse" />
58 <item name="ConjointIn" />
59 <item name="ConjointInReverse" />
60 <item name="ConjointOut" />
61 <item name="ConjointOutReverse" />
62 <item name="ConjointAtop" />
63 <item name="ConjointAtopReverse" />
64 <item name="ConjointXor" />
66 <!-- PDF blend modes are new in version 0.11 -->
67 <item name="Multiply"><value>48</value></item>
68 <item name="Screen" />
69 <item name="Overlay" />
70 <item name="Darken" />
71 <item name="Lighten" />
72 <item name="ColorDodge" />
73 <item name="ColorBurn" />
74 <item name="HardLight" />
75 <item name="SoftLight" />
76 <item name="Difference" />
77 <item name="Exclusion" />
78 <item name="HSLHue" />
79 <item name="HSLSaturation" />
80 <item name="HSLColor" />
81 <item name="HSLLuminosity" />
84 <enum name="PolyEdge">
86 <item name="Smooth" />
89 <enum name="PolyMode">
90 <item name="Precise" />
91 <item name="Imprecise" />
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>
110 <enum name="SubPixel">
111 <item name="Unknown" />
112 <item name="HorizontalRGB" />
113 <item name="HorizontalBGR" />
114 <item name="VerticalRGB" />
115 <item name="VerticalBGR" />
119 <!-- Extended repeat attributes introduced in 0.10 -->
122 <item name="Normal" />
124 <item name="Reflect" />
127 <typedef oldname="CARD32" newname="GLYPH" />
128 <xidtype name="GLYPHSET" />
130 <xidtype name="PICTURE" />
131 <xidtype name="PICTFORMAT" />
133 <typedef oldname="INT32" newname="FIXED" />
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" />
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" />
152 <struct name="PICTFORMINFO">
153 <field type="PICTFORMAT" name="id" />
154 <field type="CARD8" name="type" enum="PictType" />
155 <field type="CARD8" name="depth" />
157 <field type="DIRECTFORMAT" name="direct" />
158 <field type="COLORMAP" name="colormap" />
161 <struct name="PICTVISUAL">
162 <field type="VISUALID" name="visual" />
163 <field type="PICTFORMAT" name="format" />
166 <struct name="PICTDEPTH">
167 <field type="CARD8" name="depth" />
169 <field type="CARD16" name="num_visuals" />
171 <list type="PICTVISUAL" name="visuals">
172 <fieldref>num_visuals</fieldref>
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>
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" />
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" />
199 <struct name="POINTFIX">
200 <field type="FIXED" name="x" />
201 <field type="FIXED" name="y" />
204 <struct name="LINEFIX">
205 <field type="POINTFIX" name="p1" />
206 <field type="POINTFIX" name="p2" />
209 <struct name="TRIANGLE">
210 <field type="POINTFIX" name="p1" />
211 <field type="POINTFIX" name="p2" />
212 <field type="POINTFIX" name="p3" />
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" />
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" />
232 <request name="QueryVersion" opcode="0">
233 <field type="CARD32" name="client_major_version" />
234 <field type="CARD32" name="client_minor_version" />
237 <field type="CARD32" name="major_version" />
238 <field type="CARD32" name="minor_version" />
243 <request name="QueryPictFormats" opcode="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 -->
252 <list type="PICTFORMINFO" name="formats">
253 <fieldref>num_formats</fieldref>
255 <list type="PICTSCREEN" name="screens">
256 <fieldref>num_screens</fieldref>
258 <list type="CARD32" name="subpixels" enum="SubPixel" >
259 <fieldref>num_subpixel</fieldref>
264 <!-- from version 0.7 -->
265 <request name="QueryPictIndexValues" opcode="2">
266 <field type="PICTFORMAT" name="format" />
269 <field type="CARD32" name="num_values" />
271 <list type="INDEXVALUE" name="values">
272 <fieldref>num_values</fieldref>
277 <!-- opcode 3 reserved for QueryDithers -->
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 <valueparam value-mask-type="CARD32"
284 value-mask-name="value_mask"
285 value-list-name="value_list" />
288 <request name="ChangePicture" opcode="5">
289 <field type="PICTURE" name="picture" />
290 <valueparam value-mask-type="CARD32"
291 value-mask-name="value_mask"
292 value-list-name="value_list" />
295 <request name="SetPictureClipRectangles" opcode="6">
296 <field type="PICTURE" name="picture" />
297 <field type="INT16" name="clip_x_origin" />
298 <field type="INT16" name="clip_y_origin" />
299 <list type="RECTANGLE" name="rectangles" />
302 <request name="FreePicture" opcode="7">
303 <field type="PICTURE" name="picture" />
306 <request name="Composite" opcode="8">
307 <field type="CARD8" name="op" enum="PictOp" />
309 <field type="PICTURE" name="src" />
310 <field type="PICTURE" name="mask" altenum="Picture" />
311 <field type="PICTURE" name="dst" />
312 <field type="INT16" name="src_x" />
313 <field type="INT16" name="src_y" />
314 <field type="INT16" name="mask_x" />
315 <field type="INT16" name="mask_y" />
316 <field type="INT16" name="dst_x" />
317 <field type="INT16" name="dst_y" />
318 <field type="CARD16" name="width" />
319 <field type="CARD16" name="height" />
322 <!-- opcode 9 reserved for Scale -->
324 <request name="Trapezoids" opcode="10">
325 <field type="CARD8" name="op" enum="PictOp" />
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="TRAPEZOID" name="traps" />
335 <request name="Triangles" opcode="11">
336 <field type="CARD8" name="op" enum="PictOp" />
338 <field type="PICTURE" name="src" />
339 <field type="PICTURE" name="dst" />
340 <field type="PICTFORMAT" name="mask_format" />
341 <field type="INT16" name="src_x" />
342 <field type="INT16" name="src_y" />
343 <list type="TRIANGLE" name="triangles" />
346 <request name="TriStrip" opcode="12">
347 <field type="CARD8" name="op" enum="PictOp" />
349 <field type="PICTURE" name="src" />
350 <field type="PICTURE" name="dst" />
351 <field type="PICTFORMAT" name="mask_format" />
352 <field type="INT16" name="src_x" />
353 <field type="INT16" name="src_y" />
354 <list type="POINTFIX" name="points" />
357 <request name="TriFan" opcode="13">
358 <field type="CARD8" name="op" enum="PictOp" />
360 <field type="PICTURE" name="src" />
361 <field type="PICTURE" name="dst" />
362 <field type="PICTFORMAT" name="mask_format" />
363 <field type="INT16" name="src_x" />
364 <field type="INT16" name="src_y" />
365 <list type="POINTFIX" name="points" />
368 <!-- opcode 14 reserved for ColorTrapezoids -->
370 <!-- opcode 15 reserved for ColorTriangles -->
372 <!-- opcode 16 reserved for Transform -->
374 <request name="CreateGlyphSet" opcode="17">
375 <field type="GLYPHSET" name="gsid" />
376 <field type="PICTFORMAT" name="format" />
379 <request name="ReferenceGlyphSet" opcode="18">
380 <field type="GLYPHSET" name="gsid" />
381 <field type="GLYPHSET" name="existing" />
384 <request name="FreeGlyphSet" opcode="19">
385 <field type="GLYPHSET" name="glyphset" />
388 <request name="AddGlyphs" opcode="20">
389 <field type="GLYPHSET" name="glyphset" />
390 <field type="CARD32" name="glyphs_len" />
391 <list type="CARD32" name="glyphids">
392 <fieldref>glyphs_len</fieldref>
394 <list type="GLYPHINFO" name="glyphs">
395 <fieldref>glyphs_len</fieldref>
397 <list type="BYTE" name="data" />
400 <!-- opcode 21 reserved for AddGlyphsFromPicture -->
402 <request name="FreeGlyphs" opcode="22">
403 <field type="GLYPHSET" name="glyphset" />
404 <list type="GLYPH" name="glyphs" />
407 <request name="CompositeGlyphs8" opcode="23">
408 <field type="CARD8" name="op" enum="PictOp" />
410 <field type="PICTURE" name="src" />
411 <field type="PICTURE" name="dst" />
412 <field type="PICTFORMAT" name="mask_format" />
413 <field type="GLYPHSET" name="glyphset" />
414 <field type="INT16" name="src_x" />
415 <field type="INT16" name="src_y" />
416 <list type="BYTE" name="glyphcmds" />
419 <request name="CompositeGlyphs16" opcode="24">
420 <field type="CARD8" name="op" enum="PictOp" />
422 <field type="PICTURE" name="src" />
423 <field type="PICTURE" name="dst" />
424 <field type="PICTFORMAT" name="mask_format" />
425 <field type="GLYPHSET" name="glyphset" />
426 <field type="INT16" name="src_x" />
427 <field type="INT16" name="src_y" />
428 <list type="BYTE" name="glyphcmds" />
431 <request name="CompositeGlyphs32" opcode="25">
432 <field type="CARD8" name="op" enum="PictOp" />
434 <field type="PICTURE" name="src" />
435 <field type="PICTURE" name="dst" />
436 <field type="PICTFORMAT" name="mask_format" />
437 <field type="GLYPHSET" name="glyphset" />
438 <field type="INT16" name="src_x" />
439 <field type="INT16" name="src_y" />
440 <list type="BYTE" name="glyphcmds" />
443 <!-- new in version 0.1 -->
445 <request name="FillRectangles" opcode="26">
446 <field type="CARD8" name="op" enum="PictOp" />
448 <field type="PICTURE" name="dst" />
449 <field type="COLOR" name="color" />
450 <list type="RECTANGLE" name="rects" />
453 <!-- new in version 0.5 -->
455 <request name="CreateCursor" opcode="27">
456 <field type="CURSOR" name="cid" />
457 <field type="PICTURE" name="source" />
458 <field type="CARD16" name="x" />
459 <field type="CARD16" name="y" />
462 <!-- new in version 0.6 -->
464 <struct name="TRANSFORM">
465 <field type="FIXED" name="matrix11" />
466 <field type="FIXED" name="matrix12" />
467 <field type="FIXED" name="matrix13" />
468 <field type="FIXED" name="matrix21" />
469 <field type="FIXED" name="matrix22" />
470 <field type="FIXED" name="matrix23" />
471 <field type="FIXED" name="matrix31" />
472 <field type="FIXED" name="matrix32" />
473 <field type="FIXED" name="matrix33" />
476 <request name="SetPictureTransform" opcode="28">
477 <field type="PICTURE" name="picture" />
478 <field type="TRANSFORM" name="transform" />
481 <request name="QueryFilters" opcode="29">
482 <field type="DRAWABLE" name="drawable" />
485 <field type="CARD32" name="num_aliases" />
486 <field type="CARD32" name="num_filters" />
488 <list type="CARD16" name="aliases">
489 <fieldref>num_aliases</fieldref>
491 <list type="STR" name="filters">
492 <fieldref>num_filters</fieldref>
497 <request name="SetPictureFilter" opcode="30">
498 <field type="PICTURE" name="picture" />
499 <field type="CARD16" name="filter_len" />
501 <list type="char" name="filter">
502 <fieldref>filter_len</fieldref>
504 <list type="FIXED" name="values" />
507 <!-- new in version 0.8 -->
509 <struct name="ANIMCURSORELT">
510 <field type="CURSOR" name="cursor" />
511 <field type="CARD32" name="delay" />
514 <request name="CreateAnimCursor" opcode="31">
515 <field type="CURSOR" name="cid" />
516 <list type="ANIMCURSORELT" name="cursors" />
519 <!-- new in version 0.9 -->
521 <struct name="SPANFIX">
522 <field type="FIXED" name="l" />
523 <field type="FIXED" name="r" />
524 <field type="FIXED" name="y" />
528 <field type="SPANFIX" name="top" />
529 <field type="SPANFIX" name="bot" />
532 <request name="AddTraps" opcode="32">
533 <field type="PICTURE" name="picture" />
534 <field type="INT16" name="x_off" />
535 <field type="INT16" name="y_off" />
536 <list type="TRAP" name="traps" />
539 <!-- new in version 0.10 -->
541 <request name="CreateSolidFill" opcode="33">
542 <field type="PICTURE" name="picture" />
543 <field type="COLOR" name="color" />
546 <request name="CreateLinearGradient" opcode="34">
547 <field type="PICTURE" name="picture" />
548 <field type="POINTFIX" name="p1" />
549 <field type="POINTFIX" name="p2" />
550 <field type="CARD32" name="num_stops" />
551 <list type="FIXED" name="stops">
552 <fieldref>num_stops</fieldref>
554 <list type="COLOR" name="colors">
555 <fieldref>num_stops</fieldref>
559 <request name="CreateRadialGradient" opcode="35">
560 <field type="PICTURE" name="picture" />
561 <field type="POINTFIX" name="inner" />
562 <field type="POINTFIX" name="outer" />
563 <field type="FIXED" name="inner_radius" />
564 <field type="FIXED" name="outer_radius" />
565 <field type="CARD32" name="num_stops" />
566 <list type="FIXED" name="stops">
567 <fieldref>num_stops</fieldref>
569 <list type="COLOR" name="colors">
570 <fieldref>num_stops</fieldref>
574 <request name="CreateConicalGradient" opcode="36">
575 <field type="PICTURE" name="picture" />
576 <field type="POINTFIX" name="center" />
577 <field type="FIXED" name="angle" /> <!-- degrees -->
578 <field type="CARD32" name="num_stops" />
579 <list type="FIXED" name="stops">
580 <fieldref>num_stops</fieldref>
582 <list type="COLOR" name="colors">
583 <fieldref>num_stops</fieldref>