b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Copyright © 2000 SuSE, Inc.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * documentation for any purpose is hereby granted without fee, provided that
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * the above copyright notice appear in all copies and that both that
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * copyright notice and this permission notice appear in supporting
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * documentation, and that the name of SuSE not be used in advertising or
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * publicity pertaining to distribution of the software without specific,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * written prior permission. SuSE makes no representations about the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * suitability of this software for any purpose. It is provided "as is"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * without express or implied warranty.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Author: Keith Packard, SuSE, Inc.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifndef _PICTURESTR_H_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define _PICTURESTR_H_
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "scrnintstr.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "glyphstr.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "resource.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#include "privates.h"
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _DirectFormat {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 red, redMask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 green, greenMask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 blue, blueMask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 alpha, alphaMask;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} DirectFormatRec;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _IndexFormat {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync VisualID vid;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ColormapPtr pColormap;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nvalues;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xIndexValue *pValues;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync void *devPrivate;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} IndexFormatRec;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictFormat {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 format; /* except bpp */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned char type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned char depth;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DirectFormatRec direct;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync IndexFormatRec index;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictFormatRec;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct pixman_vector PictVector, *PictVectorPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct pixman_transform PictTransform, *PictTransformPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define pict_f_vector pixman_f_vector
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define pict_f_transform pixman_f_transform
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PICT_GRADIENT_STOPTABLE_SIZE 1024
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictTypeSolidFill 0
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictTypeLinear 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictTypeRadial 2
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictTypeConical 3
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictClassUnknown 0
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictClassHorizontal 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SourcePictClassVertical 2
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictSolidFill {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int class;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 color;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictSolidFill, *PictSolidFillPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictGradientStop {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed x;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor color;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictGradientStop, *PictGradientStopPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictGradient {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int class;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nstops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictGradientStopPtr stops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int stopRange;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 *colorTable;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int colorTableSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictGradient, *PictGradientPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictLinearGradient {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int class;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nstops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictGradientStopPtr stops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int stopRange;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 *colorTable;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int colorTableSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed p1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed p2;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictLinearGradient, *PictLinearGradientPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictCircle {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed x;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed y;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed radius;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictCircle, *PictCirclePtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictRadialGradient {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int class;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nstops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictGradientStopPtr stops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int stopRange;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 *colorTable;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int colorTableSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictCircle c1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictCircle c2;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync double cdx;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync double cdy;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync double dr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync double A;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictRadialGradient, *PictRadialGradientPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictConicalGradient {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int class;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nstops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictGradientStopPtr stops;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int stopRange;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 *colorTable;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int colorTableSize;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed center;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed angle;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictConicalGradient, *PictConicalGradientPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef union _SourcePict {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int type;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictSolidFill solidFill;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictGradient gradient;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictLinearGradient linear;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictRadialGradient radial;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictConicalGradient conical;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} SourcePict, *SourcePictPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _Picture {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DrawablePtr pDrawable;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr pFormat;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatShort format; /* PICT_FORMAT */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int refcnt;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pNext; /* chain on same drawable */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int repeat : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int graphicsExposures : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int subWindowMode : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int polyEdge : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int polyMode : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int freeCompClip : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int clientClipType : 2;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int componentAlpha : 1;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int repeatType : 2;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned int unused : 21;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr alphaMap;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DDXPointRec alphaOrigin;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DDXPointRec clipOrigin;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync pointer clientClip;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Atom dither;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long stateChanges;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync unsigned long serialNumber;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync RegionPtr pCompositeClip;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PrivateRec *devPrivates;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictTransform *transform;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int filter;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *filter_params;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int filter_nparams;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync SourcePictPtr pSourcePict;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictureRec;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *params, int nparams,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *width, int *height);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *name;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFilterValidateParamsProcPtr ValidateParams;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int width, height;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictFilterRec, *PictFilterPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PictFilterNearest 0
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PictFilterBilinear 1
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PictFilterFast 2
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PictFilterGood 3
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PictFilterBest 4
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define PictFilterConvolution 5
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *alias;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int alias_id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int filter_id;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictFilterAliasRec, *PictFilterAliasPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*CreatePictureProcPtr) (PicturePtr pPicture);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*DestroyPictureProcPtr) (PicturePtr pPicture);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*ChangePictureClipProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int clipType,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync pointer value,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int n);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*DestroyPictureClipProcPtr)(PicturePtr pPicture);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*ChangePictureTransformProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictTransform *transform);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef int (*ChangePictureFilterProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int filter,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *params,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nparams);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*DestroyPictureFilterProcPtr) (PicturePtr pPicture);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*ChangePictureProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Mask mask);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*ValidatePictureProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Mask mask);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*CompositeProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 width,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 height);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*GlyphsProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nlists,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphListPtr lists,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphPtr *glyphs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*CompositeRectsProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor *color,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nRect,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRectangle *rects);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*RasterizeTrapezoidProcPtr)(PicturePtr pMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTrapezoid *trap,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int x_off,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int y_off);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*TrapezoidsProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntrap,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTrapezoid *traps);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*TrianglesProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntri,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTriangle *tris);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*TriStripProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int npoint,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *points);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*TriFanProcPtr) (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int npoint,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *points);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr pFormat);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*CloseIndexedProcPtr) (ScreenPtr pScreen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr pFormat);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*UpdateIndexedProcPtr) (ScreenPtr pScreen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr pFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ndef,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xColorItem *pdef);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*AddTrapsProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xOff,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yOff,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntrap,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTrap *traps);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*AddTrianglesProcPtr) (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xOff,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yOff,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntri,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTriangle *tris);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphPtr glyph);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphPtr glyph);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsynctypedef struct _PictureScreen {
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr formats;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr fallback;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nformats;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CreatePictureProcPtr CreatePicture;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DestroyPictureProcPtr DestroyPicture;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ChangePictureClipProcPtr ChangePictureClip;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DestroyPictureClipProcPtr DestroyPictureClip;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ChangePictureProcPtr ChangePicture;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ValidatePictureProcPtr ValidatePicture;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CompositeProcPtr Composite;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphsProcPtr Glyphs; /* unused */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CompositeRectsProcPtr CompositeRects;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DestroyWindowProcPtr DestroyWindow;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CloseScreenProcPtr CloseScreen;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync StoreColorsProcPtr StoreColors;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync InitIndexedProcPtr InitIndexed;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CloseIndexedProcPtr CloseIndexed;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync UpdateIndexedProcPtr UpdateIndexed;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int subpixel;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFilterPtr filters;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nfilters;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFilterAliasPtr filterAliases;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nfilterAliases;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Called immediately after a picture's transform is changed through the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SetPictureTransform request. Not called for source-only pictures.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ChangePictureTransformProcPtr ChangePictureTransform;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync /**
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * Called immediately after a picture's transform is changed through the
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * SetPictureFilter request. Not called for source-only pictures.
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ChangePictureFilterProcPtr ChangePictureFilter;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DestroyPictureFilterProcPtr DestroyPictureFilter;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync TrapezoidsProcPtr Trapezoids;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync TrianglesProcPtr Triangles;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync TriStripProcPtr TriStrip;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync TriFanProcPtr TriFan;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync RasterizeTrapezoidProcPtr RasterizeTrapezoid;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync AddTrianglesProcPtr AddTriangles;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync AddTrapsProcPtr AddTraps;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync RealizeGlyphProcPtr RealizeGlyph;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync UnrealizeGlyphProcPtr UnrealizeGlyph;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} PictureScreenRec, *PictureScreenPtr;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT DevPrivateKey PictureScreenPrivateKey;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT DevPrivateKey PictureWindowPrivateKey;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT RESTYPE PictureType;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT RESTYPE PictFormatType;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT RESTYPE GlyphSetType;
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey))
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define GetPictureScreenIfSet(s) GetPictureScreen(s)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey))
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p)
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define VERIFY_PICTURE(pPicture, pid, client, mode, err) {\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int rc = dixLookupResourceByType((pointer)&(pPicture), pid,\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictureType, client, mode);\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync if (rc != Success)\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync return (rc == BadValue) ? err : rc;\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync}
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#define VERIFY_ALPHA(pPicture, pid, client, mode, err) {\
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync if (pid == None) \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync pPicture = 0; \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync else { \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync VERIFY_PICTURE(pPicture, pid, client, mode, err); \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync } \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync} \
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureDestroyWindow (WindowPtr pWindow);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureCloseScreen (int Index, ScreenPtr pScreen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureInitIndexedFormat (ScreenPtr pScreen, PictFormatPtr format);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureGetSubpixelOrder (ScreenPtr pScreen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PictFormatPtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PictFormatPtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PictFormatPtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 format);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureGetFilterId (char *filter, int len, Bool makeit);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT char *
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureGetFilterName (int id);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureAddFilter (ScreenPtr pScreen,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync char *filter,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFilterValidateParamsProcPtr ValidateParams,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int width,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int height);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureSetDefaultFilters (ScreenPtr pScreen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureResetFilters (ScreenPtr pScreen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PictFilterPtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureFindFilter (ScreenPtr pScreen, char *name, int len);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSetPicturePictFilter (PicturePtr pPicture, PictFilterPtr pFilter,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *params, int nparams);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSetPictureFilter (PicturePtr pPicture, char *name, int len,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *params, int nparams);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureFinishInit (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSetPictureToDefaults (PicturePtr pPicture);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PicturePtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCreatePicture (Picture pid,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DrawablePtr pDrawable,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr pFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Mask mask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XID *list,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *error);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncChangePicture (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Mask vmask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XID *vlist,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync DevUnion *ulist,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync ClientPtr client);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSetPictureClipRects (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int xOrigin,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int yOrigin,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nRect,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRectangle *rects);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSetPictureClipRegion (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int xOrigin,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int yOrigin,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync RegionPtr pRegion);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncSetPictureTransform (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictTransform *transform);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCopyPicture (PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync Mask mask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncValidatePicture(PicturePtr pPicture);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncFreePicture (pointer pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XID pid);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT int
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncFreePictFormat (pointer pPictFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync XID pid);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositePicture (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yMask,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 width,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD16 height);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositeGlyphs (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nlist,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphListPtr lists,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync GlyphPtr *glyphs);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositeRects (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor *color,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nRect,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRectangle *rects);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositeTrapezoids (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntrap,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTrapezoid *traps);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositeTriangles (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntriangles,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTriangle *triangles);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositeTriStrip (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int npoints,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *points);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCompositeTriFan (CARD8 op,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PicturePtr pDst,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictFormatPtr maskFormat,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xSrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 ySrc,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int npoints,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *points);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT CARD32
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureGradientColor (PictGradientStopPtr stop1,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictGradientStopPtr stop2,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync CARD32 x);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void RenderExtensionInit (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncBool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncAnimCurInit (ScreenPtr pScreen);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncint
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncAnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncAddTraps (PicturePtr pPicture,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 xOff,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync INT16 yOff,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int ntraps,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xTrap *traps);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PicturePtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCreateSolidPicture (Picture pid,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor *color,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *error);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PicturePtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCreateLinearGradientPicture (Picture pid,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *p1,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *p2,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nStops,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *stops,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor *colors,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *error);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PicturePtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCreateRadialGradientPicture (Picture pid,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *inner,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *outer,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed innerRadius,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed outerRadius,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nStops,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *stops,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor *colors,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *error);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT PicturePtr
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncCreateConicalGradientPicture (Picture pid,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xPointFixed *center,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed angle,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int nStops,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xFixed *stops,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderColor *colors,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync int *error);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#ifdef PANORAMIX
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void PanoramiXRenderInit (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void PanoramiXRenderReset (void);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync/*
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync * matrix.c
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync */
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictTransform_from_xRenderTransform (PictTransformPtr pict,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync xRenderTransform *render);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT void
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncxRenderTransform_from_PictTransform (xRenderTransform *render,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictTransformPtr pict);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureTransformPoint (PictTransformPtr transform,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictVectorPtr vector);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncextern _X_EXPORT Bool
b9a21c3c91c47e090316e28d759194e46628ed49vboxsyncPictureTransformPoint3d (PictTransformPtr transform,
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync PictVectorPtr vector);
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync
b9a21c3c91c47e090316e28d759194e46628ed49vboxsync#endif /* _PICTURESTR_H_ */