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