f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Copyright © 2000 SuSE, Inc.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * documentation for any purpose is hereby granted without fee, provided that
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * the above copyright notice appear in all copies and that both that
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * copyright notice and this permission notice appear in supporting
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * documentation, and that the name of SuSE not be used in advertising or
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * publicity pertaining to distribution of the software without specific,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * written prior permission. SuSE makes no representations about the
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * suitability of this software for any purpose. It is provided "as is"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * without express or implied warranty.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Author: Keith Packard, SuSE, Inc.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef _PICTURESTR_H_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define _PICTURESTR_H_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "scrnintstr.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "glyphstr.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "resource.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "privates.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _DirectFormat {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 red, redMask;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 green, greenMask;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 blue, blueMask;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 alpha, alphaMask;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} DirectFormatRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _IndexFormat {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VisualID vid;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ColormapPtr pColormap;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nvalues;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xIndexValue *pValues;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *devPrivate;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} IndexFormatRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictFormat {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD32 id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD32 format; /* except bpp */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char depth;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DirectFormatRec direct;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync IndexFormatRec index;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictFormatRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct pixman_vector PictVector, *PictVectorPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct pixman_transform PictTransform, *PictTransformPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define pict_f_vector pixman_f_vector
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define pict_f_transform pixman_f_transform
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PICT_GRADIENT_STOPTABLE_SIZE 1024
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SourcePictTypeSolidFill 0
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SourcePictTypeLinear 1
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SourcePictTypeRadial 2
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SourcePictTypeConical 3
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictSolidFill {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD32 color;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictSolidFill, *PictSolidFillPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictGradientStop {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed x;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor color;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictGradientStop, *PictGradientStopPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictGradient {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nstops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictGradientStopPtr stops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictGradient, *PictGradientPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictLinearGradient {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nstops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictGradientStopPtr stops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed p1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed p2;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictLinearGradient, *PictLinearGradientPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictCircle {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed x;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed y;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed radius;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictCircle, *PictCirclePtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictRadialGradient {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nstops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictGradientStopPtr stops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictCircle c1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictCircle c2;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictRadialGradient, *PictRadialGradientPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictConicalGradient {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nstops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictGradientStopPtr stops;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed center;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed angle;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictConicalGradient, *PictConicalGradientPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef union _SourcePict {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int type;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictSolidFill solidFill;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictGradient gradient;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictLinearGradient linear;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictRadialGradient radial;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictConicalGradient conical;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} SourcePict, *SourcePictPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _Picture {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDrawable;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr pFormat;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatShort format; /* PICT_FORMAT */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int refcnt;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD32 id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int repeat : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int graphicsExposures : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int subWindowMode : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int polyEdge : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int polyMode : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int freeCompClip : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int clientClipType : 2;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int componentAlpha : 1;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int repeatType : 2;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int filter : 3;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int stateChanges : CPLastBit;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int unused : 18 - CPLastBit;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pNext; /* chain on same drawable */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr alphaMap;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointRec alphaOrigin;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointRec clipOrigin;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer clientClip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned long serialNumber;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pCompositeClip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PrivateRec *devPrivates;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictTransform *transform;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync SourcePictPtr pSourcePict;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *filter_params;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int filter_nparams;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictureRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *params, int nparams,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *width, int *height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *name;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFilterValidateParamsProcPtr ValidateParams;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width, height;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictFilterRec, *PictFilterPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictFilterNearest 0
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictFilterBilinear 1
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictFilterFast 2
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictFilterGood 3
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictFilterBest 4
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictFilterConvolution 5
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* if you add an 8th filter, expand the filter bitfield above */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *alias;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alias_id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int filter_id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictFilterAliasRec, *PictFilterAliasPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef int (*CreatePictureProcPtr) (PicturePtr pPicture);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*DestroyPictureProcPtr) (PicturePtr pPicture);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef int (*ChangePictureClipProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int clipType,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer value,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int n);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*DestroyPictureClipProcPtr)(PicturePtr pPicture);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef int (*ChangePictureTransformProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictTransform *transform);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef int (*ChangePictureFilterProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int filter,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *params,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nparams);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*DestroyPictureFilterProcPtr) (PicturePtr pPicture);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*ChangePictureProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask mask);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*ValidatePictureProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask mask);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*CompositeProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*GlyphsProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nlists,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphListPtr lists,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphPtr *glyphs);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*CompositeRectsProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor *color,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nRect,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRectangle *rects);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*RasterizeTrapezoidProcPtr)(PicturePtr pMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTrapezoid *trap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x_off,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y_off);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*TrapezoidsProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntrap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTrapezoid *traps);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*TrianglesProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntri,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTriangle *tris);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*TriStripProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npoint,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *points);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*TriFanProcPtr) (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npoint,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *points);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr pFormat);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*CloseIndexedProcPtr) (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr pFormat);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*UpdateIndexedProcPtr) (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr pFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ndef,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xColorItem *pdef);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*AddTrapsProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xOff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yOff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntrap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTrap *traps);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*AddTrianglesProcPtr) (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xOff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yOff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntri,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTriangle *tris);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphPtr glyph);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphPtr glyph);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _PictureScreen {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr formats;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr fallback;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nformats;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CreatePictureProcPtr CreatePicture;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DestroyPictureProcPtr DestroyPicture;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ChangePictureClipProcPtr ChangePictureClip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DestroyPictureClipProcPtr DestroyPictureClip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ChangePictureProcPtr ChangePicture;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ValidatePictureProcPtr ValidatePicture;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CompositeProcPtr Composite;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphsProcPtr Glyphs; /* unused */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CompositeRectsProcPtr CompositeRects;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DestroyWindowProcPtr DestroyWindow;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CloseScreenProcPtr CloseScreen;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync StoreColorsProcPtr StoreColors;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InitIndexedProcPtr InitIndexed;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CloseIndexedProcPtr CloseIndexed;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync UpdateIndexedProcPtr UpdateIndexed;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int subpixel;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFilterPtr filters;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nfilters;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFilterAliasPtr filterAliases;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nfilterAliases;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /**
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Called immediately after a picture's transform is changed through the
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SetPictureTransform request. Not called for source-only pictures.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ChangePictureTransformProcPtr ChangePictureTransform;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /**
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Called immediately after a picture's transform is changed through the
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SetPictureFilter request. Not called for source-only pictures.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ChangePictureFilterProcPtr ChangePictureFilter;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DestroyPictureFilterProcPtr DestroyPictureFilter;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TrapezoidsProcPtr Trapezoids;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TrianglesProcPtr Triangles;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RasterizeTrapezoidProcPtr RasterizeTrapezoid;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync AddTrianglesProcPtr AddTriangles;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync AddTrapsProcPtr AddTraps;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RealizeGlyphProcPtr RealizeGlyph;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync UnrealizeGlyphProcPtr UnrealizeGlyph;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PICTURE_SCREEN_VERSION 2
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TriStripProcPtr TriStrip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TriFanProcPtr TriFan;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} PictureScreenRec, *PictureScreenPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define PictureWindowPrivateKey (&PictureWindowPrivateKeyRec)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RESTYPE PictureType;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RESTYPE PictFormatType;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RESTYPE GlyphSetType;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define VERIFY_PICTURE(pPicture, pid, client, mode) {\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int rc = dixLookupResourceByType((pointer)&(pPicture), pid,\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictureType, client, mode);\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (rc != Success)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return rc;\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define VERIFY_ALPHA(pPicture, pid, client, mode) {\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (pid == None) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pPicture = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VERIFY_PICTURE(pPicture, pid, client, mode); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureDestroyWindow (WindowPtr pWindow);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureCloseScreen (int Index, ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureInitIndexedFormat (ScreenPtr pScreen, PictFormatPtr format);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureGetSubpixelOrder (ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PictFormatPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PictFormatPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PictFormatPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 format);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureGetFilterId (const char *filter, int len, Bool makeit);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT char *
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureGetFilterName (int id);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureAddFilter (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync const char *filter,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFilterValidateParamsProcPtr ValidateParams,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureSetFilterAlias (ScreenPtr pScreen, const char *filter, const char *alias);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureSetDefaultFilters (ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureResetFilters (ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PictFilterPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureFindFilter (ScreenPtr pScreen, char *name, int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSetPicturePictFilter (PicturePtr pPicture, PictFilterPtr pFilter,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *params, int nparams);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSetPictureFilter (PicturePtr pPicture, char *name, int len,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *params, int nparams);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureFinishInit (void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSetPictureToDefaults (PicturePtr pPicture);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PicturePtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCreatePicture (Picture pid,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr pFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask mask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID *list,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *error);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncChangePicture (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask vmask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID *vlist,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DevUnion *ulist,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSetPictureClipRects (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xOrigin,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yOrigin,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nRect,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRectangle *rects);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSetPictureClipRegion (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xOrigin,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yOrigin,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pRegion);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSetPictureTransform (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictTransform *transform);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCopyPicture (PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask mask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncValidatePicture(PicturePtr pPicture);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncFreePicture (pointer pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID pid);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncFreePictFormat (pointer pPictFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID pid);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositePicture (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD16 height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositeGlyphs (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nlist,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphListPtr lists,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GlyphPtr *glyphs);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositeRects (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor *color,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nRect,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRectangle *rects);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositeTrapezoids (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntrap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTrapezoid *traps);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositeTriangles (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntriangles,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTriangle *triangles);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositeTriStrip (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npoints,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *points);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCompositeTriFan (CARD8 op,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PicturePtr pDst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr maskFormat,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 ySrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npoints,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *points);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void RenderExtensionInit (void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncBool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncAnimCurInit (ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncint
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncAnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncAddTraps (PicturePtr pPicture,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 xOff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync INT16 yOff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ntraps,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xTrap *traps);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PicturePtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCreateSolidPicture (Picture pid,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor *color,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *error);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PicturePtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCreateLinearGradientPicture (Picture pid,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *p1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *p2,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nStops,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *stops,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor *colors,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *error);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PicturePtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCreateRadialGradientPicture (Picture pid,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *inner,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *outer,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed innerRadius,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed outerRadius,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nStops,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *stops,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor *colors,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *error);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PicturePtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCreateConicalGradientPicture (Picture pid,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPointFixed *center,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed angle,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nStops,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xFixed *stops,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderColor *colors,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *error);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef PANORAMIX
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void PanoramiXRenderInit (void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void PanoramiXRenderReset (void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * matrix.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictTransform_from_xRenderTransform (PictTransformPtr pict,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRenderTransform *render);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncxRenderTransform_from_PictTransform (xRenderTransform *render,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictTransformPtr pict);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureTransformPoint (PictTransformPtr transform,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictVectorPtr vector);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPictureTransformPoint3d (PictTransformPtr transform,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictVectorPtr vector);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif /* _PICTURESTR_H_ */