Changes.
[cairo/gpu.git] / src / cairo-xlib-xrender-private.h
blobeee585cc4d79fbe7bf7721de9d6a0dca6a4e4f4a
1 /* Cairo - a vector graphics library with display and print output
3 * Copyright © 2007 Red Hat, Inc.
5 * This library is free software; you can redistribute it and/or
6 * modify it either under the terms of the GNU Lesser General Public
7 * License version 2.1 as published by the Free Software Foundation
8 * (the "LGPL") or, at your option, under the terms of the Mozilla
9 * Public License Version 1.1 (the "MPL"). If you do not alter this
10 * notice, a recipient may use your version of this file under either
11 * the MPL or the LGPL.
13 * You should have received a copy of the LGPL along with this library
14 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 * You should have received a copy of the MPL along with this library
17 * in the file COPYING-MPL-1.1
19 * The contents of this file are subject to the Mozilla Public License
20 * Version 1.1 (the "License"); you may not use this file except in
21 * compliance with the License. You may obtain a copy of the License at
22 * http://www.mozilla.org/MPL/
24 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
25 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
26 * the specific language governing rights and limitations.
28 * The Original Code is the cairo graphics library.
30 * The Initial Developer of the Original Code is Red Hat, Inc.
33 #ifndef CAIRO_XLIB_XRENDER_PRIVATE_H
34 #define CAIRO_XLIB_XRENDER_PRIVATE_H
36 #include "cairo-features.h"
37 #include "cairo-compiler-private.h"
39 #include <X11/Xlib.h>
41 #if CAIRO_HAS_XLIB_XRENDER_SURFACE
43 #include "cairo-xlib-xrender.h"
45 #include <X11/extensions/Xrender.h>
46 #include <X11/extensions/renderproto.h>
48 /* We require Render >= 0.6. The following defines were only added in
49 * 0.10. Make sure they are defined.
52 /* Filters included in 0.10 */
53 #ifndef FilterConvolution
54 #define FilterConvolution "convolution"
55 #endif
57 /* Extended repeat attributes included in 0.10 */
58 #ifndef RepeatNone
59 #define RepeatNone 0
60 #define RepeatNormal 1
61 #define RepeatPad 2
62 #define RepeatReflect 3
63 #endif
66 #else /* !CAIRO_HAS_XLIB_XRENDER_SURFACE */
68 /* Provide dummy symbols and macros to get it compile and take the fallback
69 * route, just like as if Xrender is not available in the server at run-time. */
72 /* Functions */
74 /* As it happens, it is the case that, all libxrender functions
75 * take a pointer as first argument */
77 __attribute__((__unused__)) static void _void_consume (void *p, ...) { }
78 __attribute__((__unused__)) static void * _voidp_consume (void *p, ...) { return (void *)0; }
79 __attribute__((__unused__)) static int _int_consume (void *p, ...) { return 0; }
80 __attribute__((__unused__)) static void _void_consume_free (Display *p, XID n) { }
82 #define XRenderQueryExtension _int_consume
83 #define XRenderQueryVersion _int_consume
84 #define XRenderQueryFormats _int_consume
85 #define XRenderQuerySubpixelOrder _int_consume
86 #define XRenderSetSubpixelOrder _int_consume
87 #define XRenderFindVisualFormat _voidp_consume
88 #define XRenderFindFormat _voidp_consume
89 #define XRenderFindStandardFormat _voidp_consume
90 #define XRenderQueryPictIndexValues _voidp_consume
91 #define XRenderCreatePicture _int_consume
92 #define XRenderChangePicture _void_consume
93 #define XRenderSetPictureClipRectangles _void_consume
94 #define XRenderSetPictureClipRegion _void_consume
95 #define XRenderSetPictureTransform _void_consume
96 #define XRenderFreePicture _void_consume_free
97 #define XRenderComposite _void_consume
98 #define XRenderCreateGlyphSet _int_consume
99 #define XRenderReferenceGlyphSet _int_consume
100 #define XRenderFreeGlyphSet _void_consume_free
101 #define XRenderAddGlyphs _void_consume
102 #define XRenderFreeGlyphs _void_consume
103 #define XRenderCompositeString8 _void_consume
104 #define XRenderCompositeString16 _void_consume
105 #define XRenderCompositeString32 _void_consume
106 #define XRenderCompositeText8 (cairo_xrender_composite_text_func_t) _void_consume
107 #define XRenderCompositeText16 _void_consume
108 #define XRenderCompositeText32 _void_consume
109 #define XRenderFillRectangle _void_consume
110 #define XRenderFillRectangles _void_consume
111 #define XRenderCompositeTrapezoids _void_consume
112 #define XRenderCompositeTriangles _void_consume
113 #define XRenderCompositeTriStrip _void_consume
114 #define XRenderCompositeTriFan _void_consume
115 #define XRenderCompositeDoublePoly _void_consume
116 #define XRenderParseColor _int_consume
117 #define XRenderCreateCursor _int_consume
118 #define XRenderQueryFilters _voidp_consume
119 #define XRenderSetPictureFilter _void_consume
120 #define XRenderCreateAnimCursor _int_consume
121 #define XRenderAddTraps _void_consume
122 #define XRenderCreateSolidFill _int_consume
123 #define XRenderCreateLinearGradient _int_consume
124 #define XRenderCreateRadialGradient _int_consume
125 #define XRenderCreateConicalGradient _int_consume
127 #define cairo_xlib_surface_create_with_xrender_format _voidp_consume
131 /* The rest of this file is copied from various Xrender header files, with
132 * the following copyright/license information:
134 * Copyright © 2000 SuSE, Inc.
136 * Permission to use, copy, modify, distribute, and sell this software and its
137 * documentation for any purpose is hereby granted without fee, provided that
138 * the above copyright notice appear in all copies and that both that
139 * copyright notice and this permission notice appear in supporting
140 * documentation, and that the name of SuSE not be used in advertising or
141 * publicity pertaining to distribution of the software without specific,
142 * written prior permission. SuSE makes no representations about the
143 * suitability of this software for any purpose. It is provided "as is"
144 * without express or implied warranty.
146 * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
147 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
148 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
149 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
150 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
151 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
153 * Author: Keith Packard, SuSE, Inc.
157 /* Copied from X11/extensions/render.h */
159 typedef unsigned long Glyph;
160 typedef unsigned long GlyphSet;
161 typedef unsigned long Picture;
162 typedef unsigned long PictFormat;
164 #define BadPictFormat 0
165 #define BadPicture 1
166 #define BadPictOp 2
167 #define BadGlyphSet 3
168 #define BadGlyph 4
169 #define RenderNumberErrors (BadGlyph+1)
171 #define PictTypeIndexed 0
172 #define PictTypeDirect 1
174 #define PictOpMinimum 0
175 #define PictOpClear 0
176 #define PictOpSrc 1
177 #define PictOpDst 2
178 #define PictOpOver 3
179 #define PictOpOverReverse 4
180 #define PictOpIn 5
181 #define PictOpInReverse 6
182 #define PictOpOut 7
183 #define PictOpOutReverse 8
184 #define PictOpAtop 9
185 #define PictOpAtopReverse 10
186 #define PictOpXor 11
187 #define PictOpAdd 12
188 #define PictOpSaturate 13
189 #define PictOpMaximum 13
192 * Operators only available in version 0.2
194 #define PictOpDisjointMinimum 0x10
195 #define PictOpDisjointClear 0x10
196 #define PictOpDisjointSrc 0x11
197 #define PictOpDisjointDst 0x12
198 #define PictOpDisjointOver 0x13
199 #define PictOpDisjointOverReverse 0x14
200 #define PictOpDisjointIn 0x15
201 #define PictOpDisjointInReverse 0x16
202 #define PictOpDisjointOut 0x17
203 #define PictOpDisjointOutReverse 0x18
204 #define PictOpDisjointAtop 0x19
205 #define PictOpDisjointAtopReverse 0x1a
206 #define PictOpDisjointXor 0x1b
207 #define PictOpDisjointMaximum 0x1b
209 #define PictOpConjointMinimum 0x20
210 #define PictOpConjointClear 0x20
211 #define PictOpConjointSrc 0x21
212 #define PictOpConjointDst 0x22
213 #define PictOpConjointOver 0x23
214 #define PictOpConjointOverReverse 0x24
215 #define PictOpConjointIn 0x25
216 #define PictOpConjointInReverse 0x26
217 #define PictOpConjointOut 0x27
218 #define PictOpConjointOutReverse 0x28
219 #define PictOpConjointAtop 0x29
220 #define PictOpConjointAtopReverse 0x2a
221 #define PictOpConjointXor 0x2b
222 #define PictOpConjointMaximum 0x2b
224 #define PolyEdgeSharp 0
225 #define PolyEdgeSmooth 1
227 #define PolyModePrecise 0
228 #define PolyModeImprecise 1
230 #define CPRepeat (1 << 0)
231 #define CPAlphaMap (1 << 1)
232 #define CPAlphaXOrigin (1 << 2)
233 #define CPAlphaYOrigin (1 << 3)
234 #define CPClipXOrigin (1 << 4)
235 #define CPClipYOrigin (1 << 5)
236 #define CPClipMask (1 << 6)
237 #define CPGraphicsExposure (1 << 7)
238 #define CPSubwindowMode (1 << 8)
239 #define CPPolyEdge (1 << 9)
240 #define CPPolyMode (1 << 10)
241 #define CPDither (1 << 11)
242 #define CPComponentAlpha (1 << 12)
243 #define CPLastBit 12
245 /* Filters included in 0.6 */
246 #define FilterNearest "nearest"
247 #define FilterBilinear "bilinear"
248 /* Filters included in 0.10 */
249 #define FilterConvolution "convolution"
251 #define FilterFast "fast"
252 #define FilterGood "good"
253 #define FilterBest "best"
255 #define FilterAliasNone -1
257 /* Subpixel orders included in 0.6 */
258 #define SubPixelUnknown 0
259 #define SubPixelHorizontalRGB 1
260 #define SubPixelHorizontalBGR 2
261 #define SubPixelVerticalRGB 3
262 #define SubPixelVerticalBGR 4
263 #define SubPixelNone 5
265 /* Extended repeat attributes included in 0.10 */
266 #define RepeatNone 0
267 #define RepeatNormal 1
268 #define RepeatPad 2
269 #define RepeatReflect 3
273 /* Copied from X11/extensions/Xrender.h */
275 typedef struct {
276 short red;
277 short redMask;
278 short green;
279 short greenMask;
280 short blue;
281 short blueMask;
282 short alpha;
283 short alphaMask;
284 } XRenderDirectFormat;
286 typedef struct {
287 PictFormat id;
288 int type;
289 int depth;
290 XRenderDirectFormat direct;
291 Colormap colormap;
292 } XRenderPictFormat;
294 #define PictFormatID (1 << 0)
295 #define PictFormatType (1 << 1)
296 #define PictFormatDepth (1 << 2)
297 #define PictFormatRed (1 << 3)
298 #define PictFormatRedMask (1 << 4)
299 #define PictFormatGreen (1 << 5)
300 #define PictFormatGreenMask (1 << 6)
301 #define PictFormatBlue (1 << 7)
302 #define PictFormatBlueMask (1 << 8)
303 #define PictFormatAlpha (1 << 9)
304 #define PictFormatAlphaMask (1 << 10)
305 #define PictFormatColormap (1 << 11)
307 typedef struct _XRenderPictureAttributes {
308 int repeat;
309 Picture alpha_map;
310 int alpha_x_origin;
311 int alpha_y_origin;
312 int clip_x_origin;
313 int clip_y_origin;
314 Pixmap clip_mask;
315 Bool graphics_exposures;
316 int subwindow_mode;
317 int poly_edge;
318 int poly_mode;
319 Atom dither;
320 Bool component_alpha;
321 } XRenderPictureAttributes;
323 typedef struct {
324 unsigned short red;
325 unsigned short green;
326 unsigned short blue;
327 unsigned short alpha;
328 } XRenderColor;
330 typedef struct _XGlyphInfo {
331 unsigned short width;
332 unsigned short height;
333 short x;
334 short y;
335 short xOff;
336 short yOff;
337 } XGlyphInfo;
339 typedef struct _XGlyphElt8 {
340 GlyphSet glyphset;
341 _Xconst char *chars;
342 int nchars;
343 int xOff;
344 int yOff;
345 } XGlyphElt8;
347 typedef struct _XGlyphElt16 {
348 GlyphSet glyphset;
349 _Xconst unsigned short *chars;
350 int nchars;
351 int xOff;
352 int yOff;
353 } XGlyphElt16;
355 typedef struct _XGlyphElt32 {
356 GlyphSet glyphset;
357 _Xconst unsigned int *chars;
358 int nchars;
359 int xOff;
360 int yOff;
361 } XGlyphElt32;
363 typedef double XDouble;
365 typedef struct _XPointDouble {
366 XDouble x, y;
367 } XPointDouble;
369 #define XDoubleToFixed(f) ((XFixed) ((f) * 65536))
370 #define XFixedToDouble(f) (((XDouble) (f)) / 65536)
372 typedef int XFixed;
374 typedef struct _XPointFixed {
375 XFixed x, y;
376 } XPointFixed;
378 typedef struct _XLineFixed {
379 XPointFixed p1, p2;
380 } XLineFixed;
382 typedef struct _XTriangle {
383 XPointFixed p1, p2, p3;
384 } XTriangle;
386 typedef struct _XCircle {
387 XFixed x;
388 XFixed y;
389 XFixed radius;
390 } XCircle;
392 typedef struct _XTrapezoid {
393 XFixed top, bottom;
394 XLineFixed left, right;
395 } XTrapezoid;
397 typedef struct _XTransform {
398 XFixed matrix[3][3];
399 } XTransform;
401 typedef struct _XFilters {
402 int nfilter;
403 char **filter;
404 int nalias;
405 short *alias;
406 } XFilters;
408 typedef struct _XIndexValue {
409 unsigned long pixel;
410 unsigned short red, green, blue, alpha;
411 } XIndexValue;
413 typedef struct _XAnimCursor {
414 Cursor cursor;
415 unsigned long delay;
416 } XAnimCursor;
418 typedef struct _XSpanFix {
419 XFixed left, right, y;
420 } XSpanFix;
422 typedef struct _XTrap {
423 XSpanFix top, bottom;
424 } XTrap;
426 typedef struct _XLinearGradient {
427 XPointFixed p1;
428 XPointFixed p2;
429 } XLinearGradient;
431 typedef struct _XRadialGradient {
432 XCircle inner;
433 XCircle outer;
434 } XRadialGradient;
436 typedef struct _XConicalGradient {
437 XPointFixed center;
438 XFixed angle; /* in degrees */
439 } XConicalGradient;
441 #define PictStandardARGB32 0
442 #define PictStandardRGB24 1
443 #define PictStandardA8 2
444 #define PictStandardA4 3
445 #define PictStandardA1 4
446 #define PictStandardNUM 5
450 /* Copied from X11/extensions/renderproto.h */
452 #include <X11/Xmd.h>
454 #define Window CARD32
455 #define Drawable CARD32
456 #define Font CARD32
457 #define Pixmap CARD32
458 #define Cursor CARD32
459 #define Colormap CARD32
460 #define GContext CARD32
461 #define Atom CARD32
462 #define VisualID CARD32
463 #define Time CARD32
464 #define KeyCode CARD8
465 #define KeySym CARD32
467 #define Picture CARD32
468 #define PictFormat CARD32
469 #define Fixed INT32
470 #define Glyphset CARD32
471 #define Glyph CARD32
474 * data structures
477 typedef struct {
478 CARD16 red B16;
479 CARD16 redMask B16;
480 CARD16 green B16;
481 CARD16 greenMask B16;
482 CARD16 blue B16;
483 CARD16 blueMask B16;
484 CARD16 alpha B16;
485 CARD16 alphaMask B16;
486 } xDirectFormat;
488 #define sz_xDirectFormat 16
490 typedef struct {
491 PictFormat id B32;
492 CARD8 type;
493 CARD8 depth;
494 CARD16 pad1 B16;
495 xDirectFormat direct;
496 Colormap colormap;
497 } xPictFormInfo;
499 #define sz_xPictFormInfo 28
501 typedef struct {
502 VisualID visual;
503 PictFormat format;
504 } xPictVisual;
506 #define sz_xPictVisual 8
508 typedef struct {
509 CARD8 depth;
510 CARD8 pad1;
511 CARD16 nPictVisuals B16;
512 CARD32 pad2 B32;
513 } xPictDepth;
515 #define sz_xPictDepth 8
517 typedef struct {
518 CARD32 nDepth B32;
519 PictFormat fallback B32;
520 } xPictScreen;
522 #define sz_xPictScreen 8
524 typedef struct {
525 CARD32 pixel B32;
526 CARD16 red B16;
527 CARD16 green B16;
528 CARD16 blue B16;
529 CARD16 alpha B16;
530 } xIndexValue;
532 #define sz_xIndexValue 12
534 typedef struct {
535 CARD16 red B16;
536 CARD16 green B16;
537 CARD16 blue B16;
538 CARD16 alpha B16;
539 } xRenderColor;
541 #define sz_xRenderColor 8
543 typedef struct {
544 Fixed x B32;
545 Fixed y B32;
546 } xPointFixed;
548 #define sz_xPointFixed 8
550 typedef struct {
551 xPointFixed p1;
552 xPointFixed p2;
553 } xLineFixed;
555 #define sz_xLineFixed 16
557 typedef struct {
558 xPointFixed p1, p2, p3;
559 } xTriangle;
561 #define sz_xTriangle 24
563 typedef struct {
564 Fixed top B32;
565 Fixed bottom B32;
566 xLineFixed left;
567 xLineFixed right;
568 } xTrapezoid;
570 #define sz_xTrapezoid 40
572 typedef struct {
573 CARD16 width B16;
574 CARD16 height B16;
575 INT16 x B16;
576 INT16 y B16;
577 INT16 xOff B16;
578 INT16 yOff B16;
579 } xGlyphInfo;
581 #define sz_xGlyphInfo 12
583 typedef struct {
584 CARD8 len;
585 CARD8 pad1;
586 CARD16 pad2;
587 INT16 deltax;
588 INT16 deltay;
589 } xGlyphElt;
591 #define sz_xGlyphElt 8
593 typedef struct {
594 Fixed l, r, y;
595 } xSpanFix;
597 #define sz_xSpanFix 12
599 typedef struct {
600 xSpanFix top, bot;
601 } xTrap;
603 #define sz_xTrap 24
606 * requests and replies
608 typedef struct {
609 CARD8 reqType;
610 CARD8 renderReqType;
611 CARD16 length B16;
612 CARD32 majorVersion B32;
613 CARD32 minorVersion B32;
614 } xRenderQueryVersionReq;
616 #define sz_xRenderQueryVersionReq 12
618 typedef struct {
619 BYTE type; /* X_Reply */
620 BYTE pad1;
621 CARD16 sequenceNumber B16;
622 CARD32 length B32;
623 CARD32 majorVersion B32;
624 CARD32 minorVersion B32;
625 CARD32 pad2 B32;
626 CARD32 pad3 B32;
627 CARD32 pad4 B32;
628 CARD32 pad5 B32;
629 } xRenderQueryVersionReply;
631 #define sz_xRenderQueryVersionReply 32
633 typedef struct {
634 CARD8 reqType;
635 CARD8 renderReqType;
636 CARD16 length B16;
637 } xRenderQueryPictFormatsReq;
639 #define sz_xRenderQueryPictFormatsReq 4
641 typedef struct {
642 BYTE type; /* X_Reply */
643 BYTE pad1;
644 CARD16 sequenceNumber B16;
645 CARD32 length B32;
646 CARD32 numFormats B32;
647 CARD32 numScreens B32;
648 CARD32 numDepths B32;
649 CARD32 numVisuals B32;
650 CARD32 numSubpixel B32; /* Version 0.6 */
651 CARD32 pad5 B32;
652 } xRenderQueryPictFormatsReply;
654 #define sz_xRenderQueryPictFormatsReply 32
656 typedef struct {
657 CARD8 reqType;
658 CARD8 renderReqType;
659 CARD16 length B16;
660 PictFormat format B32;
661 } xRenderQueryPictIndexValuesReq;
663 #define sz_xRenderQueryPictIndexValuesReq 8
665 typedef struct {
666 BYTE type; /* X_Reply */
667 BYTE pad1;
668 CARD16 sequenceNumber B16;
669 CARD32 length B32;
670 CARD32 numIndexValues;
671 CARD32 pad2 B32;
672 CARD32 pad3 B32;
673 CARD32 pad4 B32;
674 CARD32 pad5 B32;
675 CARD32 pad6 B32;
676 } xRenderQueryPictIndexValuesReply;
678 #define sz_xRenderQueryPictIndexValuesReply 32
680 typedef struct {
681 CARD8 reqType;
682 CARD8 renderReqType;
683 CARD16 length B16;
684 Picture pid B32;
685 Drawable drawable B32;
686 PictFormat format B32;
687 CARD32 mask B32;
688 } xRenderCreatePictureReq;
690 #define sz_xRenderCreatePictureReq 20
692 typedef struct {
693 CARD8 reqType;
694 CARD8 renderReqType;
695 CARD16 length B16;
696 Picture picture B32;
697 CARD32 mask B32;
698 } xRenderChangePictureReq;
700 #define sz_xRenderChangePictureReq 12
702 typedef struct {
703 CARD8 reqType;
704 CARD8 renderReqType;
705 CARD16 length B16;
706 Picture picture B32;
707 INT16 xOrigin B16;
708 INT16 yOrigin B16;
709 } xRenderSetPictureClipRectanglesReq;
711 #define sz_xRenderSetPictureClipRectanglesReq 12
713 typedef struct {
714 CARD8 reqType;
715 CARD8 renderReqType;
716 CARD16 length B16;
717 Picture picture B32;
718 } xRenderFreePictureReq;
720 #define sz_xRenderFreePictureReq 8
722 typedef struct {
723 CARD8 reqType;
724 CARD8 renderReqType;
725 CARD16 length B16;
726 CARD8 op;
727 CARD8 pad1;
728 CARD16 pad2 B16;
729 Picture src B32;
730 Picture mask B32;
731 Picture dst B32;
732 INT16 xSrc B16;
733 INT16 ySrc B16;
734 INT16 xMask B16;
735 INT16 yMask B16;
736 INT16 xDst B16;
737 INT16 yDst B16;
738 CARD16 width B16;
739 CARD16 height B16;
740 } xRenderCompositeReq;
742 #define sz_xRenderCompositeReq 36
744 typedef struct {
745 CARD8 reqType;
746 CARD8 renderReqType;
747 CARD16 length B16;
748 Picture src B32;
749 Picture dst B32;
750 CARD32 colorScale B32;
751 CARD32 alphaScale B32;
752 INT16 xSrc B16;
753 INT16 ySrc B16;
754 INT16 xDst B16;
755 INT16 yDst B16;
756 CARD16 width B16;
757 CARD16 height B16;
758 } xRenderScaleReq;
760 #define sz_xRenderScaleReq 32
762 typedef struct {
763 CARD8 reqType;
764 CARD8 renderReqType;
765 CARD16 length B16;
766 CARD8 op;
767 CARD8 pad1;
768 CARD16 pad2 B16;
769 Picture src B32;
770 Picture dst B32;
771 PictFormat maskFormat B32;
772 INT16 xSrc B16;
773 INT16 ySrc B16;
774 } xRenderTrapezoidsReq;
776 #define sz_xRenderTrapezoidsReq 24
778 typedef struct {
779 CARD8 reqType;
780 CARD8 renderReqType;
781 CARD16 length B16;
782 CARD8 op;
783 CARD8 pad1;
784 CARD16 pad2 B16;
785 Picture src B32;
786 Picture dst B32;
787 PictFormat maskFormat B32;
788 INT16 xSrc B16;
789 INT16 ySrc B16;
790 } xRenderTrianglesReq;
792 #define sz_xRenderTrianglesReq 24
794 typedef struct {
795 CARD8 reqType;
796 CARD8 renderReqType;
797 CARD16 length B16;
798 CARD8 op;
799 CARD8 pad1;
800 CARD16 pad2 B16;
801 Picture src B32;
802 Picture dst B32;
803 PictFormat maskFormat B32;
804 INT16 xSrc B16;
805 INT16 ySrc B16;
806 } xRenderTriStripReq;
808 #define sz_xRenderTriStripReq 24
810 typedef struct {
811 CARD8 reqType;
812 CARD8 renderReqType;
813 CARD16 length B16;
814 CARD8 op;
815 CARD8 pad1;
816 CARD16 pad2 B16;
817 Picture src B32;
818 Picture dst B32;
819 PictFormat maskFormat B32;
820 INT16 xSrc B16;
821 INT16 ySrc B16;
822 } xRenderTriFanReq;
824 #define sz_xRenderTriFanReq 24
826 typedef struct {
827 CARD8 reqType;
828 CARD8 renderReqType;
829 CARD16 length B16;
830 Glyphset gsid B32;
831 PictFormat format B32;
832 } xRenderCreateGlyphSetReq;
834 #define sz_xRenderCreateGlyphSetReq 12
836 typedef struct {
837 CARD8 reqType;
838 CARD8 renderReqType;
839 CARD16 length B16;
840 Glyphset gsid B32;
841 Glyphset existing B32;
842 } xRenderReferenceGlyphSetReq;
844 #define sz_xRenderReferenceGlyphSetReq 24
846 typedef struct {
847 CARD8 reqType;
848 CARD8 renderReqType;
849 CARD16 length B16;
850 Glyphset glyphset B32;
851 } xRenderFreeGlyphSetReq;
853 #define sz_xRenderFreeGlyphSetReq 8
855 typedef struct {
856 CARD8 reqType;
857 CARD8 renderReqType;
858 CARD16 length B16;
859 Glyphset glyphset B32;
860 CARD32 nglyphs;
861 } xRenderAddGlyphsReq;
863 #define sz_xRenderAddGlyphsReq 12
865 typedef struct {
866 CARD8 reqType;
867 CARD8 renderReqType;
868 CARD16 length B16;
869 Glyphset glyphset B32;
870 } xRenderFreeGlyphsReq;
872 #define sz_xRenderFreeGlyphsReq 8
874 typedef struct {
875 CARD8 reqType;
876 CARD8 renderReqType;
877 CARD16 length B16;
878 CARD8 op;
879 CARD8 pad1;
880 CARD16 pad2 B16;
881 Picture src B32;
882 Picture dst B32;
883 PictFormat maskFormat B32;
884 Glyphset glyphset B32;
885 INT16 xSrc B16;
886 INT16 ySrc B16;
887 } xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req,
888 xRenderCompositeGlyphs16Req, xRenderCompositeGlyphs32Req;
890 #define sz_xRenderCompositeGlyphs8Req 28
891 #define sz_xRenderCompositeGlyphs16Req 28
892 #define sz_xRenderCompositeGlyphs32Req 28
894 /* 0.1 and higher */
896 typedef struct {
897 CARD8 reqType;
898 CARD8 renderReqType;
899 CARD16 length B16;
900 CARD8 op;
901 CARD8 pad1;
902 CARD16 pad2 B16;
903 Picture dst B32;
904 xRenderColor color;
905 } xRenderFillRectanglesReq;
907 #define sz_xRenderFillRectanglesReq 20
909 /* 0.5 and higher */
911 typedef struct {
912 CARD8 reqType;
913 CARD8 renderReqType;
914 CARD16 length B16;
915 Cursor cid B32;
916 Picture src B32;
917 CARD16 x B16;
918 CARD16 y B16;
919 } xRenderCreateCursorReq;
921 #define sz_xRenderCreateCursorReq 16
923 /* 0.6 and higher */
926 * This can't use an array because 32-bit values may be in bitfields
928 typedef struct {
929 Fixed matrix11 B32;
930 Fixed matrix12 B32;
931 Fixed matrix13 B32;
932 Fixed matrix21 B32;
933 Fixed matrix22 B32;
934 Fixed matrix23 B32;
935 Fixed matrix31 B32;
936 Fixed matrix32 B32;
937 Fixed matrix33 B32;
938 } xRenderTransform;
940 #define sz_xRenderTransform 36
942 typedef struct {
943 CARD8 reqType;
944 CARD8 renderReqType;
945 CARD16 length B16;
946 Picture picture B32;
947 xRenderTransform transform;
948 } xRenderSetPictureTransformReq;
950 #define sz_xRenderSetPictureTransformReq 44
952 typedef struct {
953 CARD8 reqType;
954 CARD8 renderReqType;
955 CARD16 length B16;
956 Drawable drawable B32;
957 } xRenderQueryFiltersReq;
959 #define sz_xRenderQueryFiltersReq 8
961 typedef struct {
962 BYTE type; /* X_Reply */
963 BYTE pad1;
964 CARD16 sequenceNumber B16;
965 CARD32 length B32;
966 CARD32 numAliases B32; /* LISTofCARD16 */
967 CARD32 numFilters B32; /* LISTofSTRING8 */
968 CARD32 pad2 B32;
969 CARD32 pad3 B32;
970 CARD32 pad4 B32;
971 CARD32 pad5 B32;
972 } xRenderQueryFiltersReply;
974 #define sz_xRenderQueryFiltersReply 32
976 typedef struct {
977 CARD8 reqType;
978 CARD8 renderReqType;
979 CARD16 length B16;
980 Picture picture B32;
981 CARD16 nbytes B16; /* number of bytes in name */
982 CARD16 pad B16;
983 } xRenderSetPictureFilterReq;
985 #define sz_xRenderSetPictureFilterReq 12
987 /* 0.8 and higher */
989 typedef struct {
990 Cursor cursor B32;
991 CARD32 delay B32;
992 } xAnimCursorElt;
994 #define sz_xAnimCursorElt 8
996 typedef struct {
997 CARD8 reqType;
998 CARD8 renderReqType;
999 CARD16 length B16;
1000 Cursor cid B32;
1001 } xRenderCreateAnimCursorReq;
1003 #define sz_xRenderCreateAnimCursorReq 8
1005 /* 0.9 and higher */
1007 typedef struct {
1008 CARD8 reqType;
1009 CARD8 renderReqType;
1010 CARD16 length B16;
1011 Picture picture;
1012 INT16 xOff B16;
1013 INT16 yOff B16;
1014 } xRenderAddTrapsReq;
1016 #define sz_xRenderAddTrapsReq 12
1018 /* 0.10 and higher */
1020 typedef struct {
1021 CARD8 reqType;
1022 CARD8 renderReqType;
1023 CARD16 length B16;
1024 Picture pid B32;
1025 xRenderColor color;
1026 } xRenderCreateSolidFillReq;
1028 #define sz_xRenderCreateSolidFillReq 16
1030 typedef struct {
1031 CARD8 reqType;
1032 CARD8 renderReqType;
1033 CARD16 length B16;
1034 Picture pid B32;
1035 xPointFixed p1;
1036 xPointFixed p2;
1037 CARD32 nStops;
1038 } xRenderCreateLinearGradientReq;
1040 #define sz_xRenderCreateLinearGradientReq 28
1042 typedef struct {
1043 CARD8 reqType;
1044 CARD8 renderReqType;
1045 CARD16 length B16;
1046 Picture pid B32;
1047 xPointFixed inner;
1048 xPointFixed outer;
1049 Fixed inner_radius;
1050 Fixed outer_radius;
1051 CARD32 nStops;
1052 } xRenderCreateRadialGradientReq;
1054 #define sz_xRenderCreateRadialGradientReq 36
1056 typedef struct {
1057 CARD8 reqType;
1058 CARD8 renderReqType;
1059 CARD16 length B16;
1060 Picture pid B32;
1061 xPointFixed center;
1062 Fixed angle; /* in degrees */
1063 CARD32 nStops;
1064 } xRenderCreateConicalGradientReq;
1066 #define sz_xRenderCreateConicalGradientReq 24
1068 #undef Window
1069 #undef Drawable
1070 #undef Font
1071 #undef Pixmap
1072 #undef Cursor
1073 #undef Colormap
1074 #undef GContext
1075 #undef Atom
1076 #undef VisualID
1077 #undef Time
1078 #undef KeyCode
1079 #undef KeySym
1081 #undef Picture
1082 #undef PictFormat
1083 #undef Fixed
1084 #undef Glyphset
1085 #undef Glyph
1088 #endif /* CAIRO_HAS_XLIB_XRENDER_SURFACE */
1090 #endif /* CAIRO_XLIB_XRENDER_PRIVATE_H */