LCOV - code coverage report
Current view: top level - gfx/cairo/cairo/src - cairo-xlib-xrender-private.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 4 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 4 0.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.13