Home | History | Annotate | Line # | Download | only in extensions
      1 /*
      2  * Copyright  2000 SuSE, Inc.
      3  *
      4  * Permission to use, copy, modify, distribute, and sell this software and its
      5  * documentation for any purpose is hereby granted without fee, provided that
      6  * the above copyright notice appear in all copies and that both that
      7  * copyright notice and this permission notice appear in supporting
      8  * documentation, and that the name of SuSE not be used in advertising or
      9  * publicity pertaining to distribution of the software without specific,
     10  * written prior permission.  SuSE makes no representations about the
     11  * suitability of this software for any purpose.  It is provided "as is"
     12  * without express or implied warranty.
     13  *
     14  * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
     15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
     16  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     17  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
     18  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
     19  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     20  *
     21  * Author:  Keith Packard, SuSE, Inc.
     22  */
     23 
     24 #ifndef _RENDER_H_
     25 #define _RENDER_H_
     26 
     27 #include <X11/Xdefs.h>
     28 
     29 typedef XID		Glyph;
     30 typedef XID		GlyphSet;
     31 typedef XID		Picture;
     32 typedef XID		PictFormat;
     33 
     34 #define RENDER_NAME	"RENDER"
     35 #define RENDER_MAJOR	0
     36 #define RENDER_MINOR	11
     37 
     38 #define X_RenderQueryVersion		    0
     39 #define X_RenderQueryPictFormats	    1
     40 #define X_RenderQueryPictIndexValues	    2	/* 0.7 */
     41 #define X_RenderQueryDithers		    3
     42 #define X_RenderCreatePicture		    4
     43 #define X_RenderChangePicture		    5
     44 #define X_RenderSetPictureClipRectangles    6
     45 #define X_RenderFreePicture		    7
     46 #define X_RenderComposite		    8
     47 #define X_RenderScale			    9
     48 #define X_RenderTrapezoids		    10
     49 #define X_RenderTriangles		    11
     50 #define X_RenderTriStrip		    12
     51 #define X_RenderTriFan			    13
     52 #define X_RenderColorTrapezoids		    14
     53 #define X_RenderColorTriangles		    15
     54 /* #define X_RenderTransform		    16 */
     55 #define X_RenderCreateGlyphSet		    17
     56 #define X_RenderReferenceGlyphSet	    18
     57 #define X_RenderFreeGlyphSet		    19
     58 #define X_RenderAddGlyphs		    20
     59 #define X_RenderAddGlyphsFromPicture	    21
     60 #define X_RenderFreeGlyphs		    22
     61 #define X_RenderCompositeGlyphs8	    23
     62 #define X_RenderCompositeGlyphs16	    24
     63 #define X_RenderCompositeGlyphs32	    25
     64 #define X_RenderFillRectangles		    26
     65 /* 0.5 */
     66 #define X_RenderCreateCursor		    27
     67 /* 0.6 */
     68 #define X_RenderSetPictureTransform	    28
     69 #define X_RenderQueryFilters		    29
     70 #define X_RenderSetPictureFilter	    30
     71 /* 0.8 */
     72 #define X_RenderCreateAnimCursor	    31
     73 /* 0.9 */
     74 #define X_RenderAddTraps		    32
     75 /* 0.10 */
     76 #define X_RenderCreateSolidFill             33
     77 #define X_RenderCreateLinearGradient        34
     78 #define X_RenderCreateRadialGradient        35
     79 #define X_RenderCreateConicalGradient       36
     80 #define RenderNumberRequests		    (X_RenderCreateConicalGradient+1)
     81 
     82 #define BadPictFormat			    0
     83 #define BadPicture			    1
     84 #define BadPictOp			    2
     85 #define BadGlyphSet			    3
     86 #define BadGlyph			    4
     87 #define RenderNumberErrors		    (BadGlyph+1)
     88 
     89 #define PictTypeIndexed			    0
     90 #define PictTypeDirect			    1
     91 
     92 #define PictOpMinimum			    0
     93 #define PictOpClear			    0
     94 #define PictOpSrc			    1
     95 #define PictOpDst			    2
     96 #define PictOpOver			    3
     97 #define PictOpOverReverse		    4
     98 #define PictOpIn			    5
     99 #define PictOpInReverse			    6
    100 #define PictOpOut			    7
    101 #define PictOpOutReverse		    8
    102 #define PictOpAtop			    9
    103 #define PictOpAtopReverse		    10
    104 #define PictOpXor			    11
    105 #define PictOpAdd			    12
    106 #define PictOpSaturate			    13
    107 #define PictOpMaximum			    13
    108 
    109 /*
    110  * Operators only available in version 0.2
    111  */
    112 #define PictOpDisjointMinimum			    0x10
    113 #define PictOpDisjointClear			    0x10
    114 #define PictOpDisjointSrc			    0x11
    115 #define PictOpDisjointDst			    0x12
    116 #define PictOpDisjointOver			    0x13
    117 #define PictOpDisjointOverReverse		    0x14
    118 #define PictOpDisjointIn			    0x15
    119 #define PictOpDisjointInReverse			    0x16
    120 #define PictOpDisjointOut			    0x17
    121 #define PictOpDisjointOutReverse		    0x18
    122 #define PictOpDisjointAtop			    0x19
    123 #define PictOpDisjointAtopReverse		    0x1a
    124 #define PictOpDisjointXor			    0x1b
    125 #define PictOpDisjointMaximum			    0x1b
    126 
    127 #define PictOpConjointMinimum			    0x20
    128 #define PictOpConjointClear			    0x20
    129 #define PictOpConjointSrc			    0x21
    130 #define PictOpConjointDst			    0x22
    131 #define PictOpConjointOver			    0x23
    132 #define PictOpConjointOverReverse		    0x24
    133 #define PictOpConjointIn			    0x25
    134 #define PictOpConjointInReverse			    0x26
    135 #define PictOpConjointOut			    0x27
    136 #define PictOpConjointOutReverse		    0x28
    137 #define PictOpConjointAtop			    0x29
    138 #define PictOpConjointAtopReverse		    0x2a
    139 #define PictOpConjointXor			    0x2b
    140 #define PictOpConjointMaximum			    0x2b
    141 
    142 /*
    143  * Operators only available in version 0.11
    144  */
    145 #define PictOpBlendMinimum			    0x30
    146 #define PictOpMultiply				    0x30
    147 #define PictOpScreen				    0x31
    148 #define PictOpOverlay				    0x32
    149 #define PictOpDarken				    0x33
    150 #define PictOpLighten				    0x34
    151 #define PictOpColorDodge			    0x35
    152 #define PictOpColorBurn				    0x36
    153 #define PictOpHardLight				    0x37
    154 #define PictOpSoftLight				    0x38
    155 #define PictOpDifference			    0x39
    156 #define PictOpExclusion				    0x3a
    157 #define PictOpHSLHue				    0x3b
    158 #define PictOpHSLSaturation			    0x3c
    159 #define PictOpHSLColor				    0x3d
    160 #define PictOpHSLLuminosity			    0x3e
    161 #define PictOpBlendMaximum			    0x3e
    162 
    163 #define PolyEdgeSharp			    0
    164 #define PolyEdgeSmooth			    1
    165 
    166 #define PolyModePrecise			    0
    167 #define PolyModeImprecise		    1
    168 
    169 #define CPRepeat			    (1 << 0)
    170 #define CPAlphaMap			    (1 << 1)
    171 #define CPAlphaXOrigin			    (1 << 2)
    172 #define CPAlphaYOrigin			    (1 << 3)
    173 #define CPClipXOrigin			    (1 << 4)
    174 #define CPClipYOrigin			    (1 << 5)
    175 #define CPClipMask			    (1 << 6)
    176 #define CPGraphicsExposure		    (1 << 7)
    177 #define CPSubwindowMode			    (1 << 8)
    178 #define CPPolyEdge			    (1 << 9)
    179 #define CPPolyMode			    (1 << 10)
    180 #define CPDither			    (1 << 11)
    181 #define CPComponentAlpha		    (1 << 12)
    182 #define CPLastBit			    12
    183 
    184 /* Filters included in 0.6 */
    185 #define FilterNearest			    "nearest"
    186 #define FilterBilinear			    "bilinear"
    187 /* Filters included in 0.10 */
    188 #define FilterConvolution		    "convolution"
    189 
    190 #define FilterFast			    "fast"
    191 #define FilterGood			    "good"
    192 #define FilterBest			    "best"
    193 
    194 #define FilterAliasNone			    -1
    195 
    196 /* Subpixel orders included in 0.6 */
    197 #define SubPixelUnknown			    0
    198 #define SubPixelHorizontalRGB		    1
    199 #define SubPixelHorizontalBGR		    2
    200 #define SubPixelVerticalRGB		    3
    201 #define SubPixelVerticalBGR		    4
    202 #define SubPixelNone			    5
    203 
    204 /* Extended repeat attributes included in 0.10 */
    205 #define RepeatNone                          0
    206 #define RepeatNormal                        1
    207 #define RepeatPad                           2
    208 #define RepeatReflect                       3
    209 
    210 #endif	/* _RENDER_H_ */
    211