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