summaryrefslogtreecommitdiff
path: root/x11_extensions/inc/render.h
blob: aff7c47959d0076b58e4c856470f874d94556645 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/*
 * $XFree86: xc/include/extensions/render.h,v 1.10 2002/11/06 22:47:49 keithp Exp $
 *
 * 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.
 */

#ifndef _RENDER_H_
#define _RENDER_H_

typedef XID     Glyph;
typedef XID     GlyphSet;
typedef XID     Picture;
typedef XID     PictFormat;

#define RENDER_NAME "RENDER"
#define RENDER_MAJOR    0
#define RENDER_MINOR    10

#define X_RenderQueryVersion            0
#define X_RenderQueryPictFormats        1
#define X_RenderQueryPictIndexValues        2   /* 0.7 */
#define X_RenderQueryDithers            3
#define X_RenderCreatePicture           4
#define X_RenderChangePicture           5
#define X_RenderSetPictureClipRectangles    6
#define X_RenderFreePicture         7
#define X_RenderComposite           8
#define X_RenderScale               9
#define X_RenderTrapezoids          10
#define X_RenderTriangles           11
#define X_RenderTriStrip            12
#define X_RenderTriFan              13
#define X_RenderColorTrapezoids         14
#define X_RenderColorTriangles          15
/* #define X_RenderTransform            16 */
#define X_RenderCreateGlyphSet          17
#define X_RenderReferenceGlyphSet       18
#define X_RenderFreeGlyphSet            19
#define X_RenderAddGlyphs           20
#define X_RenderAddGlyphsFromPicture        21
#define X_RenderFreeGlyphs          22
#define X_RenderCompositeGlyphs8        23
#define X_RenderCompositeGlyphs16       24
#define X_RenderCompositeGlyphs32       25
#define X_RenderFillRectangles          26
/* 0.5 */
#define X_RenderCreateCursor            27
/* 0.6 */
#define X_RenderSetPictureTransform     28
#define X_RenderQueryFilters            29
#define X_RenderSetPictureFilter        30
/* 0.8 */
#define X_RenderCreateAnimCursor        31
/* 0.9 */
#define X_RenderAddTraps            32
/* 0.10 */
#define X_RenderCreateSolidFill             33
#define X_RenderCreateLinearGradient        34
#define X_RenderCreateRadialGradient        35
#define X_RenderCreateConicalGradient       36
#define RenderNumberRequests            (X_RenderCreateConicalGradient+1)

#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

#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

#endif  /* _RENDER_H_ */