61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Copyright © 2000 SuSE, Inc.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * documentation for any purpose is hereby granted without fee, provided that
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * the above copyright notice appear in all copies and that both that
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * copyright notice and this permission notice appear in supporting
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * documentation, and that the name of SuSE not be used in advertising or
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * publicity pertaining to distribution of the software without specific,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * written prior permission. SuSE makes no representations about the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * suitability of this software for any purpose. It is provided "as is"
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * without express or implied warranty.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Author: Keith Packard, SuSE, Inc.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct pixman_vector PictVector, *PictVectorPtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct pixman_transform PictTransform, *PictTransformPtr;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef Bool (*PictFilterValidateParamsProcPtr) (ScreenPtr pScreen, int id,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync/* if you add an 8th filter, expand the filter bitfield above */
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef struct {
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*CreatePictureProcPtr) (PicturePtr pPicture);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*DestroyPictureProcPtr) (PicturePtr pPicture);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*ChangePictureClipProcPtr) (PicturePtr pPicture,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*DestroyPictureClipProcPtr) (PicturePtr pPicture);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*ChangePictureTransformProcPtr) (PicturePtr pPicture,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef int (*ChangePictureFilterProcPtr) (PicturePtr pPicture,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*DestroyPictureFilterProcPtr) (PicturePtr pPicture);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*ChangePictureProcPtr) (PicturePtr pPicture, Mask mask);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*ValidatePictureProcPtr) (PicturePtr pPicture, Mask mask);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*RasterizeTrapezoidProcPtr) (PicturePtr pMask,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef Bool (*InitIndexedProcPtr) (ScreenPtr pScreen, PictFormatPtr pFormat);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*CloseIndexedProcPtr) (ScreenPtr pScreen, PictFormatPtr pFormat);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*UpdateIndexedProcPtr) (ScreenPtr pScreen,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*AddTrapsProcPtr) (PicturePtr pPicture,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*AddTrianglesProcPtr) (PicturePtr pPicture,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef Bool (*RealizeGlyphProcPtr) (ScreenPtr pScreen, GlyphPtr glyph);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsynctypedef void (*UnrealizeGlyphProcPtr) (ScreenPtr pScreen, GlyphPtr glyph);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Called immediately after a picture's transform is changed through the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SetPictureTransform request. Not called for source-only pictures.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync ChangePictureTransformProcPtr ChangePictureTransform;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * Called immediately after a picture's transform is changed through the
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync * SetPictureFilter request. Not called for source-only pictures.
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT DevPrivateKeyRec PictureScreenPrivateKeyRec;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define PictureScreenPrivateKey (&PictureScreenPrivateKeyRec)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT DevPrivateKeyRec PictureWindowPrivateKeyRec;
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define PictureWindowPrivateKey (&PictureWindowPrivateKeyRec)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define GetPictureScreen(s) ((PictureScreenPtr)dixLookupPrivate(&(s)->devPrivates, PictureScreenPrivateKey))
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define GetPictureScreenIfSet(s) (dixPrivateKeyRegistered(PictureScreenPrivateKey) ? GetPictureScreen(s) : NULL)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define SetPictureScreen(s,p) dixSetPrivate(&(s)->devPrivates, PictureScreenPrivateKey, p)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define GetPictureWindow(w) ((PicturePtr)dixLookupPrivate(&(w)->devPrivates, PictureWindowPrivateKey))
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define SetPictureWindow(w,p) dixSetPrivate(&(w)->devPrivates, PictureWindowPrivateKey, p)
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VERIFY_PICTURE(pPicture, pid, client, mode) {\
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int tmprc = dixLookupResourceByType((void *)&(pPicture), pid,\
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#define VERIFY_ALPHA(pPicture, pid, client, mode) {\
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureStoreColors(ColormapPtr pColormap, int ndef, xColorItem * pdef);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureInitIndexedFormat(ScreenPtr pScreen, PictFormatPtr format);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureSetSubpixelOrder(ScreenPtr pScreen, int subpixel);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncPictureCreateDefaultFormats(ScreenPtr pScreen, int *nformatp);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncPictureMatchVisual(ScreenPtr pScreen, int depth, VisualPtr pVisual);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncPictureMatchFormat(ScreenPtr pScreen, int depth, CARD32 format);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureGetFilterId(const char *filter, int len, Bool makeit);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncextern _X_EXPORT char *PictureGetFilterName(int id);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync const char *filter,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncPictureSetFilterAlias(ScreenPtr pScreen, const char *filter, const char *alias);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncPictureFindFilter(ScreenPtr pScreen, char *name, int len);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncSetPicturePictFilter(PicturePtr pPicture, PictFilterPtr pFilter,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncSetPictureFilter(PicturePtr pPicture, char *name, int len,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync Mask mask, XID *list, ClientPtr client, int *error);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync Mask vmask, XID *vlist, DevUnion *ulist, ClientPtr client);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync int xOrigin, int yOrigin, int nRect, xRectangle *rects);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync SetPictureTransform(PicturePtr pPicture, PictTransform * transform);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync CopyPicture(PicturePtr pSrc, Mask mask, PicturePtr pDst);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 xDst, INT16 yDst, CARD16 width, CARD16 height);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 ySrc, int nlist, GlyphListPtr lists, GlyphPtr * glyphs);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xRenderColor * color, int nRect, xRectangle *rects);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid * traps);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 ySrc, int ntriangles, xTriangle * triangles);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 xSrc, INT16 ySrc, int npoints, xPointFixed * points);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncAnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync INT16 xOff, INT16 yOff, int ntraps, xTrap * traps);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncCreateSolidPicture(Picture pid, xRenderColor * color, int *error);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xFixed * stops, xRenderColor * colors, int *error);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xFixed * stops, xRenderColor * colors, int *error);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync xFixed * stops, xRenderColor * colors, int *error);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncPictTransform_from_xRenderTransform(PictTransformPtr pict,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsyncxRenderTransform_from_PictTransform(xRenderTransform * render,
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureTransformPoint(PictTransformPtr transform, PictVectorPtr vector);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync PictureTransformPoint3d(PictTransformPtr transform, PictVectorPtr vector);
61cb83a8ccd1dd7f671f31fa93c9d8b7be09b4ccvboxsync#endif /* _PICTURESTR_H_ */