Logo Search packages:      
Sourcecode: cairo version File versions  Download package

cairo-xlib-xrender-private.h

/* Cairo - a vector graphics library with display and print output
 *
 * Copyright © 2007 Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it either under the terms of the GNU Lesser General Public
 * License version 2.1 as published by the Free Software Foundation
 * (the "LGPL") or, at your option, under the terms of the Mozilla
 * Public License Version 1.1 (the "MPL"). If you do not alter this
 * notice, a recipient may use your version of this file under either
 * the MPL or the LGPL.
 *
 * You should have received a copy of the LGPL along with this library
 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
 * You should have received a copy of the MPL along with this library
 * in the file COPYING-MPL-1.1
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.1 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
 * the specific language governing rights and limitations.
 *
 * The Original Code is the cairo graphics library.
 *
 * The Initial Developer of the Original Code is Red Hat, Inc.
 */

#ifndef CAIRO_XLIB_XRENDER_PRIVATE_H
#define CAIRO_XLIB_XRENDER_PRIVATE_H

#include "cairo-features.h"
#include "cairo-compiler-private.h"

#include <X11/Xlib.h>

/* These prototypes are used when defining interfaces missing from the
 * render headers.  As it happens, it is the case that all libxrender
 * functions take a pointer as first argument. */

__attribute__((__unused__)) static void   _void_consume        (void *p, ...)   { }
__attribute__((__unused__)) static void * _voidp_consume       (void *p, ...)   { return (void *)0; }
__attribute__((__unused__)) static int    _int_consume         (void *p, ...)   { return 0; }
__attribute__((__unused__)) static void   _void_consume_free   (Display *p, XID n) { }


#if CAIRO_HAS_XLIB_XRENDER_SURFACE

#include "cairo-xlib-xrender.h"

#include <X11/extensions/Xrender.h>
#include <X11/extensions/renderproto.h>

/* We require Render >= 0.6.  The following defines were only added in
 * 0.10.  Make sure they are defined.
 */

/* Filters included in 0.10 */
#ifndef FilterConvolution
#define FilterConvolution               "convolution"
#endif

/* Extended repeat attributes included in 0.10 */
#ifndef RepeatNone
#define RepeatNone                          0
#define RepeatNormal                        1
#define RepeatPad                           2
#define RepeatReflect                       3
#endif


#ifndef PictOptBlendMinimum
/*
 * Operators only available in version 0.11
 */
#define PictOpBlendMinimum                    0x30
#define PictOpMultiply                        0x30
#define PictOpScreen                          0x31
#define PictOpOverlay                         0x32
#define PictOpDarken                          0x33
#define PictOpLighten                         0x34
#define PictOpColorDodge                      0x35
#define PictOpColorBurn                       0x36
#define PictOpHardLight                       0x37
#define PictOpSoftLight                       0x38
#define PictOpDifference                      0x39
#define PictOpExclusion                       0x3a
#define PictOpHSLHue                          0x3b
#define PictOpHSLSaturation                   0x3c
#define PictOpHSLColor                        0x3d
#define PictOpHSLLuminosity                   0x3e
#define PictOpBlendMaximum                    0x3e
#endif

/* There doesn't appear to be a simple #define that we can conditionalize
 * on.  Instead, use the version; gradients were introdiced in 0.10. */
#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
#define XRenderCreateLinearGradient             _int_consume
#define XRenderCreateRadialGradient             _int_consume
#define XRenderCreateConicalGradient                  _int_consume
typedef struct _XCircle {
    XFixed x;
    XFixed y;
    XFixed radius;
} XCircle;
typedef struct _XLinearGradient {
    XPointFixed p1;
    XPointFixed p2;
} XLinearGradient;

typedef struct _XRadialGradient {
    XCircle inner;
    XCircle outer;
} XRadialGradient;

typedef struct _XConicalGradient {
    XPointFixed center;
    XFixed angle; /* in degrees */
} XConicalGradient;
#endif


#else /* !CAIRO_HAS_XLIB_XRENDER_SURFACE */

/* Provide dummy symbols and macros to get it compile and take the fallback
 * route, just like as if Xrender is not available in the server at run-time. */


/* Functions */

#define XRenderQueryExtension                   _int_consume
#define XRenderQueryVersion                     _int_consume
#define XRenderQueryFormats                     _int_consume
#define XRenderQuerySubpixelOrder               _int_consume
#define XRenderSetSubpixelOrder                       _int_consume
#define XRenderFindVisualFormat                       _voidp_consume
#define XRenderFindFormat                       _voidp_consume
#define XRenderFindStandardFormat               _voidp_consume
#define XRenderQueryPictIndexValues             _voidp_consume
#define XRenderCreatePicture                    _int_consume
#define XRenderChangePicture                    _void_consume
#define XRenderSetPictureClipRectangles               _void_consume
#define XRenderSetPictureClipRegion             _void_consume
#define XRenderSetPictureTransform              _void_consume
#define XRenderFreePicture                      _void_consume_free
#define XRenderComposite                        _void_consume
#define XRenderCreateGlyphSet                   _int_consume
#define XRenderReferenceGlyphSet                _int_consume
#define XRenderFreeGlyphSet                     _void_consume_free
#define XRenderAddGlyphs                        _void_consume
#define XRenderFreeGlyphs                       _void_consume
#define XRenderCompositeString8                       _void_consume
#define XRenderCompositeString16                _void_consume
#define XRenderCompositeString32                _void_consume
#define XRenderCompositeText8                   (cairo_xrender_composite_text_func_t) _void_consume
#define XRenderCompositeText16                        _void_consume
#define XRenderCompositeText32                        _void_consume
#define XRenderFillRectangle                    _void_consume
#define XRenderFillRectangles                   _void_consume
#define XRenderCompositeTrapezoids              _void_consume
#define XRenderCompositeTriangles               _void_consume
#define XRenderCompositeTriStrip                _void_consume
#define XRenderCompositeTriFan                        _void_consume
#define XRenderCompositeDoublePoly              _void_consume
#define XRenderParseColor                       _int_consume
#define XRenderCreateCursor                     _int_consume
#define XRenderQueryFilters                     _voidp_consume
#define XRenderSetPictureFilter                       _void_consume
#define XRenderCreateAnimCursor                       _int_consume
#define XRenderAddTraps                         _void_consume
#define XRenderCreateSolidFill                        _int_consume
#define XRenderCreateLinearGradient             _int_consume
#define XRenderCreateRadialGradient             _int_consume
#define XRenderCreateConicalGradient                  _int_consume

#define cairo_xlib_surface_create_with_xrender_format _voidp_consume



/* The rest of this file is copied from various Xrender header files, with
 * the following copyright/license information:
 *
 * Copyright © 2000 SuSE, Inc.
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
 * the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of SuSE not be used in advertising or
 * publicity pertaining to distribution of the software without specific,
 * written prior permission.  SuSE makes no representations about the
 * suitability of this software for any purpose.  It is provided "as is"
 * without express or implied warranty.
 *
 * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * Author:  Keith Packard, SuSE, Inc.
 */


/* Copied from X11/extensions/render.h */

typedef unsigned long   Glyph;
typedef unsigned long   GlyphSet;
typedef unsigned long   Picture;
typedef unsigned long   PictFormat;

#define BadPictFormat                   0
#define BadPicture                      1
#define BadPictOp                 2
#define BadGlyphSet                     3
#define BadGlyph                  4
#define RenderNumberErrors              (BadGlyph+1)

#define PictTypeIndexed                 0
#define PictTypeDirect                  1

#define PictOpMinimum                   0
#define PictOpClear                     0
#define PictOpSrc                 1
#define PictOpDst                 2
#define PictOpOver                      3
#define PictOpOverReverse               4
#define PictOpIn                  5
#define PictOpInReverse                 6
#define PictOpOut                 7
#define PictOpOutReverse                8
#define PictOpAtop                      9
#define PictOpAtopReverse               10
#define PictOpXor                 11
#define PictOpAdd                 12
#define PictOpSaturate                  13
#define PictOpMaximum                   13

/*
 * Operators only available in version 0.2
 */
#define PictOpDisjointMinimum                 0x10
#define PictOpDisjointClear                   0x10
#define PictOpDisjointSrc                     0x11
#define PictOpDisjointDst                     0x12
#define PictOpDisjointOver                    0x13
#define PictOpDisjointOverReverse             0x14
#define PictOpDisjointIn                      0x15
#define PictOpDisjointInReverse                     0x16
#define PictOpDisjointOut                     0x17
#define PictOpDisjointOutReverse              0x18
#define PictOpDisjointAtop                    0x19
#define PictOpDisjointAtopReverse             0x1a
#define PictOpDisjointXor                     0x1b
#define PictOpDisjointMaximum                 0x1b

#define PictOpConjointMinimum                 0x20
#define PictOpConjointClear                   0x20
#define PictOpConjointSrc                     0x21
#define PictOpConjointDst                     0x22
#define PictOpConjointOver                    0x23
#define PictOpConjointOverReverse             0x24
#define PictOpConjointIn                      0x25
#define PictOpConjointInReverse                     0x26
#define PictOpConjointOut                     0x27
#define PictOpConjointOutReverse              0x28
#define PictOpConjointAtop                    0x29
#define PictOpConjointAtopReverse             0x2a
#define PictOpConjointXor                     0x2b
#define PictOpConjointMaximum                 0x2b

/*
 * Operators only available in version 0.11
 */
#define PictOpBlendMinimum                    0x30
#define PictOpMultiply                        0x30
#define PictOpScreen                          0x31
#define PictOpOverlay                         0x32
#define PictOpDarken                          0x33
#define PictOpLighten                         0x34
#define PictOpColorDodge                      0x35
#define PictOpColorBurn                       0x36
#define PictOpHardLight                       0x37
#define PictOpSoftLight                       0x38
#define PictOpDifference                      0x39
#define PictOpExclusion                       0x3a
#define PictOpHSLHue                          0x3b
#define PictOpHSLSaturation                   0x3c
#define PictOpHSLColor                        0x3d
#define PictOpHSLLuminosity                   0x3e
#define PictOpBlendMaximum                    0x3e

#define PolyEdgeSharp                   0
#define PolyEdgeSmooth                  1

#define PolyModePrecise                 0
#define PolyModeImprecise               1

#define CPRepeat                  (1 << 0)
#define CPAlphaMap                      (1 << 1)
#define CPAlphaXOrigin                  (1 << 2)
#define CPAlphaYOrigin                  (1 << 3)
#define CPClipXOrigin                   (1 << 4)
#define CPClipYOrigin                   (1 << 5)
#define CPClipMask                      (1 << 6)
#define CPGraphicsExposure              (1 << 7)
#define CPSubwindowMode                 (1 << 8)
#define CPPolyEdge                      (1 << 9)
#define CPPolyMode                      (1 << 10)
#define CPDither                  (1 << 11)
#define CPComponentAlpha                (1 << 12)
#define CPLastBit                 12

/* Filters included in 0.6 */
#define FilterNearest                   "nearest"
#define FilterBilinear                  "bilinear"
/* Filters included in 0.10 */
#define FilterConvolution               "convolution"

#define FilterFast                      "fast"
#define FilterGood                      "good"
#define FilterBest                      "best"

#define FilterAliasNone                 -1

/* Subpixel orders included in 0.6 */
#define SubPixelUnknown                 0
#define SubPixelHorizontalRGB           1
#define SubPixelHorizontalBGR           2
#define SubPixelVerticalRGB             3
#define SubPixelVerticalBGR             4
#define SubPixelNone                    5

/* Extended repeat attributes included in 0.10 */
#define RepeatNone                          0
#define RepeatNormal                        1
#define RepeatPad                           2
#define RepeatReflect                       3



/* Copied from X11/extensions/Xrender.h */

00349 typedef struct {
    short   red;
    short   redMask;
    short   green;
    short   greenMask;
    short   blue;
    short   blueMask;
    short   alpha;
    short   alphaMask;
} XRenderDirectFormat;

00360 typedef struct {
    PictFormat          id;
    int                 type;
    int                 depth;
    XRenderDirectFormat direct;
    Colormap            colormap;
} XRenderPictFormat;

#define PictFormatID        (1 << 0)
#define PictFormatType      (1 << 1)
#define PictFormatDepth     (1 << 2)
#define PictFormatRed       (1 << 3)
#define PictFormatRedMask   (1 << 4)
#define PictFormatGreen     (1 << 5)
#define PictFormatGreenMask (1 << 6)
#define PictFormatBlue      (1 << 7)
#define PictFormatBlueMask  (1 << 8)
#define PictFormatAlpha     (1 << 9)
#define PictFormatAlphaMask (1 << 10)
#define PictFormatColormap  (1 << 11)

00381 typedef struct _XRenderPictureAttributes {
    int           repeat;
    Picture       alpha_map;
    int                 alpha_x_origin;
    int                 alpha_y_origin;
    int                 clip_x_origin;
    int                 clip_y_origin;
    Pixmap        clip_mask;
    Bool          graphics_exposures;
    int                 subwindow_mode;
    int                 poly_edge;
    int                 poly_mode;
    Atom          dither;
    Bool          component_alpha;
} XRenderPictureAttributes;

00397 typedef struct {
    unsigned short   red;
    unsigned short   green;
    unsigned short   blue;
    unsigned short   alpha;
} XRenderColor;

00404 typedef struct _XGlyphInfo {
    unsigned short  width;
    unsigned short  height;
    short       x;
    short       y;
    short       xOff;
    short       yOff;
} XGlyphInfo;

00413 typedef struct _XGlyphElt8 {
    GlyphSet                glyphset;
    _Xconst char      *chars;
    int                     nchars;
    int                     xOff;
    int                     yOff;
} XGlyphElt8;

00421 typedef struct _XGlyphElt16 {
    GlyphSet                glyphset;
    _Xconst unsigned short  *chars;
    int                     nchars;
    int                     xOff;
    int                     yOff;
} XGlyphElt16;

00429 typedef struct _XGlyphElt32 {
    GlyphSet                glyphset;
    _Xconst unsigned int    *chars;
    int                     nchars;
    int                     xOff;
    int                     yOff;
} XGlyphElt32;

typedef double    XDouble;

00439 typedef struct _XPointDouble {
    XDouble  x, y;
} XPointDouble;

#define XDoubleToFixed(f)    ((XFixed) ((f) * 65536))
#define XFixedToDouble(f)    (((XDouble) (f)) / 65536)

typedef int XFixed;

00448 typedef struct _XPointFixed {
    XFixed  x, y;
} XPointFixed;

00452 typedef struct _XLineFixed {
    XPointFixed   p1, p2;
} XLineFixed;

00456 typedef struct _XTriangle {
    XPointFixed   p1, p2, p3;
} XTriangle;

00460 typedef struct _XCircle {
    XFixed x;
    XFixed y;
    XFixed radius;
} XCircle;

00466 typedef struct _XTrapezoid {
    XFixed  top, bottom;
    XLineFixed    left, right;
} XTrapezoid;

00471 typedef struct _XTransform {
    XFixed  matrix[3][3];
} XTransform;

00475 typedef struct _XFilters {
    int         nfilter;
    char    **filter;
    int         nalias;
    short   *alias;
} XFilters;

00482 typedef struct _XIndexValue {
    unsigned long    pixel;
    unsigned short   red, green, blue, alpha;
} XIndexValue;

00487 typedef struct _XAnimCursor {
    Cursor      cursor;
    unsigned long   delay;
} XAnimCursor;

00492 typedef struct _XSpanFix {
    XFixed      left, right, y;
} XSpanFix;

00496 typedef struct _XTrap {
    XSpanFix          top, bottom;
} XTrap;

00500 typedef struct _XLinearGradient {
    XPointFixed p1;
    XPointFixed p2;
} XLinearGradient;

00505 typedef struct _XRadialGradient {
    XCircle inner;
    XCircle outer;
} XRadialGradient;

00510 typedef struct _XConicalGradient {
    XPointFixed center;
    XFixed angle; /* in degrees */
} XConicalGradient;

#define PictStandardARGB32  0
#define PictStandardRGB24   1
#define PictStandardA8      2
#define PictStandardA4      3
#define PictStandardA1      4
#define PictStandardNUM     5



/* Copied from X11/extensions/renderproto.h */

#include <X11/Xmd.h>

#define Window CARD32
#define Drawable CARD32
#define Font CARD32
#define Pixmap CARD32
#define Cursor CARD32
#define Colormap CARD32
#define GContext CARD32
#define Atom CARD32
#define VisualID CARD32
#define Time CARD32
#define KeyCode CARD8
#define KeySym CARD32

#define Picture       CARD32
#define PictFormat  CARD32
#define Fixed         INT32
#define Glyphset    CARD32
#define Glyph         CARD32

/*
 * data structures
 */

00551 typedef struct {
    CARD16  red B16;
    CARD16  redMask B16;
    CARD16  green B16;
    CARD16  greenMask B16;
    CARD16  blue B16;
    CARD16  blueMask B16;
    CARD16  alpha B16;
    CARD16  alphaMask B16;
} xDirectFormat;

#define sz_xDirectFormat    16

00564 typedef struct {
    PictFormat    id B32;
    CARD8   type;
    CARD8   depth;
    CARD16  pad1 B16;
    xDirectFormat   direct;
    Colormap      colormap;
} xPictFormInfo;

#define sz_xPictFormInfo    28

00575 typedef struct {
    VisualID      visual;
    PictFormat    format;
} xPictVisual;

#define sz_xPictVisual      8

00582 typedef struct {
    CARD8   depth;
    CARD8   pad1;
    CARD16  nPictVisuals B16;
    CARD32  pad2 B32;
} xPictDepth;

#define sz_xPictDepth   8

00591 typedef struct {
    CARD32  nDepth B32;
    PictFormat    fallback B32;
} xPictScreen;

#define sz_xPictScreen  8

00598 typedef struct {
    CARD32  pixel B32;
    CARD16  red B16;
    CARD16  green B16;
    CARD16  blue B16;
    CARD16  alpha B16;
} xIndexValue;

#define sz_xIndexValue  12

00608 typedef struct {
    CARD16  red B16;
    CARD16  green B16;
    CARD16  blue B16;
    CARD16  alpha B16;
} xRenderColor;

#define sz_xRenderColor 8

00617 typedef struct {
    Fixed   x B32;
    Fixed   y B32;
} xPointFixed;

#define sz_xPointFixed  8

00624 typedef struct {
    xPointFixed   p1;
    xPointFixed p2;
} xLineFixed;

#define sz_xLineFixed   16

00631 typedef struct {
    xPointFixed   p1, p2, p3;
} xTriangle;

#define sz_xTriangle    24

00637 typedef struct {
    Fixed   top B32;
    Fixed   bottom B32;
    xLineFixed    left;
    xLineFixed    right;
} xTrapezoid;

#define sz_xTrapezoid   40

00646 typedef struct {
    CARD16  width B16;
    CARD16  height B16;
    INT16   x B16;
    INT16   y B16;
    INT16   xOff B16;
    INT16   yOff B16;
} xGlyphInfo;

#define sz_xGlyphInfo   12

00657 typedef struct {
    CARD8   len;
    CARD8   pad1;
    CARD16  pad2;
    INT16   deltax;
    INT16   deltay;
} xGlyphElt;

#define sz_xGlyphElt    8

00667 typedef struct {
    Fixed   l, r, y;
} xSpanFix;

#define sz_xSpanFix     12

00673 typedef struct {
    xSpanFix      top, bot;
} xTrap;

#define sz_xTrap  24

/*
 * requests and replies
 */
00682 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    CARD32  majorVersion B32;
    CARD32  minorVersion B32;
} xRenderQueryVersionReq;

#define sz_xRenderQueryVersionReq   12

00692 typedef struct {
    BYTE    type;   /* X_Reply */
    BYTE    pad1;
    CARD16  sequenceNumber B16;
    CARD32  length B32;
    CARD32  majorVersion B32;
    CARD32  minorVersion B32;
    CARD32  pad2 B32;
    CARD32  pad3 B32;
    CARD32  pad4 B32;
    CARD32  pad5 B32;
} xRenderQueryVersionReply;

#define sz_xRenderQueryVersionReply 32

00707 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
} xRenderQueryPictFormatsReq;

#define sz_xRenderQueryPictFormatsReq     4

00715 typedef struct {
    BYTE    type;   /* X_Reply */
    BYTE    pad1;
    CARD16  sequenceNumber B16;
    CARD32  length B32;
    CARD32  numFormats B32;
    CARD32  numScreens B32;
    CARD32  numDepths B32;
    CARD32  numVisuals B32;
    CARD32  numSubpixel B32;      /* Version 0.6 */
    CARD32  pad5 B32;
} xRenderQueryPictFormatsReply;

#define sz_xRenderQueryPictFormatsReply   32

00730 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    PictFormat    format B32;
} xRenderQueryPictIndexValuesReq;

#define sz_xRenderQueryPictIndexValuesReq   8

00739 typedef struct {
    BYTE    type;   /* X_Reply */
    BYTE    pad1;
    CARD16  sequenceNumber B16;
    CARD32  length B32;
    CARD32  numIndexValues;
    CARD32  pad2 B32;
    CARD32  pad3 B32;
    CARD32  pad4 B32;
    CARD32  pad5 B32;
    CARD32  pad6 B32;
} xRenderQueryPictIndexValuesReply;

#define sz_xRenderQueryPictIndexValuesReply 32

00754 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Picture pid B32;
    Drawable      drawable B32;
    PictFormat    format B32;
    CARD32  mask B32;
} xRenderCreatePictureReq;

#define sz_xRenderCreatePictureReq      20

00766 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Picture picture B32;
    CARD32  mask B32;
} xRenderChangePictureReq;

#define sz_xRenderChangePictureReq      12

00776 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Picture     picture B32;
    INT16   xOrigin B16;
    INT16   yOrigin B16;
} xRenderSetPictureClipRectanglesReq;

#define sz_xRenderSetPictureClipRectanglesReq       12

00787 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Picture     picture B32;
} xRenderFreePictureReq;

#define sz_xRenderFreePictureReq        8

00796 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture src B32;
    Picture mask B32;
    Picture dst B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
    INT16   xMask B16;
    INT16   yMask B16;
    INT16   xDst B16;
    INT16   yDst B16;
    CARD16  width B16;
    CARD16  height B16;
} xRenderCompositeReq;

#define sz_xRenderCompositeReq                36

00818 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Picture src B32;
    Picture dst B32;
    CARD32  colorScale B32;
    CARD32  alphaScale B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
    INT16   xDst B16;
    INT16   yDst B16;
    CARD16  width B16;
    CARD16  height B16;
} xRenderScaleReq;

#define sz_xRenderScaleReq                    32

00836 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture src B32;
    Picture dst B32;
    PictFormat    maskFormat B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
} xRenderTrapezoidsReq;

#define sz_xRenderTrapezoidsReq                     24

00852 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture src B32;
    Picture dst B32;
    PictFormat    maskFormat B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
} xRenderTrianglesReq;

#define sz_xRenderTrianglesReq                      24

00868 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture src B32;
    Picture dst B32;
    PictFormat    maskFormat B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
} xRenderTriStripReq;

#define sz_xRenderTriStripReq                 24

00884 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture src B32;
    Picture dst B32;
    PictFormat    maskFormat B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
} xRenderTriFanReq;

#define sz_xRenderTriFanReq                   24

00900 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Glyphset      gsid B32;
    PictFormat    format B32;
} xRenderCreateGlyphSetReq;

#define sz_xRenderCreateGlyphSetReq           12

00910 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Glyphset    gsid B32;
    Glyphset    existing B32;
} xRenderReferenceGlyphSetReq;

#define sz_xRenderReferenceGlyphSetReq              24

00920 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Glyphset    glyphset B32;
} xRenderFreeGlyphSetReq;

#define sz_xRenderFreeGlyphSetReq             8

00929 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Glyphset    glyphset B32;
    CARD32  nglyphs;
} xRenderAddGlyphsReq;

#define sz_xRenderAddGlyphsReq                      12

00939 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    Glyphset    glyphset B32;
} xRenderFreeGlyphsReq;

#define sz_xRenderFreeGlyphsReq                     8

00948 typedef struct {
    CARD8       reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture src B32;
    Picture dst B32;
    PictFormat    maskFormat B32;
    Glyphset    glyphset B32;
    INT16   xSrc B16;
    INT16   ySrc B16;
} xRenderCompositeGlyphsReq, xRenderCompositeGlyphs8Req,
xRenderCompositeGlyphs16Req, xRenderCompositeGlyphs32Req;

#define sz_xRenderCompositeGlyphs8Req               28
#define sz_xRenderCompositeGlyphs16Req              28
#define sz_xRenderCompositeGlyphs32Req              28

/* 0.1 and higher */

00970 typedef struct {
    CARD8   reqType;
    CARD8       renderReqType;
    CARD16      length B16;
    CARD8   op;
    CARD8   pad1;
    CARD16  pad2 B16;
    Picture dst B32;
    xRenderColor    color;
} xRenderFillRectanglesReq;

#define sz_xRenderFillRectanglesReq           20

/* 0.5 and higher */

00985 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Cursor  cid B32;
    Picture src B32;
    CARD16  x B16;
    CARD16  y B16;
} xRenderCreateCursorReq;

#define sz_xRenderCreateCursorReq             16

/* 0.6 and higher */

/*
 * This can't use an array because 32-bit values may be in bitfields
 */
01002 typedef struct {
    Fixed   matrix11 B32;
    Fixed   matrix12 B32;
    Fixed   matrix13 B32;
    Fixed   matrix21 B32;
    Fixed   matrix22 B32;
    Fixed   matrix23 B32;
    Fixed   matrix31 B32;
    Fixed   matrix32 B32;
    Fixed   matrix33 B32;
} xRenderTransform;

#define sz_xRenderTransform 36

01016 typedef struct {
    CARD8         reqType;
    CARD8         renderReqType;
    CARD16        length B16;
    Picture       picture B32;
    xRenderTransform    transform;
} xRenderSetPictureTransformReq;

#define sz_xRenderSetPictureTransformReq      44

01026 typedef struct {
    CARD8         reqType;
    CARD8         renderReqType;
    CARD16        length B16;
    Drawable            drawable B32;
} xRenderQueryFiltersReq;

#define sz_xRenderQueryFiltersReq             8

01035 typedef struct {
    BYTE    type;   /* X_Reply */
    BYTE    pad1;
    CARD16  sequenceNumber B16;
    CARD32  length B32;
    CARD32  numAliases B32;   /* LISTofCARD16 */
    CARD32  numFilters B32;   /* LISTofSTRING8 */
    CARD32  pad2 B32;
    CARD32  pad3 B32;
    CARD32  pad4 B32;
    CARD32  pad5 B32;
} xRenderQueryFiltersReply;

#define sz_xRenderQueryFiltersReply           32

01050 typedef struct {
    CARD8         reqType;
    CARD8         renderReqType;
    CARD16        length B16;
    Picture       picture B32;
    CARD16        nbytes B16; /* number of bytes in name */
    CARD16        pad B16;
} xRenderSetPictureFilterReq;

#define sz_xRenderSetPictureFilterReq               12

/* 0.8 and higher */

01063 typedef struct {
    Cursor        cursor B32;
    CARD32        delay B32;
} xAnimCursorElt;

#define sz_xAnimCursorElt                     8

01070 typedef struct {
    CARD8         reqType;
    CARD8         renderReqType;
    CARD16        length B16;
    Cursor        cid B32;
} xRenderCreateAnimCursorReq;

#define sz_xRenderCreateAnimCursorReq               8

/* 0.9 and higher */

01081 typedef struct {
    CARD8         reqType;
    CARD8         renderReqType;
    CARD16        length B16;
    Picture       picture;
    INT16         xOff B16;
    INT16         yOff B16;
} xRenderAddTrapsReq;

#define sz_xRenderAddTrapsReq                 12

/* 0.10 and higher */

01094 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Picture pid B32;
    xRenderColor color;
} xRenderCreateSolidFillReq;

#define sz_xRenderCreateSolidFillReq                 16

01104 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Picture pid B32;
    xPointFixed p1;
    xPointFixed p2;
    CARD32      nStops;
} xRenderCreateLinearGradientReq;

#define sz_xRenderCreateLinearGradientReq                 28

01116 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Picture pid B32;
    xPointFixed inner;
    xPointFixed outer;
    Fixed       inner_radius;
    Fixed       outer_radius;
    CARD32      nStops;
} xRenderCreateRadialGradientReq;

#define sz_xRenderCreateRadialGradientReq                 36

01130 typedef struct {
    CARD8   reqType;
    CARD8   renderReqType;
    CARD16  length B16;
    Picture pid B32;
    xPointFixed center;
    Fixed       angle; /* in degrees */
    CARD32      nStops;
} xRenderCreateConicalGradientReq;

#define sz_xRenderCreateConicalGradientReq                 24

#undef Window
#undef Drawable
#undef Font
#undef Pixmap
#undef Cursor
#undef Colormap
#undef GContext
#undef Atom
#undef VisualID
#undef Time
#undef KeyCode
#undef KeySym

#undef Picture
#undef PictFormat
#undef Fixed
#undef Glyphset
#undef Glyph


#endif /* CAIRO_HAS_XLIB_XRENDER_SURFACE */

#endif /* CAIRO_XLIB_XRENDER_PRIVATE_H */

Generated by  Doxygen 1.6.0   Back to index