picturestr.h revision 35c4bbdf
105b261ecSmrg/* 205b261ecSmrg * Copyright © 2000 SuSE, Inc. 305b261ecSmrg * 405b261ecSmrg * Permission to use, copy, modify, distribute, and sell this software and its 505b261ecSmrg * documentation for any purpose is hereby granted without fee, provided that 605b261ecSmrg * the above copyright notice appear in all copies and that both that 705b261ecSmrg * copyright notice and this permission notice appear in supporting 805b261ecSmrg * documentation, and that the name of SuSE not be used in advertising or 905b261ecSmrg * publicity pertaining to distribution of the software without specific, 1005b261ecSmrg * written prior permission. SuSE makes no representations about the 1105b261ecSmrg * suitability of this software for any purpose. It is provided "as is" 1205b261ecSmrg * without express or implied warranty. 1305b261ecSmrg * 1405b261ecSmrg * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 1505b261ecSmrg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE 1605b261ecSmrg * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1705b261ecSmrg * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 1805b261ecSmrg * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 1905b261ecSmrg * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 2005b261ecSmrg * 2105b261ecSmrg * Author: Keith Packard, SuSE, Inc. 2205b261ecSmrg */ 2305b261ecSmrg 2405b261ecSmrg#ifndef _PICTURESTR_H_ 2505b261ecSmrg#define _PICTURESTR_H_ 2605b261ecSmrg 2705b261ecSmrg#include "scrnintstr.h" 2805b261ecSmrg#include "glyphstr.h" 2905b261ecSmrg#include "resource.h" 304642e01fSmrg#include "privates.h" 3105b261ecSmrg 3205b261ecSmrgtypedef struct _DirectFormat { 3335c4bbdfSmrg CARD16 red, redMask; 3435c4bbdfSmrg CARD16 green, greenMask; 3535c4bbdfSmrg CARD16 blue, blueMask; 3635c4bbdfSmrg CARD16 alpha, alphaMask; 3705b261ecSmrg} DirectFormatRec; 3805b261ecSmrg 3905b261ecSmrgtypedef struct _IndexFormat { 4035c4bbdfSmrg VisualID vid; 4135c4bbdfSmrg ColormapPtr pColormap; 4235c4bbdfSmrg int nvalues; 4335c4bbdfSmrg xIndexValue *pValues; 4435c4bbdfSmrg void *devPrivate; 4505b261ecSmrg} IndexFormatRec; 4605b261ecSmrg 4705b261ecSmrgtypedef struct _PictFormat { 4835c4bbdfSmrg CARD32 id; 4935c4bbdfSmrg CARD32 format; /* except bpp */ 5035c4bbdfSmrg unsigned char type; 5135c4bbdfSmrg unsigned char depth; 5205b261ecSmrg DirectFormatRec direct; 5335c4bbdfSmrg IndexFormatRec index; 5405b261ecSmrg} PictFormatRec; 5505b261ecSmrg 5605b261ecSmrgtypedef struct pixman_vector PictVector, *PictVectorPtr; 5705b261ecSmrgtypedef struct pixman_transform PictTransform, *PictTransformPtr; 5805b261ecSmrg 594642e01fSmrg#define pict_f_vector pixman_f_vector 604642e01fSmrg#define pict_f_transform pixman_f_transform 614642e01fSmrg 6205b261ecSmrg#define PICT_GRADIENT_STOPTABLE_SIZE 1024 6305b261ecSmrg#define SourcePictTypeSolidFill 0 6405b261ecSmrg#define SourcePictTypeLinear 1 6505b261ecSmrg#define SourcePictTypeRadial 2 6605b261ecSmrg#define SourcePictTypeConical 3 6705b261ecSmrg 6805b261ecSmrgtypedef struct _PictSolidFill { 6905b261ecSmrg unsigned int type; 7005b261ecSmrg CARD32 color; 7105b261ecSmrg} PictSolidFill, *PictSolidFillPtr; 7205b261ecSmrg 7305b261ecSmrgtypedef struct _PictGradientStop { 7405b261ecSmrg xFixed x; 7505b261ecSmrg xRenderColor color; 7605b261ecSmrg} PictGradientStop, *PictGradientStopPtr; 7705b261ecSmrg 7805b261ecSmrgtypedef struct _PictGradient { 7905b261ecSmrg unsigned int type; 8005b261ecSmrg int nstops; 8105b261ecSmrg PictGradientStopPtr stops; 8205b261ecSmrg} PictGradient, *PictGradientPtr; 8305b261ecSmrg 8405b261ecSmrgtypedef struct _PictLinearGradient { 8505b261ecSmrg unsigned int type; 8605b261ecSmrg int nstops; 8705b261ecSmrg PictGradientStopPtr stops; 8805b261ecSmrg xPointFixed p1; 8905b261ecSmrg xPointFixed p2; 9005b261ecSmrg} PictLinearGradient, *PictLinearGradientPtr; 9105b261ecSmrg 9205b261ecSmrgtypedef struct _PictCircle { 9305b261ecSmrg xFixed x; 9405b261ecSmrg xFixed y; 9505b261ecSmrg xFixed radius; 9605b261ecSmrg} PictCircle, *PictCirclePtr; 9705b261ecSmrg 9805b261ecSmrgtypedef struct _PictRadialGradient { 9905b261ecSmrg unsigned int type; 10005b261ecSmrg int nstops; 10105b261ecSmrg PictGradientStopPtr stops; 10205b261ecSmrg PictCircle c1; 10305b261ecSmrg PictCircle c2; 10405b261ecSmrg} PictRadialGradient, *PictRadialGradientPtr; 10505b261ecSmrg 10605b261ecSmrgtypedef struct _PictConicalGradient { 10705b261ecSmrg unsigned int type; 10805b261ecSmrg int nstops; 10905b261ecSmrg PictGradientStopPtr stops; 11005b261ecSmrg xPointFixed center; 11105b261ecSmrg xFixed angle; 11205b261ecSmrg} PictConicalGradient, *PictConicalGradientPtr; 11305b261ecSmrg 11405b261ecSmrgtypedef union _SourcePict { 11505b261ecSmrg unsigned int type; 11605b261ecSmrg PictSolidFill solidFill; 11705b261ecSmrg PictGradient gradient; 11805b261ecSmrg PictLinearGradient linear; 11905b261ecSmrg PictRadialGradient radial; 12005b261ecSmrg PictConicalGradient conical; 12105b261ecSmrg} SourcePict, *SourcePictPtr; 12205b261ecSmrg 12305b261ecSmrgtypedef struct _Picture { 12435c4bbdfSmrg DrawablePtr pDrawable; 12535c4bbdfSmrg PictFormatPtr pFormat; 12635c4bbdfSmrg PictFormatShort format; /* PICT_FORMAT */ 12735c4bbdfSmrg int refcnt; 12835c4bbdfSmrg CARD32 id; 12935c4bbdfSmrg unsigned int repeat:1; 13035c4bbdfSmrg unsigned int graphicsExposures:1; 13135c4bbdfSmrg unsigned int subWindowMode:1; 13235c4bbdfSmrg unsigned int polyEdge:1; 13335c4bbdfSmrg unsigned int polyMode:1; 13435c4bbdfSmrg unsigned int freeCompClip:1; 13535c4bbdfSmrg unsigned int componentAlpha:1; 13635c4bbdfSmrg unsigned int repeatType:2; 13735c4bbdfSmrg unsigned int filter:3; 13835c4bbdfSmrg unsigned int stateChanges:CPLastBit; 13935c4bbdfSmrg unsigned int unused:18 - CPLastBit; 14035c4bbdfSmrg 14135c4bbdfSmrg PicturePtr pNext; /* chain on same drawable */ 14235c4bbdfSmrg 14335c4bbdfSmrg PicturePtr alphaMap; 14435c4bbdfSmrg DDXPointRec alphaOrigin; 14535c4bbdfSmrg 14635c4bbdfSmrg DDXPointRec clipOrigin; 14735c4bbdfSmrg RegionPtr clientClip; 14835c4bbdfSmrg 14935c4bbdfSmrg unsigned long serialNumber; 15035c4bbdfSmrg 15135c4bbdfSmrg RegionPtr pCompositeClip; 15235c4bbdfSmrg 15335c4bbdfSmrg PrivateRec *devPrivates; 15435c4bbdfSmrg 15535c4bbdfSmrg PictTransform *transform; 15635c4bbdfSmrg 15735c4bbdfSmrg SourcePictPtr pSourcePict; 15835c4bbdfSmrg xFixed *filter_params; 15935c4bbdfSmrg int filter_nparams; 16005b261ecSmrg} PictureRec; 16105b261ecSmrg 1624642e01fSmrgtypedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id, 16335c4bbdfSmrg xFixed * params, int nparams, 16435c4bbdfSmrg int *width, int *height); 16505b261ecSmrgtypedef struct { 16635c4bbdfSmrg char *name; 16735c4bbdfSmrg int id; 16805b261ecSmrg PictFilterValidateParamsProcPtr ValidateParams; 16935c4bbdfSmrg int width, height; 17005b261ecSmrg} PictFilterRec, *PictFilterPtr; 17105b261ecSmrg 17205b261ecSmrg#define PictFilterNearest 0 17305b261ecSmrg#define PictFilterBilinear 1 17405b261ecSmrg 17505b261ecSmrg#define PictFilterFast 2 17605b261ecSmrg#define PictFilterGood 3 17705b261ecSmrg#define PictFilterBest 4 17805b261ecSmrg 17905b261ecSmrg#define PictFilterConvolution 5 1809ace9065Smrg/* if you add an 8th filter, expand the filter bitfield above */ 18105b261ecSmrg 18205b261ecSmrgtypedef struct { 18335c4bbdfSmrg char *alias; 18435c4bbdfSmrg int alias_id; 18535c4bbdfSmrg int filter_id; 18605b261ecSmrg} PictFilterAliasRec, *PictFilterAliasPtr; 18705b261ecSmrg 18835c4bbdfSmrgtypedef int (*CreatePictureProcPtr) (PicturePtr pPicture); 18935c4bbdfSmrgtypedef void (*DestroyPictureProcPtr) (PicturePtr pPicture); 19035c4bbdfSmrgtypedef int (*ChangePictureClipProcPtr) (PicturePtr pPicture, 19135c4bbdfSmrg int clipType, void *value, int n); 19235c4bbdfSmrgtypedef void (*DestroyPictureClipProcPtr) (PicturePtr pPicture); 19335c4bbdfSmrg 19435c4bbdfSmrgtypedef int (*ChangePictureTransformProcPtr) (PicturePtr pPicture, 19535c4bbdfSmrg PictTransform * transform); 19635c4bbdfSmrg 19735c4bbdfSmrgtypedef int (*ChangePictureFilterProcPtr) (PicturePtr pPicture, 19835c4bbdfSmrg int filter, 19935c4bbdfSmrg xFixed * params, int nparams); 20035c4bbdfSmrg 20135c4bbdfSmrgtypedef void (*DestroyPictureFilterProcPtr) (PicturePtr pPicture); 20235c4bbdfSmrg 20335c4bbdfSmrgtypedef void (*ChangePictureProcPtr) (PicturePtr pPicture, Mask mask); 20435c4bbdfSmrgtypedef void (*ValidatePictureProcPtr) (PicturePtr pPicture, Mask mask); 20535c4bbdfSmrgtypedef void (*CompositeProcPtr) (CARD8 op, 20635c4bbdfSmrg PicturePtr pSrc, 20735c4bbdfSmrg PicturePtr pMask, 20835c4bbdfSmrg PicturePtr pDst, 20935c4bbdfSmrg INT16 xSrc, 21035c4bbdfSmrg INT16 ySrc, 21135c4bbdfSmrg INT16 xMask, 21235c4bbdfSmrg INT16 yMask, 21335c4bbdfSmrg INT16 xDst, 21435c4bbdfSmrg INT16 yDst, CARD16 width, CARD16 height); 21535c4bbdfSmrg 21635c4bbdfSmrgtypedef void (*GlyphsProcPtr) (CARD8 op, 21735c4bbdfSmrg PicturePtr pSrc, 21835c4bbdfSmrg PicturePtr pDst, 21935c4bbdfSmrg PictFormatPtr maskFormat, 22035c4bbdfSmrg INT16 xSrc, 22135c4bbdfSmrg INT16 ySrc, 22235c4bbdfSmrg int nlists, 22335c4bbdfSmrg GlyphListPtr lists, GlyphPtr * glyphs); 22435c4bbdfSmrg 22535c4bbdfSmrgtypedef void (*CompositeRectsProcPtr) (CARD8 op, 22635c4bbdfSmrg PicturePtr pDst, 22735c4bbdfSmrg xRenderColor * color, 22835c4bbdfSmrg int nRect, xRectangle *rects); 22935c4bbdfSmrg 23035c4bbdfSmrgtypedef void (*RasterizeTrapezoidProcPtr) (PicturePtr pMask, 23135c4bbdfSmrg xTrapezoid * trap, 23235c4bbdfSmrg int x_off, int y_off); 23335c4bbdfSmrg 23435c4bbdfSmrgtypedef void (*TrapezoidsProcPtr) (CARD8 op, 23535c4bbdfSmrg PicturePtr pSrc, 23635c4bbdfSmrg PicturePtr pDst, 23735c4bbdfSmrg PictFormatPtr maskFormat, 23835c4bbdfSmrg INT16 xSrc, 23935c4bbdfSmrg INT16 ySrc, int ntrap, xTrapezoid * traps); 24035c4bbdfSmrg 24135c4bbdfSmrgtypedef void (*TrianglesProcPtr) (CARD8 op, 24235c4bbdfSmrg PicturePtr pSrc, 24335c4bbdfSmrg PicturePtr pDst, 24435c4bbdfSmrg PictFormatPtr maskFormat, 24535c4bbdfSmrg INT16 xSrc, 24635c4bbdfSmrg INT16 ySrc, int ntri, xTriangle * tris); 24735c4bbdfSmrg 24835c4bbdfSmrgtypedef void (*TriStripProcPtr) (CARD8 op, 24935c4bbdfSmrg PicturePtr pSrc, 25035c4bbdfSmrg PicturePtr pDst, 25135c4bbdfSmrg PictFormatPtr maskFormat, 25235c4bbdfSmrg INT16 xSrc, 25335c4bbdfSmrg INT16 ySrc, int npoint, xPointFixed * points); 25435c4bbdfSmrg 25535c4bbdfSmrgtypedef void (*TriFanProcPtr) (CARD8 op, 25635c4bbdfSmrg PicturePtr pSrc, 25735c4bbdfSmrg PicturePtr pDst, 25835c4bbdfSmrg PictFormatPtr maskFormat, 25935c4bbdfSmrg INT16 xSrc, 26035c4bbdfSmrg INT16 ySrc, int npoint, xPointFixed * points); 26135c4bbdfSmrg 26235c4bbdfSmrgtypedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen, PictFormatPtr pFormat); 26335c4bbdfSmrg 26435c4bbdfSmrgtypedef void (*CloseIndexedProcPtr) (ScreenPtr pScreen, PictFormatPtr pFormat); 26535c4bbdfSmrg 26635c4bbdfSmrgtypedef void (*UpdateIndexedProcPtr) (ScreenPtr pScreen, 26735c4bbdfSmrg PictFormatPtr pFormat, 26835c4bbdfSmrg int ndef, xColorItem * pdef); 26935c4bbdfSmrg 27035c4bbdfSmrgtypedef void (*AddTrapsProcPtr) (PicturePtr pPicture, 27135c4bbdfSmrg INT16 xOff, 27235c4bbdfSmrg INT16 yOff, int ntrap, xTrap * traps); 27335c4bbdfSmrg 27435c4bbdfSmrgtypedef void (*AddTrianglesProcPtr) (PicturePtr pPicture, 27535c4bbdfSmrg INT16 xOff, 27635c4bbdfSmrg INT16 yOff, int ntri, xTriangle * tris); 27735c4bbdfSmrg 27835c4bbdfSmrgtypedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen, GlyphPtr glyph); 27935c4bbdfSmrg 28035c4bbdfSmrgtypedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen, GlyphPtr glyph); 28105b261ecSmrg 28205b261ecSmrgtypedef struct _PictureScreen { 28335c4bbdfSmrg PictFormatPtr formats; 28435c4bbdfSmrg PictFormatPtr fallback; 28535c4bbdfSmrg int nformats; 28605b261ecSmrg 28735c4bbdfSmrg CreatePictureProcPtr CreatePicture; 28835c4bbdfSmrg DestroyPictureProcPtr DestroyPicture; 28935c4bbdfSmrg ChangePictureClipProcPtr ChangePictureClip; 29035c4bbdfSmrg DestroyPictureClipProcPtr DestroyPictureClip; 29105b261ecSmrg 29235c4bbdfSmrg ChangePictureProcPtr ChangePicture; 29335c4bbdfSmrg ValidatePictureProcPtr ValidatePicture; 29405b261ecSmrg 29535c4bbdfSmrg CompositeProcPtr Composite; 29635c4bbdfSmrg GlyphsProcPtr Glyphs; /* unused */ 29735c4bbdfSmrg CompositeRectsProcPtr CompositeRects; 29805b261ecSmrg 29935c4bbdfSmrg DestroyWindowProcPtr DestroyWindow; 30035c4bbdfSmrg CloseScreenProcPtr CloseScreen; 30105b261ecSmrg 30235c4bbdfSmrg StoreColorsProcPtr StoreColors; 30305b261ecSmrg 30435c4bbdfSmrg InitIndexedProcPtr InitIndexed; 30535c4bbdfSmrg CloseIndexedProcPtr CloseIndexed; 30635c4bbdfSmrg UpdateIndexedProcPtr UpdateIndexed; 30705b261ecSmrg 30835c4bbdfSmrg int subpixel; 30905b261ecSmrg 31035c4bbdfSmrg PictFilterPtr filters; 31135c4bbdfSmrg int nfilters; 31235c4bbdfSmrg PictFilterAliasPtr filterAliases; 31335c4bbdfSmrg int nfilterAliases; 31405b261ecSmrg 31505b261ecSmrg /** 31605b261ecSmrg * Called immediately after a picture's transform is changed through the 31705b261ecSmrg * SetPictureTransform request. Not called for source-only pictures. 31805b261ecSmrg */ 31935c4bbdfSmrg ChangePictureTransformProcPtr ChangePictureTransform; 32005b261ecSmrg 32105b261ecSmrg /** 32205b261ecSmrg * Called immediately after a picture's transform is changed through the 32305b261ecSmrg * SetPictureFilter request. Not called for source-only pictures. 32405b261ecSmrg */ 32535c4bbdfSmrg ChangePictureFilterProcPtr ChangePictureFilter; 32605b261ecSmrg 32735c4bbdfSmrg DestroyPictureFilterProcPtr DestroyPictureFilter; 32805b261ecSmrg 32935c4bbdfSmrg TrapezoidsProcPtr Trapezoids; 33035c4bbdfSmrg TrianglesProcPtr Triangles; 33105b261ecSmrg 33235c4bbdfSmrg RasterizeTrapezoidProcPtr RasterizeTrapezoid; 33305b261ecSmrg 33435c4bbdfSmrg AddTrianglesProcPtr AddTriangles; 33505b261ecSmrg 33635c4bbdfSmrg AddTrapsProcPtr AddTraps; 33705b261ecSmrg 33835c4bbdfSmrg RealizeGlyphProcPtr RealizeGlyph; 33935c4bbdfSmrg UnrealizeGlyphProcPtr UnrealizeGlyph; 34005b261ecSmrg 34135c4bbdfSmrg#define PICTURE_SCREEN_VERSION 2 34235c4bbdfSmrg TriStripProcPtr TriStrip; 34335c4bbdfSmrg TriFanProcPtr TriFan; 34405b261ecSmrg} PictureScreenRec, *PictureScreenPtr; 34505b261ecSmrg 3466747b715Smrgextern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec; 3476747b715Smrg#define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec) 3486747b715Smrg 3496747b715Smrgextern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec; 3506747b715Smrg#define PictureWindowPrivateKey (&PictureWindowPrivateKeyRec) 3516747b715Smrg 35235c4bbdfSmrgextern RESTYPE PictureType; 35335c4bbdfSmrgextern RESTYPE PictFormatType; 35435c4bbdfSmrgextern RESTYPE GlyphSetType; 35505b261ecSmrg 3564642e01fSmrg#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey)) 3576747b715Smrg#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL) 3584642e01fSmrg#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p) 3594642e01fSmrg#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey)) 3604642e01fSmrg#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p) 36105b261ecSmrg 3626747b715Smrg#define VERIFY_PICTURE(pPicture, pid, client, mode) {\ 36335c4bbdfSmrg int tmprc = dixLookupResourceByType((void *)&(pPicture), pid,\ 36435c4bbdfSmrg PictureType, client, mode);\ 36535c4bbdfSmrg if (tmprc != Success)\ 36635c4bbdfSmrg return tmprc;\ 36705b261ecSmrg} 36805b261ecSmrg 3696747b715Smrg#define VERIFY_ALPHA(pPicture, pid, client, mode) {\ 37005b261ecSmrg if (pid == None) \ 37105b261ecSmrg pPicture = 0; \ 37205b261ecSmrg else { \ 3736747b715Smrg VERIFY_PICTURE(pPicture, pid, client, mode); \ 37405b261ecSmrg } \ 37505b261ecSmrg} \ 37605b261ecSmrg 37735c4bbdfSmrgextern _X_EXPORT PictFormatPtr 37835c4bbdfSmrg PictureWindowFormat(WindowPtr pWindow); 37905b261ecSmrg 3806747b715Smrgextern _X_EXPORT Bool 38135c4bbdfSmrg PictureSetSubpixelOrder(ScreenPtr pScreen, int subpixel); 38205b261ecSmrg 3836747b715Smrgextern _X_EXPORT int 38435c4bbdfSmrg PictureGetSubpixelOrder(ScreenPtr pScreen); 38505b261ecSmrg 3866747b715Smrgextern _X_EXPORT PictFormatPtr 38735c4bbdfSmrgPictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual); 38805b261ecSmrg 3896747b715Smrgextern _X_EXPORT PictFormatPtr 39035c4bbdfSmrgPictureMatchFormat(ScreenPtr pScreen, int depth, CARD32 format); 39105b261ecSmrg 3926747b715Smrgextern _X_EXPORT Bool 39335c4bbdfSmrg PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats); 39405b261ecSmrg 3956747b715Smrgextern _X_EXPORT int 39635c4bbdfSmrg PictureGetFilterId(const char *filter, int len, Bool makeit); 39705b261ecSmrg 39835c4bbdfSmrgextern _X_EXPORT char *PictureGetFilterName(int id); 39905b261ecSmrg 4006747b715Smrgextern _X_EXPORT int 40135c4bbdfSmrgPictureAddFilter(ScreenPtr pScreen, 40235c4bbdfSmrg const char *filter, 40335c4bbdfSmrg PictFilterValidateParamsProcPtr ValidateParams, 40435c4bbdfSmrg int width, int height); 40505b261ecSmrg 4066747b715Smrgextern _X_EXPORT Bool 40735c4bbdfSmrgPictureSetFilterAlias(ScreenPtr pScreen, const char *filter, const char *alias); 40805b261ecSmrg 4096747b715Smrgextern _X_EXPORT Bool 41035c4bbdfSmrg PictureSetDefaultFilters(ScreenPtr pScreen); 41105b261ecSmrg 4126747b715Smrgextern _X_EXPORT void 41335c4bbdfSmrg PictureResetFilters(ScreenPtr pScreen); 41405b261ecSmrg 4156747b715Smrgextern _X_EXPORT PictFilterPtr 41635c4bbdfSmrgPictureFindFilter(ScreenPtr pScreen, char *name, int len); 41705b261ecSmrg 4186747b715Smrgextern _X_EXPORT int 41935c4bbdfSmrgSetPicturePictFilter(PicturePtr pPicture, PictFilterPtr pFilter, 42035c4bbdfSmrg xFixed * params, int nparams); 4214642e01fSmrg 4226747b715Smrgextern _X_EXPORT int 42335c4bbdfSmrgSetPictureFilter(PicturePtr pPicture, char *name, int len, 42435c4bbdfSmrg xFixed * params, int nparams); 42505b261ecSmrg 4266747b715Smrgextern _X_EXPORT Bool 42735c4bbdfSmrg PictureFinishInit(void); 42805b261ecSmrg 4296747b715Smrgextern _X_EXPORT PicturePtr 43035c4bbdfSmrgCreatePicture(Picture pid, 43135c4bbdfSmrg DrawablePtr pDrawable, 43235c4bbdfSmrg PictFormatPtr pFormat, 43335c4bbdfSmrg Mask mask, XID *list, ClientPtr client, int *error); 43405b261ecSmrg 4356747b715Smrgextern _X_EXPORT int 43635c4bbdfSmrgChangePicture(PicturePtr pPicture, 43735c4bbdfSmrg Mask vmask, XID *vlist, DevUnion *ulist, ClientPtr client); 43805b261ecSmrg 4396747b715Smrgextern _X_EXPORT int 44005b261ecSmrg 44135c4bbdfSmrgSetPictureClipRects(PicturePtr pPicture, 44235c4bbdfSmrg int xOrigin, int yOrigin, int nRect, xRectangle *rects); 44305b261ecSmrg 4446747b715Smrgextern _X_EXPORT int 44535c4bbdfSmrgSetPictureClipRegion(PicturePtr pPicture, 44635c4bbdfSmrg int xOrigin, int yOrigin, RegionPtr pRegion); 44705b261ecSmrg 44835c4bbdfSmrgextern _X_EXPORT int 44935c4bbdfSmrg SetPictureTransform(PicturePtr pPicture, PictTransform * transform); 45005b261ecSmrg 4516747b715Smrgextern _X_EXPORT void 45235c4bbdfSmrg ValidatePicture(PicturePtr pPicture); 45305b261ecSmrg 4546747b715Smrgextern _X_EXPORT int 45535c4bbdfSmrg FreePicture(void *pPicture, XID pid); 45605b261ecSmrg 4576747b715Smrgextern _X_EXPORT void 45835c4bbdfSmrgCompositePicture(CARD8 op, 45935c4bbdfSmrg PicturePtr pSrc, 46035c4bbdfSmrg PicturePtr pMask, 46135c4bbdfSmrg PicturePtr pDst, 46235c4bbdfSmrg INT16 xSrc, 46335c4bbdfSmrg INT16 ySrc, 46435c4bbdfSmrg INT16 xMask, 46535c4bbdfSmrg INT16 yMask, 46635c4bbdfSmrg INT16 xDst, INT16 yDst, CARD16 width, CARD16 height); 46705b261ecSmrg 4686747b715Smrgextern _X_EXPORT void 46935c4bbdfSmrgCompositeGlyphs(CARD8 op, 47035c4bbdfSmrg PicturePtr pSrc, 47135c4bbdfSmrg PicturePtr pDst, 47235c4bbdfSmrg PictFormatPtr maskFormat, 47335c4bbdfSmrg INT16 xSrc, 47435c4bbdfSmrg INT16 ySrc, int nlist, GlyphListPtr lists, GlyphPtr * glyphs); 47505b261ecSmrg 4766747b715Smrgextern _X_EXPORT void 47735c4bbdfSmrgCompositeRects(CARD8 op, 47835c4bbdfSmrg PicturePtr pDst, 47935c4bbdfSmrg xRenderColor * color, int nRect, xRectangle *rects); 48005b261ecSmrg 4816747b715Smrgextern _X_EXPORT void 48235c4bbdfSmrgCompositeTrapezoids(CARD8 op, 48335c4bbdfSmrg PicturePtr pSrc, 48435c4bbdfSmrg PicturePtr pDst, 48535c4bbdfSmrg PictFormatPtr maskFormat, 48635c4bbdfSmrg INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps); 48705b261ecSmrg 4886747b715Smrgextern _X_EXPORT void 48935c4bbdfSmrgCompositeTriangles(CARD8 op, 49035c4bbdfSmrg PicturePtr pSrc, 49135c4bbdfSmrg PicturePtr pDst, 49235c4bbdfSmrg PictFormatPtr maskFormat, 49335c4bbdfSmrg INT16 xSrc, 49435c4bbdfSmrg INT16 ySrc, int ntriangles, xTriangle * triangles); 49505b261ecSmrg 4966747b715Smrgextern _X_EXPORT void 49735c4bbdfSmrgCompositeTriStrip(CARD8 op, 49835c4bbdfSmrg PicturePtr pSrc, 49935c4bbdfSmrg PicturePtr pDst, 50035c4bbdfSmrg PictFormatPtr maskFormat, 50135c4bbdfSmrg INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); 50205b261ecSmrg 5036747b715Smrgextern _X_EXPORT void 50435c4bbdfSmrgCompositeTriFan(CARD8 op, 50535c4bbdfSmrg PicturePtr pSrc, 50635c4bbdfSmrg PicturePtr pDst, 50735c4bbdfSmrg PictFormatPtr maskFormat, 50835c4bbdfSmrg INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); 50905b261ecSmrg 51005b261ecSmrgBool 51135c4bbdfSmrg AnimCurInit(ScreenPtr pScreen); 51205b261ecSmrg 51305b261ecSmrgint 51435c4bbdfSmrgAnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor, 51535c4bbdfSmrg CursorPtr *ppCursor, ClientPtr client, XID cid); 51605b261ecSmrg 5176747b715Smrgextern _X_EXPORT void 51835c4bbdfSmrgAddTraps(PicturePtr pPicture, 51935c4bbdfSmrg INT16 xOff, INT16 yOff, int ntraps, xTrap * traps); 52005b261ecSmrg 5216747b715Smrgextern _X_EXPORT PicturePtr 52235c4bbdfSmrgCreateSolidPicture(Picture pid, xRenderColor * color, int *error); 52305b261ecSmrg 5246747b715Smrgextern _X_EXPORT PicturePtr 52535c4bbdfSmrgCreateLinearGradientPicture(Picture pid, 52635c4bbdfSmrg xPointFixed * p1, 52735c4bbdfSmrg xPointFixed * p2, 52835c4bbdfSmrg int nStops, 52935c4bbdfSmrg xFixed * stops, xRenderColor * colors, int *error); 53005b261ecSmrg 5316747b715Smrgextern _X_EXPORT PicturePtr 53235c4bbdfSmrgCreateRadialGradientPicture(Picture pid, 53335c4bbdfSmrg xPointFixed * inner, 53435c4bbdfSmrg xPointFixed * outer, 53535c4bbdfSmrg xFixed innerRadius, 53635c4bbdfSmrg xFixed outerRadius, 53735c4bbdfSmrg int nStops, 53835c4bbdfSmrg xFixed * stops, xRenderColor * colors, int *error); 53905b261ecSmrg 5406747b715Smrgextern _X_EXPORT PicturePtr 54135c4bbdfSmrgCreateConicalGradientPicture(Picture pid, 54235c4bbdfSmrg xPointFixed * center, 54335c4bbdfSmrg xFixed angle, 54435c4bbdfSmrg int nStops, 54535c4bbdfSmrg xFixed * stops, xRenderColor * colors, int *error); 54605b261ecSmrg 54705b261ecSmrg#ifdef PANORAMIX 54835c4bbdfSmrgextern void PanoramiXRenderInit(void); 54935c4bbdfSmrgextern void PanoramiXRenderReset(void); 55005b261ecSmrg#endif 55105b261ecSmrg 5524642e01fSmrg/* 5534642e01fSmrg * matrix.c 5544642e01fSmrg */ 5554642e01fSmrg 5566747b715Smrgextern _X_EXPORT void 55735c4bbdfSmrgPictTransform_from_xRenderTransform(PictTransformPtr pict, 55835c4bbdfSmrg xRenderTransform * render); 5594642e01fSmrg 5606747b715Smrgextern _X_EXPORT void 56135c4bbdfSmrgxRenderTransform_from_PictTransform(xRenderTransform * render, 56235c4bbdfSmrg PictTransformPtr pict); 5634642e01fSmrg 5646747b715Smrgextern _X_EXPORT Bool 56535c4bbdfSmrg PictureTransformPoint(PictTransformPtr transform, PictVectorPtr vector); 5664642e01fSmrg 5676747b715Smrgextern _X_EXPORT Bool 56835c4bbdfSmrg PictureTransformPoint3d(PictTransformPtr transform, PictVectorPtr vector); 5694642e01fSmrg 57035c4bbdfSmrg#endif /* _PICTURESTR_H_ */ 571