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