1706f2543Smrg/* 2706f2543Smrg * Copyright © 2000 SuSE, Inc. 3706f2543Smrg * 4706f2543Smrg * Permission to use, copy, modify, distribute, and sell this software and its 5706f2543Smrg * documentation for any purpose is hereby granted without fee, provided that 6706f2543Smrg * the above copyright notice appear in all copies and that both that 7706f2543Smrg * copyright notice and this permission notice appear in supporting 8706f2543Smrg * documentation, and that the name of SuSE not be used in advertising or 9706f2543Smrg * publicity pertaining to distribution of the software without specific, 10706f2543Smrg * written prior permission. SuSE makes no representations about the 11706f2543Smrg * suitability of this software for any purpose. It is provided "as is" 12706f2543Smrg * without express or implied warranty. 13706f2543Smrg * 14706f2543Smrg * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 15706f2543Smrg * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE 16706f2543Smrg * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17706f2543Smrg * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 18706f2543Smrg * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 19706f2543Smrg * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20706f2543Smrg * 21706f2543Smrg * Author: Keith Packard, SuSE, Inc. 22706f2543Smrg */ 23706f2543Smrg 24706f2543Smrg#ifndef _PICTURESTR_H_ 25706f2543Smrg#define _PICTURESTR_H_ 26706f2543Smrg 27706f2543Smrg#include "scrnintstr.h" 28706f2543Smrg#include "glyphstr.h" 29706f2543Smrg#include "resource.h" 30706f2543Smrg#include "privates.h" 31706f2543Smrg 32706f2543Smrgtypedef struct _DirectFormat { 33706f2543Smrg CARD16 red, redMask; 34706f2543Smrg CARD16 green, greenMask; 35706f2543Smrg CARD16 blue, blueMask; 36706f2543Smrg CARD16 alpha, alphaMask; 37706f2543Smrg} DirectFormatRec; 38706f2543Smrg 39706f2543Smrgtypedef struct _IndexFormat { 40706f2543Smrg VisualID vid; 41706f2543Smrg ColormapPtr pColormap; 42706f2543Smrg int nvalues; 43706f2543Smrg xIndexValue *pValues; 44706f2543Smrg void *devPrivate; 45706f2543Smrg} IndexFormatRec; 46706f2543Smrg 47706f2543Smrgtypedef struct _PictFormat { 48706f2543Smrg CARD32 id; 49706f2543Smrg CARD32 format; /* except bpp */ 50706f2543Smrg unsigned char type; 51706f2543Smrg unsigned char depth; 52706f2543Smrg DirectFormatRec direct; 53706f2543Smrg IndexFormatRec index; 54706f2543Smrg} PictFormatRec; 55706f2543Smrg 56706f2543Smrgtypedef struct pixman_vector PictVector, *PictVectorPtr; 57706f2543Smrgtypedef struct pixman_transform PictTransform, *PictTransformPtr; 58706f2543Smrg 59706f2543Smrg#define pict_f_vector pixman_f_vector 60706f2543Smrg#define pict_f_transform pixman_f_transform 61706f2543Smrg 62706f2543Smrg#define PICT_GRADIENT_STOPTABLE_SIZE 1024 63706f2543Smrg#define SourcePictTypeSolidFill 0 64706f2543Smrg#define SourcePictTypeLinear 1 65706f2543Smrg#define SourcePictTypeRadial 2 66706f2543Smrg#define SourcePictTypeConical 3 67706f2543Smrg 68706f2543Smrg#define SourcePictClassUnknown 0 69706f2543Smrg#define SourcePictClassHorizontal 1 70706f2543Smrg#define SourcePictClassVertical 2 71706f2543Smrg 72706f2543Smrgtypedef struct _PictSolidFill { 73706f2543Smrg unsigned int type; 74706f2543Smrg unsigned int class; 75706f2543Smrg CARD32 color; 76706f2543Smrg} PictSolidFill, *PictSolidFillPtr; 77706f2543Smrg 78706f2543Smrgtypedef struct _PictGradientStop { 79706f2543Smrg xFixed x; 80706f2543Smrg xRenderColor color; 81706f2543Smrg} PictGradientStop, *PictGradientStopPtr; 82706f2543Smrg 83706f2543Smrgtypedef struct _PictGradient { 84706f2543Smrg unsigned int type; 85706f2543Smrg unsigned int class; 86706f2543Smrg int nstops; 87706f2543Smrg PictGradientStopPtr stops; 88706f2543Smrg int stopRange; 89706f2543Smrg CARD32 *colorTable; 90706f2543Smrg int colorTableSize; 91706f2543Smrg} PictGradient, *PictGradientPtr; 92706f2543Smrg 93706f2543Smrgtypedef struct _PictLinearGradient { 94706f2543Smrg unsigned int type; 95706f2543Smrg unsigned int class; 96706f2543Smrg int nstops; 97706f2543Smrg PictGradientStopPtr stops; 98706f2543Smrg int stopRange; 99706f2543Smrg CARD32 *colorTable; 100706f2543Smrg int colorTableSize; 101706f2543Smrg xPointFixed p1; 102706f2543Smrg xPointFixed p2; 103706f2543Smrg} PictLinearGradient, *PictLinearGradientPtr; 104706f2543Smrg 105706f2543Smrgtypedef struct _PictCircle { 106706f2543Smrg xFixed x; 107706f2543Smrg xFixed y; 108706f2543Smrg xFixed radius; 109706f2543Smrg} PictCircle, *PictCirclePtr; 110706f2543Smrg 111706f2543Smrgtypedef struct _PictRadialGradient { 112706f2543Smrg unsigned int type; 113706f2543Smrg unsigned int class; 114706f2543Smrg int nstops; 115706f2543Smrg PictGradientStopPtr stops; 116706f2543Smrg int stopRange; 117706f2543Smrg CARD32 *colorTable; 118706f2543Smrg int colorTableSize; 119706f2543Smrg PictCircle c1; 120706f2543Smrg PictCircle c2; 121706f2543Smrg double cdx; 122706f2543Smrg double cdy; 123706f2543Smrg double dr; 124706f2543Smrg double A; 125706f2543Smrg} PictRadialGradient, *PictRadialGradientPtr; 126706f2543Smrg 127706f2543Smrgtypedef struct _PictConicalGradient { 128706f2543Smrg unsigned int type; 129706f2543Smrg unsigned int class; 130706f2543Smrg int nstops; 131706f2543Smrg PictGradientStopPtr stops; 132706f2543Smrg int stopRange; 133706f2543Smrg CARD32 *colorTable; 134706f2543Smrg int colorTableSize; 135706f2543Smrg xPointFixed center; 136706f2543Smrg xFixed angle; 137706f2543Smrg} PictConicalGradient, *PictConicalGradientPtr; 138706f2543Smrg 139706f2543Smrgtypedef union _SourcePict { 140706f2543Smrg unsigned int type; 141706f2543Smrg PictSolidFill solidFill; 142706f2543Smrg PictGradient gradient; 143706f2543Smrg PictLinearGradient linear; 144706f2543Smrg PictRadialGradient radial; 145706f2543Smrg PictConicalGradient conical; 146706f2543Smrg} SourcePict, *SourcePictPtr; 147706f2543Smrg 148706f2543Smrgtypedef struct _Picture { 149706f2543Smrg DrawablePtr pDrawable; 150706f2543Smrg PictFormatPtr pFormat; 151706f2543Smrg PictFormatShort format; /* PICT_FORMAT */ 152706f2543Smrg int refcnt; 153706f2543Smrg CARD32 id; 154706f2543Smrg unsigned int repeat : 1; 155706f2543Smrg unsigned int graphicsExposures : 1; 156706f2543Smrg unsigned int subWindowMode : 1; 157706f2543Smrg unsigned int polyEdge : 1; 158706f2543Smrg unsigned int polyMode : 1; 159706f2543Smrg unsigned int freeCompClip : 1; 160706f2543Smrg unsigned int clientClipType : 2; 161706f2543Smrg unsigned int componentAlpha : 1; 162706f2543Smrg unsigned int repeatType : 2; 163706f2543Smrg unsigned int filter : 3; 164706f2543Smrg unsigned int stateChanges : CPLastBit; 165706f2543Smrg unsigned int unused : 18 - CPLastBit; 166706f2543Smrg 167706f2543Smrg PicturePtr pNext; /* chain on same drawable */ 168706f2543Smrg 169706f2543Smrg PicturePtr alphaMap; 170706f2543Smrg DDXPointRec alphaOrigin; 171706f2543Smrg 172706f2543Smrg DDXPointRec clipOrigin; 173706f2543Smrg pointer clientClip; 174706f2543Smrg 175706f2543Smrg unsigned long serialNumber; 176706f2543Smrg 177706f2543Smrg RegionPtr pCompositeClip; 178706f2543Smrg 179706f2543Smrg PrivateRec *devPrivates; 180706f2543Smrg 181706f2543Smrg PictTransform *transform; 182706f2543Smrg 183706f2543Smrg SourcePictPtr pSourcePict; 184706f2543Smrg xFixed *filter_params; 185706f2543Smrg int filter_nparams; 186706f2543Smrg} PictureRec; 187706f2543Smrg 188706f2543Smrgtypedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id, 189706f2543Smrg xFixed *params, int nparams, 190706f2543Smrg int *width, int *height); 191706f2543Smrgtypedef struct { 192706f2543Smrg char *name; 193706f2543Smrg int id; 194706f2543Smrg PictFilterValidateParamsProcPtr ValidateParams; 195706f2543Smrg int width, height; 196706f2543Smrg} PictFilterRec, *PictFilterPtr; 197706f2543Smrg 198706f2543Smrg#define PictFilterNearest 0 199706f2543Smrg#define PictFilterBilinear 1 200706f2543Smrg 201706f2543Smrg#define PictFilterFast 2 202706f2543Smrg#define PictFilterGood 3 203706f2543Smrg#define PictFilterBest 4 204706f2543Smrg 205706f2543Smrg#define PictFilterConvolution 5 206706f2543Smrg/* if you add an 8th filter, expand the filter bitfield above */ 207706f2543Smrg 208706f2543Smrgtypedef struct { 209706f2543Smrg char *alias; 210706f2543Smrg int alias_id; 211706f2543Smrg int filter_id; 212706f2543Smrg} PictFilterAliasRec, *PictFilterAliasPtr; 213706f2543Smrg 214706f2543Smrgtypedef int (*CreatePictureProcPtr) (PicturePtr pPicture); 215706f2543Smrgtypedef void (*DestroyPictureProcPtr) (PicturePtr pPicture); 216706f2543Smrgtypedef int (*ChangePictureClipProcPtr) (PicturePtr pPicture, 217706f2543Smrg int clipType, 218706f2543Smrg pointer value, 219706f2543Smrg int n); 220706f2543Smrgtypedef void (*DestroyPictureClipProcPtr)(PicturePtr pPicture); 221706f2543Smrg 222706f2543Smrgtypedef int (*ChangePictureTransformProcPtr) (PicturePtr pPicture, 223706f2543Smrg PictTransform *transform); 224706f2543Smrg 225706f2543Smrgtypedef int (*ChangePictureFilterProcPtr) (PicturePtr pPicture, 226706f2543Smrg int filter, 227706f2543Smrg xFixed *params, 228706f2543Smrg int nparams); 229706f2543Smrg 230706f2543Smrgtypedef void (*DestroyPictureFilterProcPtr) (PicturePtr pPicture); 231706f2543Smrg 232706f2543Smrgtypedef void (*ChangePictureProcPtr) (PicturePtr pPicture, 233706f2543Smrg Mask mask); 234706f2543Smrgtypedef void (*ValidatePictureProcPtr) (PicturePtr pPicture, 235706f2543Smrg Mask mask); 236706f2543Smrgtypedef void (*CompositeProcPtr) (CARD8 op, 237706f2543Smrg PicturePtr pSrc, 238706f2543Smrg PicturePtr pMask, 239706f2543Smrg PicturePtr pDst, 240706f2543Smrg INT16 xSrc, 241706f2543Smrg INT16 ySrc, 242706f2543Smrg INT16 xMask, 243706f2543Smrg INT16 yMask, 244706f2543Smrg INT16 xDst, 245706f2543Smrg INT16 yDst, 246706f2543Smrg CARD16 width, 247706f2543Smrg CARD16 height); 248706f2543Smrg 249706f2543Smrgtypedef void (*GlyphsProcPtr) (CARD8 op, 250706f2543Smrg PicturePtr pSrc, 251706f2543Smrg PicturePtr pDst, 252706f2543Smrg PictFormatPtr maskFormat, 253706f2543Smrg INT16 xSrc, 254706f2543Smrg INT16 ySrc, 255706f2543Smrg int nlists, 256706f2543Smrg GlyphListPtr lists, 257706f2543Smrg GlyphPtr *glyphs); 258706f2543Smrg 259706f2543Smrgtypedef void (*CompositeRectsProcPtr) (CARD8 op, 260706f2543Smrg PicturePtr pDst, 261706f2543Smrg xRenderColor *color, 262706f2543Smrg int nRect, 263706f2543Smrg xRectangle *rects); 264706f2543Smrg 265706f2543Smrgtypedef void (*RasterizeTrapezoidProcPtr)(PicturePtr pMask, 266706f2543Smrg xTrapezoid *trap, 267706f2543Smrg int x_off, 268706f2543Smrg int y_off); 269706f2543Smrg 270706f2543Smrgtypedef void (*TrapezoidsProcPtr) (CARD8 op, 271706f2543Smrg PicturePtr pSrc, 272706f2543Smrg PicturePtr pDst, 273706f2543Smrg PictFormatPtr maskFormat, 274706f2543Smrg INT16 xSrc, 275706f2543Smrg INT16 ySrc, 276706f2543Smrg int ntrap, 277706f2543Smrg xTrapezoid *traps); 278706f2543Smrg 279706f2543Smrgtypedef void (*TrianglesProcPtr) (CARD8 op, 280706f2543Smrg PicturePtr pSrc, 281706f2543Smrg PicturePtr pDst, 282706f2543Smrg PictFormatPtr maskFormat, 283706f2543Smrg INT16 xSrc, 284706f2543Smrg INT16 ySrc, 285706f2543Smrg int ntri, 286706f2543Smrg xTriangle *tris); 287706f2543Smrg 288706f2543Smrgtypedef void (*TriStripProcPtr) (CARD8 op, 289706f2543Smrg PicturePtr pSrc, 290706f2543Smrg PicturePtr pDst, 291706f2543Smrg PictFormatPtr maskFormat, 292706f2543Smrg INT16 xSrc, 293706f2543Smrg INT16 ySrc, 294706f2543Smrg int npoint, 295706f2543Smrg xPointFixed *points); 296706f2543Smrg 297706f2543Smrgtypedef void (*TriFanProcPtr) (CARD8 op, 298706f2543Smrg PicturePtr pSrc, 299706f2543Smrg PicturePtr pDst, 300706f2543Smrg PictFormatPtr maskFormat, 301706f2543Smrg INT16 xSrc, 302706f2543Smrg INT16 ySrc, 303706f2543Smrg int npoint, 304706f2543Smrg xPointFixed *points); 305706f2543Smrg 306706f2543Smrgtypedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen, 307706f2543Smrg PictFormatPtr pFormat); 308706f2543Smrg 309706f2543Smrgtypedef void (*CloseIndexedProcPtr) (ScreenPtr pScreen, 310706f2543Smrg PictFormatPtr pFormat); 311706f2543Smrg 312706f2543Smrgtypedef void (*UpdateIndexedProcPtr) (ScreenPtr pScreen, 313706f2543Smrg PictFormatPtr pFormat, 314706f2543Smrg int ndef, 315706f2543Smrg xColorItem *pdef); 316706f2543Smrg 317706f2543Smrgtypedef void (*AddTrapsProcPtr) (PicturePtr pPicture, 318706f2543Smrg INT16 xOff, 319706f2543Smrg INT16 yOff, 320706f2543Smrg int ntrap, 321706f2543Smrg xTrap *traps); 322706f2543Smrg 323706f2543Smrgtypedef void (*AddTrianglesProcPtr) (PicturePtr pPicture, 324706f2543Smrg INT16 xOff, 325706f2543Smrg INT16 yOff, 326706f2543Smrg int ntri, 327706f2543Smrg xTriangle *tris); 328706f2543Smrg 329706f2543Smrgtypedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen, 330706f2543Smrg GlyphPtr glyph); 331706f2543Smrg 332706f2543Smrgtypedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen, 333706f2543Smrg GlyphPtr glyph); 334706f2543Smrg 335706f2543Smrgtypedef struct _PictureScreen { 336706f2543Smrg PictFormatPtr formats; 337706f2543Smrg PictFormatPtr fallback; 338706f2543Smrg int nformats; 339706f2543Smrg 340706f2543Smrg CreatePictureProcPtr CreatePicture; 341706f2543Smrg DestroyPictureProcPtr DestroyPicture; 342706f2543Smrg ChangePictureClipProcPtr ChangePictureClip; 343706f2543Smrg DestroyPictureClipProcPtr DestroyPictureClip; 344706f2543Smrg 345706f2543Smrg ChangePictureProcPtr ChangePicture; 346706f2543Smrg ValidatePictureProcPtr ValidatePicture; 347706f2543Smrg 348706f2543Smrg CompositeProcPtr Composite; 349706f2543Smrg GlyphsProcPtr Glyphs; /* unused */ 350706f2543Smrg CompositeRectsProcPtr CompositeRects; 351706f2543Smrg 352706f2543Smrg DestroyWindowProcPtr DestroyWindow; 353706f2543Smrg CloseScreenProcPtr CloseScreen; 354706f2543Smrg 355706f2543Smrg StoreColorsProcPtr StoreColors; 356706f2543Smrg 357706f2543Smrg InitIndexedProcPtr InitIndexed; 358706f2543Smrg CloseIndexedProcPtr CloseIndexed; 359706f2543Smrg UpdateIndexedProcPtr UpdateIndexed; 360706f2543Smrg 361706f2543Smrg int subpixel; 362706f2543Smrg 363706f2543Smrg PictFilterPtr filters; 364706f2543Smrg int nfilters; 365706f2543Smrg PictFilterAliasPtr filterAliases; 366706f2543Smrg int nfilterAliases; 367706f2543Smrg 368706f2543Smrg /** 369706f2543Smrg * Called immediately after a picture's transform is changed through the 370706f2543Smrg * SetPictureTransform request. Not called for source-only pictures. 371706f2543Smrg */ 372706f2543Smrg ChangePictureTransformProcPtr ChangePictureTransform; 373706f2543Smrg 374706f2543Smrg /** 375706f2543Smrg * Called immediately after a picture's transform is changed through the 376706f2543Smrg * SetPictureFilter request. Not called for source-only pictures. 377706f2543Smrg */ 378706f2543Smrg ChangePictureFilterProcPtr ChangePictureFilter; 379706f2543Smrg 380706f2543Smrg DestroyPictureFilterProcPtr DestroyPictureFilter; 381706f2543Smrg 382706f2543Smrg TrapezoidsProcPtr Trapezoids; 383706f2543Smrg TrianglesProcPtr Triangles; 384706f2543Smrg TriStripProcPtr TriStrip; 385706f2543Smrg TriFanProcPtr TriFan; 386706f2543Smrg 387706f2543Smrg RasterizeTrapezoidProcPtr RasterizeTrapezoid; 388706f2543Smrg 389706f2543Smrg AddTrianglesProcPtr AddTriangles; 390706f2543Smrg 391706f2543Smrg AddTrapsProcPtr AddTraps; 392706f2543Smrg 393706f2543Smrg RealizeGlyphProcPtr RealizeGlyph; 394706f2543Smrg UnrealizeGlyphProcPtr UnrealizeGlyph; 395706f2543Smrg 396706f2543Smrg} PictureScreenRec, *PictureScreenPtr; 397706f2543Smrg 398706f2543Smrgextern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec; 399706f2543Smrg#define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec) 400706f2543Smrg 401706f2543Smrgextern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec; 402706f2543Smrg#define PictureWindowPrivateKey (&PictureWindowPrivateKeyRec) 403706f2543Smrg 404706f2543Smrgextern _X_EXPORT RESTYPE PictureType; 405706f2543Smrgextern _X_EXPORT RESTYPE PictFormatType; 406706f2543Smrgextern _X_EXPORT RESTYPE GlyphSetType; 407706f2543Smrg 408706f2543Smrg#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey)) 409706f2543Smrg#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL) 410706f2543Smrg#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p) 411706f2543Smrg#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey)) 412706f2543Smrg#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p) 413706f2543Smrg 414706f2543Smrg#define VERIFY_PICTURE(pPicture, pid, client, mode) {\ 415706f2543Smrg int rc = dixLookupResourceByType((pointer)&(pPicture), pid,\ 416706f2543Smrg PictureType, client, mode);\ 417706f2543Smrg if (rc != Success)\ 418706f2543Smrg return rc;\ 419706f2543Smrg} 420706f2543Smrg 421706f2543Smrg#define VERIFY_ALPHA(pPicture, pid, client, mode) {\ 422706f2543Smrg if (pid == None) \ 423706f2543Smrg pPicture = 0; \ 424706f2543Smrg else { \ 425706f2543Smrg VERIFY_PICTURE(pPicture, pid, client, mode); \ 426706f2543Smrg } \ 427706f2543Smrg} \ 428706f2543Smrg 429706f2543Smrgextern _X_EXPORT Bool 430706f2543SmrgPictureDestroyWindow (WindowPtr pWindow); 431706f2543Smrg 432706f2543Smrgextern _X_EXPORT Bool 433706f2543SmrgPictureCloseScreen (int Index, ScreenPtr pScreen); 434706f2543Smrg 435706f2543Smrgextern _X_EXPORT void 436706f2543SmrgPictureStoreColors (ColormapPtr pColormap, int ndef, xColorItem *pdef); 437706f2543Smrg 438706f2543Smrgextern _X_EXPORT Bool 439706f2543SmrgPictureInitIndexedFormat (ScreenPtr pScreen, PictFormatPtr format); 440706f2543Smrg 441706f2543Smrgextern _X_EXPORT Bool 442706f2543SmrgPictureSetSubpixelOrder (ScreenPtr pScreen, int subpixel); 443706f2543Smrg 444706f2543Smrgextern _X_EXPORT int 445706f2543SmrgPictureGetSubpixelOrder (ScreenPtr pScreen); 446706f2543Smrg 447706f2543Smrgextern _X_EXPORT PictFormatPtr 448706f2543SmrgPictureCreateDefaultFormats (ScreenPtr pScreen, int *nformatp); 449706f2543Smrg 450706f2543Smrgextern _X_EXPORT PictFormatPtr 451706f2543SmrgPictureMatchVisual (ScreenPtr pScreen, int depth, VisualPtr pVisual); 452706f2543Smrg 453706f2543Smrgextern _X_EXPORT PictFormatPtr 454706f2543SmrgPictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 format); 455706f2543Smrg 456706f2543Smrgextern _X_EXPORT Bool 457706f2543SmrgPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats); 458706f2543Smrg 459706f2543Smrgextern _X_EXPORT int 460706f2543SmrgPictureGetFilterId (char *filter, int len, Bool makeit); 461706f2543Smrg 462706f2543Smrgextern _X_EXPORT char * 463706f2543SmrgPictureGetFilterName (int id); 464706f2543Smrg 465706f2543Smrgextern _X_EXPORT int 466706f2543SmrgPictureAddFilter (ScreenPtr pScreen, 467706f2543Smrg char *filter, 468706f2543Smrg PictFilterValidateParamsProcPtr ValidateParams, 469706f2543Smrg int width, 470706f2543Smrg int height); 471706f2543Smrg 472706f2543Smrgextern _X_EXPORT Bool 473706f2543SmrgPictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias); 474706f2543Smrg 475706f2543Smrgextern _X_EXPORT Bool 476706f2543SmrgPictureSetDefaultFilters (ScreenPtr pScreen); 477706f2543Smrg 478706f2543Smrgextern _X_EXPORT void 479706f2543SmrgPictureResetFilters (ScreenPtr pScreen); 480706f2543Smrg 481706f2543Smrgextern _X_EXPORT PictFilterPtr 482706f2543SmrgPictureFindFilter (ScreenPtr pScreen, char *name, int len); 483706f2543Smrg 484706f2543Smrgextern _X_EXPORT int 485706f2543SmrgSetPicturePictFilter (PicturePtr pPicture, PictFilterPtr pFilter, 486706f2543Smrg xFixed *params, int nparams); 487706f2543Smrg 488706f2543Smrgextern _X_EXPORT int 489706f2543SmrgSetPictureFilter (PicturePtr pPicture, char *name, int len, 490706f2543Smrg xFixed *params, int nparams); 491706f2543Smrg 492706f2543Smrgextern _X_EXPORT Bool 493706f2543SmrgPictureFinishInit (void); 494706f2543Smrg 495706f2543Smrgextern _X_EXPORT void 496706f2543SmrgSetPictureToDefaults (PicturePtr pPicture); 497706f2543Smrg 498706f2543Smrgextern _X_EXPORT PicturePtr 499706f2543SmrgCreatePicture (Picture pid, 500706f2543Smrg DrawablePtr pDrawable, 501706f2543Smrg PictFormatPtr pFormat, 502706f2543Smrg Mask mask, 503706f2543Smrg XID *list, 504706f2543Smrg ClientPtr client, 505706f2543Smrg int *error); 506706f2543Smrg 507706f2543Smrgextern _X_EXPORT int 508706f2543SmrgChangePicture (PicturePtr pPicture, 509706f2543Smrg Mask vmask, 510706f2543Smrg XID *vlist, 511706f2543Smrg DevUnion *ulist, 512706f2543Smrg ClientPtr client); 513706f2543Smrg 514706f2543Smrgextern _X_EXPORT int 515706f2543SmrgSetPictureClipRects (PicturePtr pPicture, 516706f2543Smrg int xOrigin, 517706f2543Smrg int yOrigin, 518706f2543Smrg int nRect, 519706f2543Smrg xRectangle *rects); 520706f2543Smrg 521706f2543Smrgextern _X_EXPORT int 522706f2543SmrgSetPictureClipRegion (PicturePtr pPicture, 523706f2543Smrg int xOrigin, 524706f2543Smrg int yOrigin, 525706f2543Smrg RegionPtr pRegion); 526706f2543Smrg 527706f2543Smrgextern _X_EXPORT int 528706f2543SmrgSetPictureTransform (PicturePtr pPicture, 529706f2543Smrg PictTransform *transform); 530706f2543Smrg 531706f2543Smrgextern _X_EXPORT void 532706f2543SmrgCopyPicture (PicturePtr pSrc, 533706f2543Smrg Mask mask, 534706f2543Smrg PicturePtr pDst); 535706f2543Smrg 536706f2543Smrgextern _X_EXPORT void 537706f2543SmrgValidatePicture(PicturePtr pPicture); 538706f2543Smrg 539706f2543Smrgextern _X_EXPORT int 540706f2543SmrgFreePicture (pointer pPicture, 541706f2543Smrg XID pid); 542706f2543Smrg 543706f2543Smrgextern _X_EXPORT int 544706f2543SmrgFreePictFormat (pointer pPictFormat, 545706f2543Smrg XID pid); 546706f2543Smrg 547706f2543Smrgextern _X_EXPORT void 548706f2543SmrgCompositePicture (CARD8 op, 549706f2543Smrg PicturePtr pSrc, 550706f2543Smrg PicturePtr pMask, 551706f2543Smrg PicturePtr pDst, 552706f2543Smrg INT16 xSrc, 553706f2543Smrg INT16 ySrc, 554706f2543Smrg INT16 xMask, 555706f2543Smrg INT16 yMask, 556706f2543Smrg INT16 xDst, 557706f2543Smrg INT16 yDst, 558706f2543Smrg CARD16 width, 559706f2543Smrg CARD16 height); 560706f2543Smrg 561706f2543Smrgextern _X_EXPORT void 562706f2543SmrgCompositeGlyphs (CARD8 op, 563706f2543Smrg PicturePtr pSrc, 564706f2543Smrg PicturePtr pDst, 565706f2543Smrg PictFormatPtr maskFormat, 566706f2543Smrg INT16 xSrc, 567706f2543Smrg INT16 ySrc, 568706f2543Smrg int nlist, 569706f2543Smrg GlyphListPtr lists, 570706f2543Smrg GlyphPtr *glyphs); 571706f2543Smrg 572706f2543Smrgextern _X_EXPORT void 573706f2543SmrgCompositeRects (CARD8 op, 574706f2543Smrg PicturePtr pDst, 575706f2543Smrg xRenderColor *color, 576706f2543Smrg int nRect, 577706f2543Smrg xRectangle *rects); 578706f2543Smrg 579706f2543Smrgextern _X_EXPORT void 580706f2543SmrgCompositeTrapezoids (CARD8 op, 581706f2543Smrg PicturePtr pSrc, 582706f2543Smrg PicturePtr pDst, 583706f2543Smrg PictFormatPtr maskFormat, 584706f2543Smrg INT16 xSrc, 585706f2543Smrg INT16 ySrc, 586706f2543Smrg int ntrap, 587706f2543Smrg xTrapezoid *traps); 588706f2543Smrg 589706f2543Smrgextern _X_EXPORT void 590706f2543SmrgCompositeTriangles (CARD8 op, 591706f2543Smrg PicturePtr pSrc, 592706f2543Smrg PicturePtr pDst, 593706f2543Smrg PictFormatPtr maskFormat, 594706f2543Smrg INT16 xSrc, 595706f2543Smrg INT16 ySrc, 596706f2543Smrg int ntriangles, 597706f2543Smrg xTriangle *triangles); 598706f2543Smrg 599706f2543Smrgextern _X_EXPORT void 600706f2543SmrgCompositeTriStrip (CARD8 op, 601706f2543Smrg PicturePtr pSrc, 602706f2543Smrg PicturePtr pDst, 603706f2543Smrg PictFormatPtr maskFormat, 604706f2543Smrg INT16 xSrc, 605706f2543Smrg INT16 ySrc, 606706f2543Smrg int npoints, 607706f2543Smrg xPointFixed *points); 608706f2543Smrg 609706f2543Smrgextern _X_EXPORT void 610706f2543SmrgCompositeTriFan (CARD8 op, 611706f2543Smrg PicturePtr pSrc, 612706f2543Smrg PicturePtr pDst, 613706f2543Smrg PictFormatPtr maskFormat, 614706f2543Smrg INT16 xSrc, 615706f2543Smrg INT16 ySrc, 616706f2543Smrg int npoints, 617706f2543Smrg xPointFixed *points); 618706f2543Smrg 619706f2543Smrgextern _X_EXPORT CARD32 620706f2543SmrgPictureGradientColor (PictGradientStopPtr stop1, 621706f2543Smrg PictGradientStopPtr stop2, 622706f2543Smrg CARD32 x); 623706f2543Smrg 624706f2543Smrgextern _X_EXPORT void RenderExtensionInit (void); 625706f2543Smrg 626706f2543SmrgBool 627706f2543SmrgAnimCurInit (ScreenPtr pScreen); 628706f2543Smrg 629706f2543Smrgint 630706f2543SmrgAnimCursorCreate (CursorPtr *cursors, CARD32 *deltas, int ncursor, CursorPtr *ppCursor, ClientPtr client, XID cid); 631706f2543Smrg 632706f2543Smrgextern _X_EXPORT void 633706f2543SmrgAddTraps (PicturePtr pPicture, 634706f2543Smrg INT16 xOff, 635706f2543Smrg INT16 yOff, 636706f2543Smrg int ntraps, 637706f2543Smrg xTrap *traps); 638706f2543Smrg 639706f2543Smrgextern _X_EXPORT PicturePtr 640706f2543SmrgCreateSolidPicture (Picture pid, 641706f2543Smrg xRenderColor *color, 642706f2543Smrg int *error); 643706f2543Smrg 644706f2543Smrgextern _X_EXPORT PicturePtr 645706f2543SmrgCreateLinearGradientPicture (Picture pid, 646706f2543Smrg xPointFixed *p1, 647706f2543Smrg xPointFixed *p2, 648706f2543Smrg int nStops, 649706f2543Smrg xFixed *stops, 650706f2543Smrg xRenderColor *colors, 651706f2543Smrg int *error); 652706f2543Smrg 653706f2543Smrgextern _X_EXPORT PicturePtr 654706f2543SmrgCreateRadialGradientPicture (Picture pid, 655706f2543Smrg xPointFixed *inner, 656706f2543Smrg xPointFixed *outer, 657706f2543Smrg xFixed innerRadius, 658706f2543Smrg xFixed outerRadius, 659706f2543Smrg int nStops, 660706f2543Smrg xFixed *stops, 661706f2543Smrg xRenderColor *colors, 662706f2543Smrg int *error); 663706f2543Smrg 664706f2543Smrgextern _X_EXPORT PicturePtr 665706f2543SmrgCreateConicalGradientPicture (Picture pid, 666706f2543Smrg xPointFixed *center, 667706f2543Smrg xFixed angle, 668706f2543Smrg int nStops, 669706f2543Smrg xFixed *stops, 670706f2543Smrg xRenderColor *colors, 671706f2543Smrg int *error); 672706f2543Smrg 673706f2543Smrg#ifdef PANORAMIX 674706f2543Smrgextern _X_EXPORT void PanoramiXRenderInit (void); 675706f2543Smrgextern _X_EXPORT void PanoramiXRenderReset (void); 676706f2543Smrg#endif 677706f2543Smrg 678706f2543Smrg/* 679706f2543Smrg * matrix.c 680706f2543Smrg */ 681706f2543Smrg 682706f2543Smrgextern _X_EXPORT void 683706f2543SmrgPictTransform_from_xRenderTransform (PictTransformPtr pict, 684706f2543Smrg xRenderTransform *render); 685706f2543Smrg 686706f2543Smrgextern _X_EXPORT void 687706f2543SmrgxRenderTransform_from_PictTransform (xRenderTransform *render, 688706f2543Smrg PictTransformPtr pict); 689706f2543Smrg 690706f2543Smrgextern _X_EXPORT Bool 691706f2543SmrgPictureTransformPoint (PictTransformPtr transform, 692706f2543Smrg PictVectorPtr vector); 693706f2543Smrg 694706f2543Smrgextern _X_EXPORT Bool 695706f2543SmrgPictureTransformPoint3d (PictTransformPtr transform, 696706f2543Smrg PictVectorPtr vector); 697706f2543Smrg 698706f2543Smrg#endif /* _PICTURESTR_H_ */ 699