a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Copyright © 1998 Keith Packard
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * documentation for any purpose is hereby granted without fee, provided that
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * the above copyright notice appear in all copies and that both that
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * copyright notice and this permission notice appear in supporting
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * documentation, and that the name of Keith Packard not be used in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * advertising or publicity pertaining to distribution of the software without
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * specific, written prior permission. Keith Packard makes no
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * representations about the suitability of this software for any purpose. It
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * is provided "as is" without express or implied warranty.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * PERFORMANCE OF THIS SOFTWARE.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define WRITE(ptr, val) ((*wfbWriteMemory)((ptr), (val), sizeof(*(ptr))))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define READ(ptr) ((*wfbReadMemory)((ptr), sizeof(*(ptr))))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CARD8 *_dst = (CARD8*)(dst), *_src = (CARD8*)(src); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define MEMCPY_WRAPPED(dst, src, size) memcpy((dst), (src), (size))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define MEMSET_WRAPPED(dst, val, size) memset((dst), (val), (size))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * This single define controls the basic size of data manipulated
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* for driver compat - intel UXA needs the second one at least */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = FbRightMask((x)+n); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (n < 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStorePart(dst,off,t,xor) (WRITE(FbPtrOffset(dst,off,t), \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = FbRightMask((x)+n); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* compute right byte length */ \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* compute left byte length */ \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* subtract out the portion painted by leftMask */ \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (n < 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else if (rb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync switch (lb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, l)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync switch (rb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (n < 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * These macros are used to transparently stipple
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * in copy mode; the expected usage is with 'n' constant
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * so all of the conditional parts collapse into a minimal
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * sequence of partial word writes
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * of the FbBits base unit, 'o' is the offset within that unit
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * The term "lane" comes from the hardware term "byte-lane" which
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((n) == 0x01) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((n) == 0x03) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((n) == 0x0f) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Rotate a filled pixel value to the specified alignement */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* step a rotation value to the next/previous rotation value */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Macros for dealing with dashing */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* as numInDashList is always even, this case can skip a test */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (!--(dashlen)) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Framebuffer access wrapper */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef FbBits(*ReadMemoryProcPtr) (const void *src, int size);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*WriteMemoryProcPtr) (void *dst, FbBits value, int size);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*SetupWrapProcPtr) (ReadMemoryProcPtr * pRead,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*FinishWrapProcPtr) (DrawablePtr pDraw);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetScreenPrivate((pDraw)->pScreen)->finishWrap(pDraw)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* private field of a screen */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(pScreen)->devPrivates, fbGetScreenPrivateKey()))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* private field of GC */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int dashLength; /* total of all dash elements */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetGCPrivateKey(pGC) (&fbGetScreenPrivate((pGC)->pScreen)->gcPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey(pGC)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetWinPrivateKey(pWin) (&fbGetScreenPrivate(((DrawablePtr) (pWin))->pScreen)->winPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey(pWin)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * XFree86 empties the root BorderClip when the VT is inactive,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * here's a macro which uses that to disable GetImage and GetSpans
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DDXPointPtr ppt, int *pwidth, int nspans, char *pchardstStart);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y, int width, int height, CARD8 *src, FbStride srcStride);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int h, unsigned int format, unsigned long planeMask, char *d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc * parcs);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy, int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment8(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment16(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment24(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment32(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, int alu, FbBits pm, int bpp, Bool reverse, Bool upsidedown);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, int alu, FbBits pm, Bool reverse, Bool upsidedown);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbBltStip(FbStip * src, FbStride srcStride, /* in FbStip units, not FbBits units */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX, FbStip * dst, FbStride dstStride, /* in FbStip units, not FbBits units */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, int width, int height, int alu, FbBits pm, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, FbBits fgand, FbBits fbxor, FbBits bgand, FbBits bgxor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbBltOne24(FbStip * src, FbStride srcStride, /* FbStip units per scanline */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits * dst, FbStride dstStride, /* FbBits units per scanline */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStip fgxor, FbStip bgand, FbStip bgxor, Pixel planeMask);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbListInstalledColormaps(ScreenPtr pScreen, Colormap * pmaps);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short *pgreen,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ndef, xColorItem * indefs, xColorItem * outdefs);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbSetVisualTypes(int depth, int visuals, int bitsPerRGB);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync VisualID * defaultVisp, unsigned long sizes, int bitsPerRGB);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xIn, int yIn, int widthSrc, int heightSrc, int xOut, int yOut);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int heightSrc, int xOut, int yOut, unsigned long bitplane);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbFill(DrawablePtr pDrawable, GCPtr pGC, int x, int y, int width, int height);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xa, int ya, int xb, int yb, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nInit, DDXPointPtr pptInit, int *pwidthInit, int fSorted);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DDXPointPtr ppt, int *pwidth, int nspans, char *pchardstStart);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int nglyph, CharInfoPtr * ppci, void *pglyphBase);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int nglyph, CharInfoPtr * ppci, void *pglyphBase);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x, int y, int w, int h, int leftPad, int format, char *pImage);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y, int width, int height, FbStip * src, FbStride srcStride);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width, int height, FbStip * src, FbStride srcStride, int srcX);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int w, int h, unsigned int format, unsigned long planeMask, char *d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCreatePixmapBpp(ScreenPtr pScreen, int width, int height, int depth, int bpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride srcStride, int srcX, int x, int y, int width, int height);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDrawable, int dx, int dy, int xOrg, int yOrg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync _fbSetWindowPixmap(WindowPtr pWindow, PixmapPtr pPixmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbSetupScreen(ScreenPtr pScreen, void *pbits, /* pointer to screen bitmap */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dpiy, int width, /* pixel width of frame buffer */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ysize, int dpix, int dpiy, int width, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xsize, int ysize, int dpix, int dpiy, int width, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xa, int ya, int xb, int yb, Bool drawLast, int *dashOffset);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *src, DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, int bpp, int width, int height, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, int width, int height, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT FbBits fbReplicatePixel(Pixel p, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif /* _FB_H_ */