LCOV - code coverage report
Current view: directory - gfx/cairo/cairo/src - cairo-xlib-xrender-private.h (source / functions) Found Hit Coverage
Test: app.info Lines: 4 0 0.0 %
Date: 2012-06-02 Functions: 4 0 0.0 %

       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.7