117ca54c3Smrg/*
217ca54c3Smrg * Copyright © 2000 SuSE, Inc.
317ca54c3Smrg *
417ca54c3Smrg * Permission to use, copy, modify, distribute, and sell this software and its
517ca54c3Smrg * documentation for any purpose is hereby granted without fee, provided that
617ca54c3Smrg * the above copyright notice appear in all copies and that both that
717ca54c3Smrg * copyright notice and this permission notice appear in supporting
817ca54c3Smrg * documentation, and that the name of SuSE not be used in advertising or
917ca54c3Smrg * publicity pertaining to distribution of the software without specific,
1017ca54c3Smrg * written prior permission.  SuSE makes no representations about the
1117ca54c3Smrg * suitability of this software for any purpose.  It is provided "as is"
1217ca54c3Smrg * without express or implied warranty.
1317ca54c3Smrg *
1417ca54c3Smrg * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
1517ca54c3Smrg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
1617ca54c3Smrg * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1717ca54c3Smrg * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
1817ca54c3Smrg * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
1917ca54c3Smrg * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
2017ca54c3Smrg *
2117ca54c3Smrg * Author:  Keith Packard, SuSE, Inc.
2217ca54c3Smrg */
2317ca54c3Smrg
2417ca54c3Smrg#ifndef _RENDER_H_
2517ca54c3Smrg#define _RENDER_H_
2617ca54c3Smrg
2717ca54c3Smrg#include <X11/Xdefs.h>
2817ca54c3Smrg
2917ca54c3Smrgtypedef XID		Glyph;
3017ca54c3Smrgtypedef XID		GlyphSet;
3117ca54c3Smrgtypedef XID		Picture;
3217ca54c3Smrgtypedef XID		PictFormat;
3317ca54c3Smrg
3417ca54c3Smrg#define RENDER_NAME	"RENDER"
3517ca54c3Smrg#define RENDER_MAJOR	0
3617ca54c3Smrg#define RENDER_MINOR	11
3717ca54c3Smrg
3817ca54c3Smrg#define X_RenderQueryVersion		    0
3917ca54c3Smrg#define X_RenderQueryPictFormats	    1
4017ca54c3Smrg#define X_RenderQueryPictIndexValues	    2	/* 0.7 */
4117ca54c3Smrg#define X_RenderQueryDithers		    3
4217ca54c3Smrg#define X_RenderCreatePicture		    4
4317ca54c3Smrg#define X_RenderChangePicture		    5
4417ca54c3Smrg#define X_RenderSetPictureClipRectangles    6
4517ca54c3Smrg#define X_RenderFreePicture		    7
4617ca54c3Smrg#define X_RenderComposite		    8
4717ca54c3Smrg#define X_RenderScale			    9
4817ca54c3Smrg#define X_RenderTrapezoids		    10
4917ca54c3Smrg#define X_RenderTriangles		    11
5017ca54c3Smrg#define X_RenderTriStrip		    12
5117ca54c3Smrg#define X_RenderTriFan			    13
5217ca54c3Smrg#define X_RenderColorTrapezoids		    14
5317ca54c3Smrg#define X_RenderColorTriangles		    15
5417ca54c3Smrg/* #define X_RenderTransform		    16 */
5517ca54c3Smrg#define X_RenderCreateGlyphSet		    17
5617ca54c3Smrg#define X_RenderReferenceGlyphSet	    18
5717ca54c3Smrg#define X_RenderFreeGlyphSet		    19
5817ca54c3Smrg#define X_RenderAddGlyphs		    20
5917ca54c3Smrg#define X_RenderAddGlyphsFromPicture	    21
6017ca54c3Smrg#define X_RenderFreeGlyphs		    22
6117ca54c3Smrg#define X_RenderCompositeGlyphs8	    23
6217ca54c3Smrg#define X_RenderCompositeGlyphs16	    24
6317ca54c3Smrg#define X_RenderCompositeGlyphs32	    25
6417ca54c3Smrg#define X_RenderFillRectangles		    26
6517ca54c3Smrg/* 0.5 */
6617ca54c3Smrg#define X_RenderCreateCursor		    27
6717ca54c3Smrg/* 0.6 */
6817ca54c3Smrg#define X_RenderSetPictureTransform	    28
6917ca54c3Smrg#define X_RenderQueryFilters		    29
7017ca54c3Smrg#define X_RenderSetPictureFilter	    30
7117ca54c3Smrg/* 0.8 */
7217ca54c3Smrg#define X_RenderCreateAnimCursor	    31
7317ca54c3Smrg/* 0.9 */
7417ca54c3Smrg#define X_RenderAddTraps		    32
7517ca54c3Smrg/* 0.10 */
7617ca54c3Smrg#define X_RenderCreateSolidFill             33
7717ca54c3Smrg#define X_RenderCreateLinearGradient        34
7817ca54c3Smrg#define X_RenderCreateRadialGradient        35
7917ca54c3Smrg#define X_RenderCreateConicalGradient       36
8017ca54c3Smrg#define RenderNumberRequests		    (X_RenderCreateConicalGradient+1)
8117ca54c3Smrg
8217ca54c3Smrg#define BadPictFormat			    0
8317ca54c3Smrg#define BadPicture			    1
8417ca54c3Smrg#define BadPictOp			    2
8517ca54c3Smrg#define BadGlyphSet			    3
8617ca54c3Smrg#define BadGlyph			    4
8717ca54c3Smrg#define RenderNumberErrors		    (BadGlyph+1)
8817ca54c3Smrg
8917ca54c3Smrg#define PictTypeIndexed			    0
9017ca54c3Smrg#define PictTypeDirect			    1
9117ca54c3Smrg
9217ca54c3Smrg#define PictOpMinimum			    0
9317ca54c3Smrg#define PictOpClear			    0
9417ca54c3Smrg#define PictOpSrc			    1
9517ca54c3Smrg#define PictOpDst			    2
9617ca54c3Smrg#define PictOpOver			    3
9717ca54c3Smrg#define PictOpOverReverse		    4
9817ca54c3Smrg#define PictOpIn			    5
9917ca54c3Smrg#define PictOpInReverse			    6
10017ca54c3Smrg#define PictOpOut			    7
10117ca54c3Smrg#define PictOpOutReverse		    8
10217ca54c3Smrg#define PictOpAtop			    9
10317ca54c3Smrg#define PictOpAtopReverse		    10
10417ca54c3Smrg#define PictOpXor			    11
10517ca54c3Smrg#define PictOpAdd			    12
10617ca54c3Smrg#define PictOpSaturate			    13
10717ca54c3Smrg#define PictOpMaximum			    13
10817ca54c3Smrg
10917ca54c3Smrg/*
11017ca54c3Smrg * Operators only available in version 0.2
11117ca54c3Smrg */
11217ca54c3Smrg#define PictOpDisjointMinimum			    0x10
11317ca54c3Smrg#define PictOpDisjointClear			    0x10
11417ca54c3Smrg#define PictOpDisjointSrc			    0x11
11517ca54c3Smrg#define PictOpDisjointDst			    0x12
11617ca54c3Smrg#define PictOpDisjointOver			    0x13
11717ca54c3Smrg#define PictOpDisjointOverReverse		    0x14
11817ca54c3Smrg#define PictOpDisjointIn			    0x15
11917ca54c3Smrg#define PictOpDisjointInReverse			    0x16
12017ca54c3Smrg#define PictOpDisjointOut			    0x17
12117ca54c3Smrg#define PictOpDisjointOutReverse		    0x18
12217ca54c3Smrg#define PictOpDisjointAtop			    0x19
12317ca54c3Smrg#define PictOpDisjointAtopReverse		    0x1a
12417ca54c3Smrg#define PictOpDisjointXor			    0x1b
12517ca54c3Smrg#define PictOpDisjointMaximum			    0x1b
12617ca54c3Smrg
12717ca54c3Smrg#define PictOpConjointMinimum			    0x20
12817ca54c3Smrg#define PictOpConjointClear			    0x20
12917ca54c3Smrg#define PictOpConjointSrc			    0x21
13017ca54c3Smrg#define PictOpConjointDst			    0x22
13117ca54c3Smrg#define PictOpConjointOver			    0x23
13217ca54c3Smrg#define PictOpConjointOverReverse		    0x24
13317ca54c3Smrg#define PictOpConjointIn			    0x25
13417ca54c3Smrg#define PictOpConjointInReverse			    0x26
13517ca54c3Smrg#define PictOpConjointOut			    0x27
13617ca54c3Smrg#define PictOpConjointOutReverse		    0x28
13717ca54c3Smrg#define PictOpConjointAtop			    0x29
13817ca54c3Smrg#define PictOpConjointAtopReverse		    0x2a
13917ca54c3Smrg#define PictOpConjointXor			    0x2b
14017ca54c3Smrg#define PictOpConjointMaximum			    0x2b
14117ca54c3Smrg
14217ca54c3Smrg/*
14317ca54c3Smrg * Operators only available in version 0.11
14417ca54c3Smrg */
14517ca54c3Smrg#define PictOpBlendMinimum			    0x30
14617ca54c3Smrg#define PictOpMultiply				    0x30
14717ca54c3Smrg#define PictOpScreen				    0x31
14817ca54c3Smrg#define PictOpOverlay				    0x32
14917ca54c3Smrg#define PictOpDarken				    0x33
15017ca54c3Smrg#define PictOpLighten				    0x34
15117ca54c3Smrg#define PictOpColorDodge			    0x35
15217ca54c3Smrg#define PictOpColorBurn				    0x36
15317ca54c3Smrg#define PictOpHardLight				    0x37
15417ca54c3Smrg#define PictOpSoftLight				    0x38
15517ca54c3Smrg#define PictOpDifference			    0x39
15617ca54c3Smrg#define PictOpExclusion				    0x3a
15717ca54c3Smrg#define PictOpHSLHue				    0x3b
15817ca54c3Smrg#define PictOpHSLSaturation			    0x3c
15917ca54c3Smrg#define PictOpHSLColor				    0x3d
16017ca54c3Smrg#define PictOpHSLLuminosity			    0x3e
16117ca54c3Smrg#define PictOpBlendMaximum			    0x3e
16217ca54c3Smrg
16317ca54c3Smrg#define PolyEdgeSharp			    0
16417ca54c3Smrg#define PolyEdgeSmooth			    1
16517ca54c3Smrg
16617ca54c3Smrg#define PolyModePrecise			    0
16717ca54c3Smrg#define PolyModeImprecise		    1
16817ca54c3Smrg
16917ca54c3Smrg#define CPRepeat			    (1 << 0)
17017ca54c3Smrg#define CPAlphaMap			    (1 << 1)
17117ca54c3Smrg#define CPAlphaXOrigin			    (1 << 2)
17217ca54c3Smrg#define CPAlphaYOrigin			    (1 << 3)
17317ca54c3Smrg#define CPClipXOrigin			    (1 << 4)
17417ca54c3Smrg#define CPClipYOrigin			    (1 << 5)
17517ca54c3Smrg#define CPClipMask			    (1 << 6)
17617ca54c3Smrg#define CPGraphicsExposure		    (1 << 7)
17717ca54c3Smrg#define CPSubwindowMode			    (1 << 8)
17817ca54c3Smrg#define CPPolyEdge			    (1 << 9)
17917ca54c3Smrg#define CPPolyMode			    (1 << 10)
18017ca54c3Smrg#define CPDither			    (1 << 11)
18117ca54c3Smrg#define CPComponentAlpha		    (1 << 12)
18217ca54c3Smrg#define CPLastBit			    12
18317ca54c3Smrg
18417ca54c3Smrg/* Filters included in 0.6 */
18517ca54c3Smrg#define FilterNearest			    "nearest"
18617ca54c3Smrg#define FilterBilinear			    "bilinear"
18717ca54c3Smrg/* Filters included in 0.10 */
18817ca54c3Smrg#define FilterConvolution		    "convolution"
18917ca54c3Smrg
19017ca54c3Smrg#define FilterFast			    "fast"
19117ca54c3Smrg#define FilterGood			    "good"
19217ca54c3Smrg#define FilterBest			    "best"
19317ca54c3Smrg
19417ca54c3Smrg#define FilterAliasNone			    -1
19517ca54c3Smrg
19617ca54c3Smrg/* Subpixel orders included in 0.6 */
19717ca54c3Smrg#define SubPixelUnknown			    0
19817ca54c3Smrg#define SubPixelHorizontalRGB		    1
19917ca54c3Smrg#define SubPixelHorizontalBGR		    2
20017ca54c3Smrg#define SubPixelVerticalRGB		    3
20117ca54c3Smrg#define SubPixelVerticalBGR		    4
20217ca54c3Smrg#define SubPixelNone			    5
20317ca54c3Smrg
20417ca54c3Smrg/* Extended repeat attributes included in 0.10 */
20517ca54c3Smrg#define RepeatNone                          0
20617ca54c3Smrg#define RepeatNormal                        1
20717ca54c3Smrg#define RepeatPad                           2
20817ca54c3Smrg#define RepeatReflect                       3
20917ca54c3Smrg
21017ca54c3Smrg#endif	/* _RENDER_H_ */
211