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; 711b5d61b8Smrg xRenderColor fullcolor; 7205b261ecSmrg} PictSolidFill, *PictSolidFillPtr; 7305b261ecSmrg 7405b261ecSmrgtypedef struct _PictGradientStop { 7505b261ecSmrg xFixed x; 7605b261ecSmrg xRenderColor color; 7705b261ecSmrg} PictGradientStop, *PictGradientStopPtr; 7805b261ecSmrg 7905b261ecSmrgtypedef struct _PictGradient { 8005b261ecSmrg unsigned int type; 8105b261ecSmrg int nstops; 8205b261ecSmrg PictGradientStopPtr stops; 8305b261ecSmrg} PictGradient, *PictGradientPtr; 8405b261ecSmrg 8505b261ecSmrgtypedef struct _PictLinearGradient { 8605b261ecSmrg unsigned int type; 8705b261ecSmrg int nstops; 8805b261ecSmrg PictGradientStopPtr stops; 8905b261ecSmrg xPointFixed p1; 9005b261ecSmrg xPointFixed p2; 9105b261ecSmrg} PictLinearGradient, *PictLinearGradientPtr; 9205b261ecSmrg 9305b261ecSmrgtypedef struct _PictCircle { 9405b261ecSmrg xFixed x; 9505b261ecSmrg xFixed y; 9605b261ecSmrg xFixed radius; 9705b261ecSmrg} PictCircle, *PictCirclePtr; 9805b261ecSmrg 9905b261ecSmrgtypedef struct _PictRadialGradient { 10005b261ecSmrg unsigned int type; 10105b261ecSmrg int nstops; 10205b261ecSmrg PictGradientStopPtr stops; 10305b261ecSmrg PictCircle c1; 10405b261ecSmrg PictCircle c2; 10505b261ecSmrg} PictRadialGradient, *PictRadialGradientPtr; 10605b261ecSmrg 10705b261ecSmrgtypedef struct _PictConicalGradient { 10805b261ecSmrg unsigned int type; 10905b261ecSmrg int nstops; 11005b261ecSmrg PictGradientStopPtr stops; 11105b261ecSmrg xPointFixed center; 11205b261ecSmrg xFixed angle; 11305b261ecSmrg} PictConicalGradient, *PictConicalGradientPtr; 11405b261ecSmrg 11505b261ecSmrgtypedef union _SourcePict { 11605b261ecSmrg unsigned int type; 11705b261ecSmrg PictSolidFill solidFill; 11805b261ecSmrg PictGradient gradient; 11905b261ecSmrg PictLinearGradient linear; 12005b261ecSmrg PictRadialGradient radial; 12105b261ecSmrg PictConicalGradient conical; 12205b261ecSmrg} SourcePict, *SourcePictPtr; 12305b261ecSmrg 12405b261ecSmrgtypedef struct _Picture { 12535c4bbdfSmrg DrawablePtr pDrawable; 12635c4bbdfSmrg PictFormatPtr pFormat; 12735c4bbdfSmrg PictFormatShort format; /* PICT_FORMAT */ 12835c4bbdfSmrg int refcnt; 12935c4bbdfSmrg CARD32 id; 13035c4bbdfSmrg unsigned int repeat:1; 13135c4bbdfSmrg unsigned int graphicsExposures:1; 13235c4bbdfSmrg unsigned int subWindowMode:1; 13335c4bbdfSmrg unsigned int polyEdge:1; 13435c4bbdfSmrg unsigned int polyMode:1; 13535c4bbdfSmrg unsigned int freeCompClip:1; 13635c4bbdfSmrg unsigned int componentAlpha:1; 13735c4bbdfSmrg unsigned int repeatType:2; 13835c4bbdfSmrg unsigned int filter:3; 13935c4bbdfSmrg unsigned int stateChanges:CPLastBit; 14035c4bbdfSmrg unsigned int unused:18 - CPLastBit; 14135c4bbdfSmrg 14235c4bbdfSmrg PicturePtr pNext; /* chain on same drawable */ 14335c4bbdfSmrg 14435c4bbdfSmrg PicturePtr alphaMap; 14535c4bbdfSmrg DDXPointRec alphaOrigin; 14635c4bbdfSmrg 14735c4bbdfSmrg DDXPointRec clipOrigin; 14835c4bbdfSmrg RegionPtr clientClip; 14935c4bbdfSmrg 15035c4bbdfSmrg unsigned long serialNumber; 15135c4bbdfSmrg 15235c4bbdfSmrg RegionPtr pCompositeClip; 15335c4bbdfSmrg 15435c4bbdfSmrg PrivateRec *devPrivates; 15535c4bbdfSmrg 15635c4bbdfSmrg PictTransform *transform; 15735c4bbdfSmrg 15835c4bbdfSmrg SourcePictPtr pSourcePict; 15935c4bbdfSmrg xFixed *filter_params; 16035c4bbdfSmrg int filter_nparams; 16105b261ecSmrg} PictureRec; 16205b261ecSmrg 1634642e01fSmrgtypedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id, 16435c4bbdfSmrg xFixed * params, int nparams, 16535c4bbdfSmrg int *width, int *height); 16605b261ecSmrgtypedef struct { 16735c4bbdfSmrg char *name; 16835c4bbdfSmrg int id; 16905b261ecSmrg PictFilterValidateParamsProcPtr ValidateParams; 17035c4bbdfSmrg int width, height; 17105b261ecSmrg} PictFilterRec, *PictFilterPtr; 17205b261ecSmrg 17305b261ecSmrg#define PictFilterNearest 0 17405b261ecSmrg#define PictFilterBilinear 1 17505b261ecSmrg 17605b261ecSmrg#define PictFilterFast 2 17705b261ecSmrg#define PictFilterGood 3 17805b261ecSmrg#define PictFilterBest 4 17905b261ecSmrg 18005b261ecSmrg#define PictFilterConvolution 5 1819ace9065Smrg/* if you add an 8th filter, expand the filter bitfield above */ 18205b261ecSmrg 18305b261ecSmrgtypedef struct { 18435c4bbdfSmrg char *alias; 18535c4bbdfSmrg int alias_id; 18635c4bbdfSmrg int filter_id; 18705b261ecSmrg} PictFilterAliasRec, *PictFilterAliasPtr; 18805b261ecSmrg 18935c4bbdfSmrgtypedef int (*CreatePictureProcPtr) (PicturePtr pPicture); 19035c4bbdfSmrgtypedef void (*DestroyPictureProcPtr) (PicturePtr pPicture); 19135c4bbdfSmrgtypedef int (*ChangePictureClipProcPtr) (PicturePtr pPicture, 19235c4bbdfSmrg int clipType, void *value, int n); 19335c4bbdfSmrgtypedef void (*DestroyPictureClipProcPtr) (PicturePtr pPicture); 19435c4bbdfSmrg 19535c4bbdfSmrgtypedef int (*ChangePictureTransformProcPtr) (PicturePtr pPicture, 19635c4bbdfSmrg PictTransform * transform); 19735c4bbdfSmrg 19835c4bbdfSmrgtypedef int (*ChangePictureFilterProcPtr) (PicturePtr pPicture, 19935c4bbdfSmrg int filter, 20035c4bbdfSmrg xFixed * params, int nparams); 20135c4bbdfSmrg 20235c4bbdfSmrgtypedef void (*DestroyPictureFilterProcPtr) (PicturePtr pPicture); 20335c4bbdfSmrg 20435c4bbdfSmrgtypedef void (*ChangePictureProcPtr) (PicturePtr pPicture, Mask mask); 20535c4bbdfSmrgtypedef void (*ValidatePictureProcPtr) (PicturePtr pPicture, Mask mask); 20635c4bbdfSmrgtypedef void (*CompositeProcPtr) (CARD8 op, 20735c4bbdfSmrg PicturePtr pSrc, 20835c4bbdfSmrg PicturePtr pMask, 20935c4bbdfSmrg PicturePtr pDst, 21035c4bbdfSmrg INT16 xSrc, 21135c4bbdfSmrg INT16 ySrc, 21235c4bbdfSmrg INT16 xMask, 21335c4bbdfSmrg INT16 yMask, 21435c4bbdfSmrg INT16 xDst, 21535c4bbdfSmrg INT16 yDst, CARD16 width, CARD16 height); 21635c4bbdfSmrg 21735c4bbdfSmrgtypedef void (*GlyphsProcPtr) (CARD8 op, 21835c4bbdfSmrg PicturePtr pSrc, 21935c4bbdfSmrg PicturePtr pDst, 22035c4bbdfSmrg PictFormatPtr maskFormat, 22135c4bbdfSmrg INT16 xSrc, 22235c4bbdfSmrg INT16 ySrc, 22335c4bbdfSmrg int nlists, 22435c4bbdfSmrg GlyphListPtr lists, GlyphPtr * glyphs); 22535c4bbdfSmrg 22635c4bbdfSmrgtypedef void (*CompositeRectsProcPtr) (CARD8 op, 22735c4bbdfSmrg PicturePtr pDst, 22835c4bbdfSmrg xRenderColor * color, 22935c4bbdfSmrg int nRect, xRectangle *rects); 23035c4bbdfSmrg 23135c4bbdfSmrgtypedef void (*RasterizeTrapezoidProcPtr) (PicturePtr pMask, 23235c4bbdfSmrg xTrapezoid * trap, 23335c4bbdfSmrg int x_off, int y_off); 23435c4bbdfSmrg 23535c4bbdfSmrgtypedef void (*TrapezoidsProcPtr) (CARD8 op, 23635c4bbdfSmrg PicturePtr pSrc, 23735c4bbdfSmrg PicturePtr pDst, 23835c4bbdfSmrg PictFormatPtr maskFormat, 23935c4bbdfSmrg INT16 xSrc, 24035c4bbdfSmrg INT16 ySrc, int ntrap, xTrapezoid * traps); 24135c4bbdfSmrg 24235c4bbdfSmrgtypedef void (*TrianglesProcPtr) (CARD8 op, 24335c4bbdfSmrg PicturePtr pSrc, 24435c4bbdfSmrg PicturePtr pDst, 24535c4bbdfSmrg PictFormatPtr maskFormat, 24635c4bbdfSmrg INT16 xSrc, 24735c4bbdfSmrg INT16 ySrc, int ntri, xTriangle * tris); 24835c4bbdfSmrg 24935c4bbdfSmrgtypedef void (*TriStripProcPtr) (CARD8 op, 25035c4bbdfSmrg PicturePtr pSrc, 25135c4bbdfSmrg PicturePtr pDst, 25235c4bbdfSmrg PictFormatPtr maskFormat, 25335c4bbdfSmrg INT16 xSrc, 25435c4bbdfSmrg INT16 ySrc, int npoint, xPointFixed * points); 25535c4bbdfSmrg 25635c4bbdfSmrgtypedef void (*TriFanProcPtr) (CARD8 op, 25735c4bbdfSmrg PicturePtr pSrc, 25835c4bbdfSmrg PicturePtr pDst, 25935c4bbdfSmrg PictFormatPtr maskFormat, 26035c4bbdfSmrg INT16 xSrc, 26135c4bbdfSmrg INT16 ySrc, int npoint, xPointFixed * points); 26235c4bbdfSmrg 26335c4bbdfSmrgtypedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen, PictFormatPtr pFormat); 26435c4bbdfSmrg 26535c4bbdfSmrgtypedef void (*CloseIndexedProcPtr) (ScreenPtr pScreen, PictFormatPtr pFormat); 26635c4bbdfSmrg 26735c4bbdfSmrgtypedef void (*UpdateIndexedProcPtr) (ScreenPtr pScreen, 26835c4bbdfSmrg PictFormatPtr pFormat, 26935c4bbdfSmrg int ndef, xColorItem * pdef); 27035c4bbdfSmrg 27135c4bbdfSmrgtypedef void (*AddTrapsProcPtr) (PicturePtr pPicture, 27235c4bbdfSmrg INT16 xOff, 27335c4bbdfSmrg INT16 yOff, int ntrap, xTrap * traps); 27435c4bbdfSmrg 27535c4bbdfSmrgtypedef void (*AddTrianglesProcPtr) (PicturePtr pPicture, 27635c4bbdfSmrg INT16 xOff, 27735c4bbdfSmrg INT16 yOff, int ntri, xTriangle * tris); 27835c4bbdfSmrg 27935c4bbdfSmrgtypedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen, GlyphPtr glyph); 28035c4bbdfSmrg 28135c4bbdfSmrgtypedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen, GlyphPtr glyph); 28205b261ecSmrg 28305b261ecSmrgtypedef struct _PictureScreen { 28435c4bbdfSmrg PictFormatPtr formats; 28535c4bbdfSmrg PictFormatPtr fallback; 28635c4bbdfSmrg int nformats; 28705b261ecSmrg 28835c4bbdfSmrg CreatePictureProcPtr CreatePicture; 28935c4bbdfSmrg DestroyPictureProcPtr DestroyPicture; 29035c4bbdfSmrg ChangePictureClipProcPtr ChangePictureClip; 29135c4bbdfSmrg DestroyPictureClipProcPtr DestroyPictureClip; 29205b261ecSmrg 29335c4bbdfSmrg ChangePictureProcPtr ChangePicture; 29435c4bbdfSmrg ValidatePictureProcPtr ValidatePicture; 29505b261ecSmrg 29635c4bbdfSmrg CompositeProcPtr Composite; 29735c4bbdfSmrg GlyphsProcPtr Glyphs; /* unused */ 29835c4bbdfSmrg CompositeRectsProcPtr CompositeRects; 29905b261ecSmrg 30035c4bbdfSmrg DestroyWindowProcPtr DestroyWindow; 30135c4bbdfSmrg CloseScreenProcPtr CloseScreen; 30205b261ecSmrg 30335c4bbdfSmrg StoreColorsProcPtr StoreColors; 30405b261ecSmrg 30535c4bbdfSmrg InitIndexedProcPtr InitIndexed; 30635c4bbdfSmrg CloseIndexedProcPtr CloseIndexed; 30735c4bbdfSmrg UpdateIndexedProcPtr UpdateIndexed; 30805b261ecSmrg 30935c4bbdfSmrg int subpixel; 31005b261ecSmrg 31135c4bbdfSmrg PictFilterPtr filters; 31235c4bbdfSmrg int nfilters; 31335c4bbdfSmrg PictFilterAliasPtr filterAliases; 31435c4bbdfSmrg int nfilterAliases; 31505b261ecSmrg 31605b261ecSmrg /** 31705b261ecSmrg * Called immediately after a picture's transform is changed through the 31805b261ecSmrg * SetPictureTransform request. Not called for source-only pictures. 31905b261ecSmrg */ 32035c4bbdfSmrg ChangePictureTransformProcPtr ChangePictureTransform; 32105b261ecSmrg 32205b261ecSmrg /** 32305b261ecSmrg * Called immediately after a picture's transform is changed through the 32405b261ecSmrg * SetPictureFilter request. Not called for source-only pictures. 32505b261ecSmrg */ 32635c4bbdfSmrg ChangePictureFilterProcPtr ChangePictureFilter; 32705b261ecSmrg 32835c4bbdfSmrg DestroyPictureFilterProcPtr DestroyPictureFilter; 32905b261ecSmrg 33035c4bbdfSmrg TrapezoidsProcPtr Trapezoids; 33135c4bbdfSmrg TrianglesProcPtr Triangles; 33205b261ecSmrg 33335c4bbdfSmrg RasterizeTrapezoidProcPtr RasterizeTrapezoid; 33405b261ecSmrg 33535c4bbdfSmrg AddTrianglesProcPtr AddTriangles; 33605b261ecSmrg 33735c4bbdfSmrg AddTrapsProcPtr AddTraps; 33805b261ecSmrg 33935c4bbdfSmrg RealizeGlyphProcPtr RealizeGlyph; 34035c4bbdfSmrg UnrealizeGlyphProcPtr UnrealizeGlyph; 34105b261ecSmrg 34235c4bbdfSmrg#define PICTURE_SCREEN_VERSION 2 34335c4bbdfSmrg TriStripProcPtr TriStrip; 34435c4bbdfSmrg TriFanProcPtr TriFan; 34505b261ecSmrg} PictureScreenRec, *PictureScreenPtr; 34605b261ecSmrg 3476747b715Smrgextern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec; 3486747b715Smrg#define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec) 3496747b715Smrg 3506747b715Smrgextern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec; 3516747b715Smrg#define PictureWindowPrivateKey (&PictureWindowPrivateKeyRec) 3526747b715Smrg 35335c4bbdfSmrgextern RESTYPE PictureType; 35435c4bbdfSmrgextern RESTYPE PictFormatType; 35535c4bbdfSmrgextern RESTYPE GlyphSetType; 35605b261ecSmrg 3574642e01fSmrg#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey)) 3586747b715Smrg#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL) 3594642e01fSmrg#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p) 3604642e01fSmrg#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey)) 3614642e01fSmrg#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p) 36205b261ecSmrg 3636747b715Smrg#define VERIFY_PICTURE(pPicture, pid, client, mode) {\ 36435c4bbdfSmrg int tmprc = dixLookupResourceByType((void *)&(pPicture), pid,\ 36535c4bbdfSmrg PictureType, client, mode);\ 36635c4bbdfSmrg if (tmprc != Success)\ 36735c4bbdfSmrg return tmprc;\ 36805b261ecSmrg} 36905b261ecSmrg 3706747b715Smrg#define VERIFY_ALPHA(pPicture, pid, client, mode) {\ 37105b261ecSmrg if (pid == None) \ 37205b261ecSmrg pPicture = 0; \ 37305b261ecSmrg else { \ 3746747b715Smrg VERIFY_PICTURE(pPicture, pid, client, mode); \ 37505b261ecSmrg } \ 37605b261ecSmrg} \ 37705b261ecSmrg 37835c4bbdfSmrgextern _X_EXPORT PictFormatPtr 37935c4bbdfSmrg PictureWindowFormat(WindowPtr pWindow); 38005b261ecSmrg 3816747b715Smrgextern _X_EXPORT Bool 38235c4bbdfSmrg PictureSetSubpixelOrder(ScreenPtr pScreen, int subpixel); 38305b261ecSmrg 3846747b715Smrgextern _X_EXPORT int 38535c4bbdfSmrg PictureGetSubpixelOrder(ScreenPtr pScreen); 38605b261ecSmrg 3876747b715Smrgextern _X_EXPORT PictFormatPtr 38835c4bbdfSmrgPictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual); 38905b261ecSmrg 3906747b715Smrgextern _X_EXPORT PictFormatPtr 39135c4bbdfSmrgPictureMatchFormat(ScreenPtr pScreen, int depth, CARD32 format); 39205b261ecSmrg 3936747b715Smrgextern _X_EXPORT Bool 39435c4bbdfSmrg PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats); 39505b261ecSmrg 3966747b715Smrgextern _X_EXPORT int 39735c4bbdfSmrg PictureGetFilterId(const char *filter, int len, Bool makeit); 39805b261ecSmrg 39935c4bbdfSmrgextern _X_EXPORT char *PictureGetFilterName(int id); 40005b261ecSmrg 4016747b715Smrgextern _X_EXPORT int 40235c4bbdfSmrgPictureAddFilter(ScreenPtr pScreen, 40335c4bbdfSmrg const char *filter, 40435c4bbdfSmrg PictFilterValidateParamsProcPtr ValidateParams, 40535c4bbdfSmrg int width, int height); 40605b261ecSmrg 4076747b715Smrgextern _X_EXPORT Bool 40835c4bbdfSmrgPictureSetFilterAlias(ScreenPtr pScreen, const char *filter, const char *alias); 40905b261ecSmrg 4106747b715Smrgextern _X_EXPORT Bool 41135c4bbdfSmrg PictureSetDefaultFilters(ScreenPtr pScreen); 41205b261ecSmrg 4136747b715Smrgextern _X_EXPORT void 41435c4bbdfSmrg PictureResetFilters(ScreenPtr pScreen); 41505b261ecSmrg 4166747b715Smrgextern _X_EXPORT PictFilterPtr 41735c4bbdfSmrgPictureFindFilter(ScreenPtr pScreen, char *name, int len); 41805b261ecSmrg 4196747b715Smrgextern _X_EXPORT int 42035c4bbdfSmrgSetPicturePictFilter(PicturePtr pPicture, PictFilterPtr pFilter, 42135c4bbdfSmrg xFixed * params, int nparams); 4224642e01fSmrg 4236747b715Smrgextern _X_EXPORT int 42435c4bbdfSmrgSetPictureFilter(PicturePtr pPicture, char *name, int len, 42535c4bbdfSmrg xFixed * params, int nparams); 42605b261ecSmrg 4276747b715Smrgextern _X_EXPORT Bool 42835c4bbdfSmrg PictureFinishInit(void); 42905b261ecSmrg 4306747b715Smrgextern _X_EXPORT PicturePtr 43135c4bbdfSmrgCreatePicture(Picture pid, 43235c4bbdfSmrg DrawablePtr pDrawable, 43335c4bbdfSmrg PictFormatPtr pFormat, 43435c4bbdfSmrg Mask mask, XID *list, ClientPtr client, int *error); 43505b261ecSmrg 4366747b715Smrgextern _X_EXPORT int 43735c4bbdfSmrgChangePicture(PicturePtr pPicture, 43835c4bbdfSmrg Mask vmask, XID *vlist, DevUnion *ulist, ClientPtr client); 43905b261ecSmrg 4406747b715Smrgextern _X_EXPORT int 44105b261ecSmrg 44235c4bbdfSmrgSetPictureClipRects(PicturePtr pPicture, 44335c4bbdfSmrg int xOrigin, int yOrigin, int nRect, xRectangle *rects); 44405b261ecSmrg 4456747b715Smrgextern _X_EXPORT int 44635c4bbdfSmrgSetPictureClipRegion(PicturePtr pPicture, 44735c4bbdfSmrg int xOrigin, int yOrigin, RegionPtr pRegion); 44805b261ecSmrg 44935c4bbdfSmrgextern _X_EXPORT int 45035c4bbdfSmrg SetPictureTransform(PicturePtr pPicture, PictTransform * transform); 45105b261ecSmrg 4526747b715Smrgextern _X_EXPORT void 45335c4bbdfSmrg ValidatePicture(PicturePtr pPicture); 45405b261ecSmrg 4556747b715Smrgextern _X_EXPORT int 45635c4bbdfSmrg FreePicture(void *pPicture, XID pid); 45705b261ecSmrg 4586747b715Smrgextern _X_EXPORT void 45935c4bbdfSmrgCompositePicture(CARD8 op, 46035c4bbdfSmrg PicturePtr pSrc, 46135c4bbdfSmrg PicturePtr pMask, 46235c4bbdfSmrg PicturePtr pDst, 46335c4bbdfSmrg INT16 xSrc, 46435c4bbdfSmrg INT16 ySrc, 46535c4bbdfSmrg INT16 xMask, 46635c4bbdfSmrg INT16 yMask, 46735c4bbdfSmrg INT16 xDst, INT16 yDst, CARD16 width, CARD16 height); 46805b261ecSmrg 4696747b715Smrgextern _X_EXPORT void 47035c4bbdfSmrgCompositeGlyphs(CARD8 op, 47135c4bbdfSmrg PicturePtr pSrc, 47235c4bbdfSmrg PicturePtr pDst, 47335c4bbdfSmrg PictFormatPtr maskFormat, 47435c4bbdfSmrg INT16 xSrc, 47535c4bbdfSmrg INT16 ySrc, int nlist, GlyphListPtr lists, GlyphPtr * glyphs); 47605b261ecSmrg 4776747b715Smrgextern _X_EXPORT void 47835c4bbdfSmrgCompositeRects(CARD8 op, 47935c4bbdfSmrg PicturePtr pDst, 48035c4bbdfSmrg xRenderColor * color, int nRect, xRectangle *rects); 48105b261ecSmrg 4826747b715Smrgextern _X_EXPORT void 48335c4bbdfSmrgCompositeTrapezoids(CARD8 op, 48435c4bbdfSmrg PicturePtr pSrc, 48535c4bbdfSmrg PicturePtr pDst, 48635c4bbdfSmrg PictFormatPtr maskFormat, 48735c4bbdfSmrg INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps); 48805b261ecSmrg 4896747b715Smrgextern _X_EXPORT void 49035c4bbdfSmrgCompositeTriangles(CARD8 op, 49135c4bbdfSmrg PicturePtr pSrc, 49235c4bbdfSmrg PicturePtr pDst, 49335c4bbdfSmrg PictFormatPtr maskFormat, 49435c4bbdfSmrg INT16 xSrc, 49535c4bbdfSmrg INT16 ySrc, int ntriangles, xTriangle * triangles); 49605b261ecSmrg 4976747b715Smrgextern _X_EXPORT void 49835c4bbdfSmrgCompositeTriStrip(CARD8 op, 49935c4bbdfSmrg PicturePtr pSrc, 50035c4bbdfSmrg PicturePtr pDst, 50135c4bbdfSmrg PictFormatPtr maskFormat, 50235c4bbdfSmrg INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); 50305b261ecSmrg 5046747b715Smrgextern _X_EXPORT void 50535c4bbdfSmrgCompositeTriFan(CARD8 op, 50635c4bbdfSmrg PicturePtr pSrc, 50735c4bbdfSmrg PicturePtr pDst, 50835c4bbdfSmrg PictFormatPtr maskFormat, 50935c4bbdfSmrg INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points); 51005b261ecSmrg 51105b261ecSmrgBool 51235c4bbdfSmrg AnimCurInit(ScreenPtr pScreen); 51305b261ecSmrg 51405b261ecSmrgint 51535c4bbdfSmrgAnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor, 51635c4bbdfSmrg CursorPtr *ppCursor, ClientPtr client, XID cid); 51705b261ecSmrg 5186747b715Smrgextern _X_EXPORT void 51935c4bbdfSmrgAddTraps(PicturePtr pPicture, 52035c4bbdfSmrg INT16 xOff, INT16 yOff, int ntraps, xTrap * traps); 52105b261ecSmrg 5226747b715Smrgextern _X_EXPORT PicturePtr 52335c4bbdfSmrgCreateSolidPicture(Picture pid, xRenderColor * color, int *error); 52405b261ecSmrg 5256747b715Smrgextern _X_EXPORT PicturePtr 52635c4bbdfSmrgCreateLinearGradientPicture(Picture pid, 52735c4bbdfSmrg xPointFixed * p1, 52835c4bbdfSmrg xPointFixed * p2, 52935c4bbdfSmrg int nStops, 53035c4bbdfSmrg xFixed * stops, xRenderColor * colors, int *error); 53105b261ecSmrg 5326747b715Smrgextern _X_EXPORT PicturePtr 53335c4bbdfSmrgCreateRadialGradientPicture(Picture pid, 53435c4bbdfSmrg xPointFixed * inner, 53535c4bbdfSmrg xPointFixed * outer, 53635c4bbdfSmrg xFixed innerRadius, 53735c4bbdfSmrg xFixed outerRadius, 53835c4bbdfSmrg int nStops, 53935c4bbdfSmrg xFixed * stops, xRenderColor * colors, int *error); 54005b261ecSmrg 5416747b715Smrgextern _X_EXPORT PicturePtr 54235c4bbdfSmrgCreateConicalGradientPicture(Picture pid, 54335c4bbdfSmrg xPointFixed * center, 54435c4bbdfSmrg xFixed angle, 54535c4bbdfSmrg int nStops, 54635c4bbdfSmrg xFixed * stops, xRenderColor * colors, int *error); 54705b261ecSmrg 54805b261ecSmrg#ifdef PANORAMIX 54935c4bbdfSmrgextern void PanoramiXRenderInit(void); 55035c4bbdfSmrgextern void PanoramiXRenderReset(void); 55105b261ecSmrg#endif 55205b261ecSmrg 5534642e01fSmrg/* 5544642e01fSmrg * matrix.c 5554642e01fSmrg */ 5564642e01fSmrg 5576747b715Smrgextern _X_EXPORT void 55835c4bbdfSmrgPictTransform_from_xRenderTransform(PictTransformPtr pict, 55935c4bbdfSmrg xRenderTransform * render); 5604642e01fSmrg 5616747b715Smrgextern _X_EXPORT void 56235c4bbdfSmrgxRenderTransform_from_PictTransform(xRenderTransform * render, 56335c4bbdfSmrg PictTransformPtr pict); 5644642e01fSmrg 5656747b715Smrgextern _X_EXPORT Bool 56635c4bbdfSmrg PictureTransformPoint(PictTransformPtr transform, PictVectorPtr vector); 5674642e01fSmrg 5686747b715Smrgextern _X_EXPORT Bool 56935c4bbdfSmrg PictureTransformPoint3d(PictTransformPtr transform, PictVectorPtr vector); 5704642e01fSmrg 57135c4bbdfSmrg#endif /* _PICTURESTR_H_ */ 572