56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * $XFree86: xc/include/extensions/render.h,v 1.11 2002/11/23 02:34:45 keithp Exp $
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Copyright � 2000 SuSE, Inc.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * documentation for any purpose is hereby granted without fee, provided that
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * the above copyright notice appear in all copies and that both that
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * copyright notice and this permission notice appear in supporting
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * documentation, and that the name of SuSE not be used in advertising or
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * publicity pertaining to distribution of the software without specific,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * written prior permission. SuSE makes no representations about the
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * suitability of this software for any purpose. It is provided "as is"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * without express or implied warranty.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Author: Keith Packard, SuSE, Inc.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#ifndef _RENDER_H_
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define _RENDER_H_
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef unsigned long Glyph;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef unsigned long GlyphSet;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef unsigned long Picture;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef unsigned long PictFormat;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define RENDER_NAME "RENDER"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define RENDER_MAJOR 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define RENDER_MINOR 8
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderQueryVersion 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderQueryPictFormats 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderQueryPictIndexValues 2 /* 0.7 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderQueryDithers 3
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCreatePicture 4
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderChangePicture 5
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderSetPictureClipRectangles 6
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderFreePicture 7
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderComposite 8
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderScale 9
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderTrapezoids 10
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderTriangles 11
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderTriStrip 12
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderTriFan 13
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderColorTrapezoids 14
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderColorTriangles 15
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* #define X_RenderTransform 16 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCreateGlyphSet 17
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderReferenceGlyphSet 18
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderFreeGlyphSet 19
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderAddGlyphs 20
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderAddGlyphsFromPicture 21
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderFreeGlyphs 22
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCompositeGlyphs8 23
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCompositeGlyphs16 24
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCompositeGlyphs32 25
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderFillRectangles 26
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* 0.5 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCreateCursor 27
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* 0.6 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderSetPictureTransform 28
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderQueryFilters 29
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderSetPictureFilter 30
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define X_RenderCreateAnimCursor 31
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define RenderNumberRequests (X_RenderCreateAnimCursor+1)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define BadPictFormat 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define BadPicture 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define BadPictOp 2
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define BadGlyphSet 3
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define BadGlyph 4
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define RenderNumberErrors (BadGlyph+1)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictTypeIndexed 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictTypeDirect 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpMinimum 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpClear 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpSrc 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDst 2
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpOver 3
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpOverReverse 4
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpIn 5
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpInReverse 6
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpOut 7
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpOutReverse 8
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpAtop 9
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpAtopReverse 10
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpXor 11
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpAdd 12
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpSaturate 13
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpMaximum 13
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Operators only available in version 0.2
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointMinimum 0x10
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointClear 0x10
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointSrc 0x11
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointDst 0x12
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointOver 0x13
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointOverReverse 0x14
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointIn 0x15
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointInReverse 0x16
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointOut 0x17
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointOutReverse 0x18
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointAtop 0x19
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointAtopReverse 0x1a
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointXor 0x1b
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpDisjointMaximum 0x1b
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointMinimum 0x20
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointClear 0x20
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointSrc 0x21
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointDst 0x22
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointOver 0x23
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointOverReverse 0x24
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointIn 0x25
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointInReverse 0x26
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointOut 0x27
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointOutReverse 0x28
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointAtop 0x29
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointAtopReverse 0x2a
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointXor 0x2b
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PictOpConjointMaximum 0x2b
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PolyEdgeSharp 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PolyEdgeSmooth 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PolyModePrecise 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define PolyModeImprecise 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPRepeat (1 << 0)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPAlphaMap (1 << 1)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPAlphaXOrigin (1 << 2)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPAlphaYOrigin (1 << 3)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPClipXOrigin (1 << 4)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPClipYOrigin (1 << 5)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPClipMask (1 << 6)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPGraphicsExposure (1 << 7)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPSubwindowMode (1 << 8)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPPolyEdge (1 << 9)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPPolyMode (1 << 10)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPDither (1 << 11)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPComponentAlpha (1 << 12)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define CPLastBit 11
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Filters included in 0.6 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define FilterNearest "nearest"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define FilterBilinear "bilinear"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define FilterFast "fast"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define FilterGood "good"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define FilterBest "best"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define FilterAliasNone -1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Subpixel orders included in 0.6 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define SubPixelUnknown 0
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define SubPixelHorizontalRGB 1
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define SubPixelHorizontalBGR 2
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define SubPixelVerticalRGB 3
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define SubPixelVerticalBGR 4
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#define SubPixelNone 5
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#endif /* _RENDER_H_ */