f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Copyright © 1998 Keith Packard
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * documentation for any purpose is hereby granted without fee, provided that
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * the above copyright notice appear in all copies and that both that
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * copyright notice and this permission notice appear in supporting
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * documentation, and that the name of Keith Packard not be used in
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * advertising or publicity pertaining to distribution of the software without
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * specific, written prior permission. Keith Packard makes no
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * representations about the suitability of this software for any purpose. It
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * is provided "as is" without express or implied warranty.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * PERFORMANCE OF THIS SOFTWARE.
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifndef _FB_H_
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define _FB_H_
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include <X11/X.h>
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include <pixman.h>
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "scrnintstr.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "pixmap.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "pixmapstr.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "region.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "gcstruct.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "colormap.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "miscstruct.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "servermd.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "windowstr.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "privates.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "mi.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "migc.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "mibstore.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "picturestr.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef FB_ACCESS_WRAPPER
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "wfbrename.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FBPREFIX(x) wfb##x
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define WRITE(ptr, val) ((*wfbWriteMemory)((ptr), (val), sizeof(*(ptr))))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define READ(ptr) ((*wfbReadMemory)((ptr), sizeof(*(ptr))))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define MEMCPY_WRAPPED(dst, src, size) do { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync size_t _i; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD8 *_dst = (CARD8*)(dst), *_src = (CARD8*)(src); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync for(_i = 0; _i < size; _i++) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE(_dst +_i, READ(_src + _i)); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync} while(0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define MEMSET_WRAPPED(dst, val, size) do { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync size_t _i; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD8 *_dst = (CARD8*)(dst); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync for(_i = 0; _i < size; _i++) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE(_dst +_i, (val)); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync} while(0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FBPREFIX(x) fb##x
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define WRITE(ptr, val) (*(ptr) = (val))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define READ(ptr) (*(ptr))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define MEMCPY_WRAPPED(dst, src, size) memcpy((dst), (src), (size))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define MEMSET_WRAPPED(dst, val, size) memset((dst), (val), (size))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * This single define controls the basic size of data manipulated
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifndef FB_SHIFT
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_SHIFT LOG2_BITMAP_PAD
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT < LOG2_BITMAP_PAD
f78b12e570284aa8291f4ca1add24937fd107403vboxsync error FB_SHIFT must be >= LOG2_BITMAP_PAD
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_UNIT (1 << FB_SHIFT)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_HALFUNIT (1 << (FB_SHIFT-1))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_MASK (FB_UNIT - 1)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_ALLONES ((FbBits) -1)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if GLYPHPADBYTES != 4
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#error "GLYPHPADBYTES must be 4"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* for driver compat - intel UXA needs the second one at least */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_24BIT
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_24_32BIT
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_STIP_SHIFT LOG2_BITMAP_PAD
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_STIP_UNIT (1 << FB_STIP_SHIFT)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_STIP_MASK (FB_STIP_UNIT - 1)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_STIP_ALLONES ((FbStip) -1)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT == 6
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# ifdef WIN32
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef unsigned __int64 FbBits;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# if defined(__alpha__) || defined(__alpha) || \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync defined(ia64) || defined(__ia64__) || \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync defined(__sparc64__) || defined(_LP64) || \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync defined(__s390x__) || \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync defined(amd64) || defined (__amd64__) || \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync defined (__powerpc64__)
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef unsigned long FbBits;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# else
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef unsigned long long FbBits;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT == 5
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef CARD32 FbBits;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT == 4
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef CARD16 FbBits;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if LOG2_BITMAP_PAD == FB_SHIFT
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef FbBits FbStip;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# if LOG2_BITMAP_PAD == 5
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef CARD32 FbStip;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync# endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef int FbStride;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef FB_DEBUG
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void fbSetBits (FbStip *bits, int stride, FbStip data);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_HEAD_BITS (FbStip) (0xbaadf00d)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FB_TAIL_BITS (FbStip) (0xbaddf0ad)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbValidateDrawable(d)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fdInitializeDrawable(d)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "fbrop.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if BITMAP_BIT_ORDER == LSBFirst
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbScrLeft(x,n) ((x) >> (n))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbScrRight(x,n) ((x) << (n))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPatternOffsetBits 0
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbScrLeft(x,n) ((x) << (n))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbScrRight(x,n) ((x) >> (n))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStipMoveLsb(x,s,n) (x)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPatternOffsetBits (sizeof (FbBits) - 1)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#include "micoord.h"
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStipLeft(x,n) FbScrLeft(x,n)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStipRight(x,n) FbScrRight(x,n)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLeftMask(x) ( ((x) & FB_MASK) ? \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbScrRight(FB_ALLONES,(x) & FB_MASK) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbMaskBits(x,w,l,n,r) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n = (w); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync r = FbRightMask((x)+n); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync l = FbLeftMask(x); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (l) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (n < 0) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync l &= r; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync r = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n >>= FB_SHIFT; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbByteMaskInvalid 0x10
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbStorePart(dst,off,t,xor) (WRITE(FbPtrOffset(dst,off,t), \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbSelectPart(xor,off,t)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifndef FbSelectPart
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n = (w); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync lb = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync rb = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync r = FbRightMask((x)+n); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (r) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync /* compute right byte length */ \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((copy) && (((x) + n) & 7) == 0) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync rb = (((x) + n) & FB_MASK) >> 3; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync rb = FbByteMaskInvalid; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync l = FbLeftMask(x); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (l) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync /* compute left byte length */ \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((copy) && ((x) & 7) == 0) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync lb = ((x) & FB_MASK) >> 3; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync lb = FbByteMaskInvalid; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync /* subtract out the portion painted by leftMask */ \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (n < 0) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (lb != FbByteMaskInvalid) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (rb == FbByteMaskInvalid) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync lb = FbByteMaskInvalid; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else if (rb) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync lb |= (rb - lb) << (FB_SHIFT - 3); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync rb = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync l &= r; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync r = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync }\
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n >>= FB_SHIFT; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT == 6
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7) | (1 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7) | (2 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7) | (3 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7) | (4 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7) | (5 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7) | (6 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 7): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 6) | (1 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 6) | (2 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 6) | (3 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 6) | (4 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 6) | (5 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 6): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 5) | (1 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 5) | (2 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 5) | (3 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 5) | (4 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 5): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 4) | (1 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 4) | (2 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 4) | (3 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 4): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 4: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 5: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,4,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 6: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 7: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD32,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,4,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,6,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync switch (lb) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbDoLeftMaskByteRRop6Cases(dst,xor) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case sizeof (FbBits) - 3: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case sizeof (FbBits) - 2: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case sizeof (FbBits) - 1: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,sizeof (FbBits) - 1,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync default: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, l)); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync switch (rb) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 1: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 2: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync case 3: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,0,CARD16,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStorePart(dst,2,CARD8,xor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync break; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbDoRightMaskByteRRop6Cases(dst,xor) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync default: \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbMaskStip(x,w,l,n,r) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n = (w); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync r = FbRightStipMask((x)+n); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync l = FbLeftStipMask(x); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (l) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n -= FB_STIP_UNIT - ((x) & FB_STIP_MASK); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (n < 0) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync l &= r; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync r = 0; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync n >>= FB_STIP_SHIFT; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * These macros are used to transparently stipple
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * in copy mode; the expected usage is with 'n' constant
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * so all of the conditional parts collapse into a minimal
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * sequence of partial word writes
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * of the FbBits base unit, 'o' is the offset within that unit
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * The term "lane" comes from the hardware term "byte-lane" which
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLaneCase1(n,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((n) == 0x01) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync }
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLaneCase2(n,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((n) == 0x03) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbLaneCase1((n)&1,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbLaneCase1((n)>>1,a,(o)+1) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync }
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLaneCase4(n,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((n) == 0x0f) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbLaneCase2((n)&3,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbLaneCase2((n)>>2,a,(o)+2) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync }
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLaneCase8(n,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((n) == 0x0ff) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync *(FbBits *) ((a)+(o)) = fgxor; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbLaneCase4((n)&15,a,o) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbLaneCase4((n)>>4,a,(o)+4) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync }
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT == 6
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLaneCase(n,a) FbLaneCase8(n,(CARD8 *) (a),0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_SHIFT == 5
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Rotate a filled pixel value to the specified alignement */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbNext24Pix(p) (FbRot24(p,(24-FB_UNIT%24)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPrev24Pix(p) (FbRot24(p,FB_UNIT%24))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* step a rotation value to the next/previous rotation value */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_UNIT == 64
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbNext24Rot(r) ((r) == 16 ? 0 : (r) + 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPrev24Rot(r) ((r) == 0 ? 16 : (r) - 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbFirst24Rot(x) (((x) + 8) % 24)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbFirst24Rot(x) ((x) % 24)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if FB_UNIT == 32
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbFirst24Rot(x) (((x) + 16) % 24)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbFirst24Rot(x) ((x) % 24)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbCheck24Pix(p) ((p) == FbNext24Pix(p))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Macros for dealing with dashing */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDashDeclare \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned char *__dash, *__firstDash, *__lastDash
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (even) = TRUE; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync __firstDash = (pGC)->dash; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync __lastDash = __firstDash + (pGC)->numInDashList; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (dashOffset) %= (pPriv)->dashLength; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync __dash = __firstDash; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync while ((dashOffset) >= ((dashlen) = *__dash)) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (dashOffset) -= (dashlen); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (even) = 1-(even); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (++__dash == __lastDash) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync __dash = __firstDash; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (dashlen) -= (dashOffset); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDashNext(dashlen) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (++__dash == __lastDash) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync __dash = __firstDash; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (dashlen) = *__dash; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* as numInDashList is always even, this case can skip a test */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDashNextEven(dashlen) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (dashlen) = *++__dash; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDashNextOdd(dashlen) FbDashNext(dashlen)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbDashStep(dashlen,even) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if (!--(dashlen)) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbDashNext(dashlen); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (even) = 1-(even); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT DevPrivateKey
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGetGCPrivateKey (void);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT DevPrivateKey
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGetWinPrivateKey (void);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT const GCOps fbGCOps;
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT const GCFuncs fbGCFuncs;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Framebuffer access wrapper */
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef FbBits (*ReadMemoryProcPtr)(const void *src, int size);
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef void (*WriteMemoryProcPtr)(void *dst, FbBits value, int size);
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef void (*SetupWrapProcPtr)(ReadMemoryProcPtr *pRead,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync WriteMemoryProcPtr *pWrite,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDraw);
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef void (*FinishWrapProcPtr)(DrawablePtr pDraw);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef FB_ACCESS_WRAPPER
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbPrepareAccess(pDraw) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbGetScreenPrivate((pDraw)->pScreen)->setupWrap( \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync &wfbReadMemory, \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync &wfbWriteMemory, \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (pDraw))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbFinishAccess(pDraw) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbGetScreenPrivate((pDraw)->pScreen)->finishWrap(pDraw)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbPrepareAccess(pPix)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbFinishAccess(pDraw)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT DevPrivateKey
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGetScreenPrivateKey(void);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* private field of a screen */
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef struct {
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef FB_ACCESS_WRAPPER
f78b12e570284aa8291f4ca1add24937fd107403vboxsync SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync} FbScreenPrivRec, *FbScreenPrivPtr;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync dixLookupPrivate(&(pScreen)->devPrivates, fbGetScreenPrivateKey()))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* private field of GC */
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef struct {
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and, xor; /* reduced rop values */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgand, bgxor; /* for stipples */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fg, bg, pm; /* expanded and filled */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned int dashLength; /* total of all dash elements */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned char evenStipple; /* stipple is even */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned char bpp; /* current drawable bpp */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync} FbGCPrivRec, *FbGCPrivPtr;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\
f78b12e570284aa8291f4ca1add24937fd107403vboxsync dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey()))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetExpose(pGC) ((pGC)->fExpose)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetWindowPixmap(pWin) ((PixmapPtr)\
f78b12e570284aa8291f4ca1add24937fd107403vboxsync dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey()))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef ROOTLESS
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixDrawableX(pPix) ((pPix)->drawable.x)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixDrawableY(pPix) ((pPix)->drawable.y)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixDrawableX(pPix) 0
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixDrawableY(pPix) 0
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef COMPOSITE
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#else
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (pixmap) = fbGetWindowPixmap(pDrawable); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (xoff) = __fbPixOffXWin(pixmap); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (yoff) = __fbPixOffYWin(pixmap); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } else { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (pixmap) = (PixmapPtr) (pDrawable); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (xoff) = __fbPixOffXPix(pixmap); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (yoff) = __fbPixOffYPix(pixmap); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync } \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbPrepareAccess(pDrawable); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PixmapPtr _pPix; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PixmapPtr _pPix; \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync}
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * XFree86 empties the root BorderClip when the VT is inactive,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * here's a macro which uses that to disable GetImage and GetSpans
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbWindowEnabled(pWin) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbDrawableEnabled(pDrawable) \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync ((pDrawable)->type == DRAWABLE_PIXMAP ? \
f78b12e570284aa8291f4ca1add24937fd107403vboxsync TRUE : fbWindowEnabled((WindowPtr) pDrawable))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbPowerOfTwo(w) (((w) & ((w) - 1)) == 0)
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * Accelerated stipples are power of 2 width and <= FB_UNIT/dstBpp
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * with dstBpp a power of 2 as well
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define FbEvenStip(w,bpp) ((w) * (bpp) <= FB_UNIT && FbPowerOfTwo(w) && FbPowerOfTwo(bpp))
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fb24_32.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32GetSpans(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int wMax,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *pwidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nspans,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *pchardstStart);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32SetSpans (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *pwidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nspans,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int fSorted);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32PutZImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr pClip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CARD8 *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32GetImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int w,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int h,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned int format,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned long planeMask,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *d);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32CopyMtoN (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT PixmapPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32CreateScreenResources(ScreenPtr pScreen);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfb24_32ModifyPixmapHeader (PixmapPtr pPixmap,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int depth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bitsPerPixel,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int devKind,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pPixData);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fballpriv.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCIndex);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbarc.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyArc (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int narcs,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xArc *parcs);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbbits.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresSolid8(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresDash8 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDots8 (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pBox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xPoint *pts,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbArc8 (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xArc *arc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGlyph8 (FbBits *dstLine,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stipple,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int shift);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyline8 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ptsOrig);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolySegment8 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nseg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xSegment *pseg);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresSolid16(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresDash16(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDots16(FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pBox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xPoint *pts,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbArc16(FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xArc *arc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGlyph16(FbBits *dstLine,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stipple,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int shift);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyline16 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ptsOrig);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolySegment16 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nseg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xSegment *pseg);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresSolid24(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresDash24(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDots24(FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pBox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xPoint *pts,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbArc24(FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xArc *arc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGlyph24(FbBits *dstLine,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stipple,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int shift);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyline24 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ptsOrig);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolySegment24 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nseg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xSegment *pseg);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresSolid32(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBresDash32(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDots32(FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pBox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xPoint *pts,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbArc32(FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xArc *arc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGlyph32(FbBits *dstLine,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stipple,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int shift);
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyline32 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ptsOrig);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolySegment32 (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nseg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xSegment *pseg);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbblt.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBlt (FbBits *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBlt24 (FbBits *srcLine,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *dstLine,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBltStip (FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride, /* in FbStip units, not FbBits units */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride, /* in FbStip units, not FbBits units */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbbltone.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBltOne (FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fbxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgxor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBltOne24 (FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride, /* FbStip units per scanline */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX, /* bit position of source */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride, /* FbBits units per scanline */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX, /* bit position of dest */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp, /* bits per destination unit */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width, /* width in bits of destination */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height, /* height in scanlines */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgand, /* rrop values */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgxor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBltPlane (FbBits *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip fgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip fgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip bgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip bgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel planeMask);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbcmap_mi.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT int
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbInstallColormap(ColormapPtr pmap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbUninstallColormap(ColormapPtr pmap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbResolveColor(unsigned short *pred,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned short *pgreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned short *pblue,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync VisualPtr pVisual);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbInitializeColormap(ColormapPtr pmap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT int
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbExpandDirectColors (ColormapPtr pmap,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ndef,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xColorItem *indefs,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xColorItem *outdefs);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCreateDefColormap(ScreenPtr pScreen);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbClearVisualTypes(void);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbHasVisualTypes (int depth);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSetVisualTypes (int depth, int visuals, int bitsPerRGB);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel redMask, Pixel greenMask, Pixel blueMask);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbInitVisuals (VisualPtr *visualp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DepthPtr *depthp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *nvisualp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *ndepthp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *rootDepthp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync VisualID *defaultVisp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned long sizes,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bitsPerRGB);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbcopy.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Compatibility definition, to be removed at next ABI change. */
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef void (*fbCopyProc) (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pDstBox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyNtoN (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Compatibility wrapper, to be removed at next ABI change. */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyRegion (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr pDstRegion,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbCopyProc copyProc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitPlane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/* Compatibility wrapper, to be removed at next ABI change. */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT RegionPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDoCopy (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xIn,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yIn,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int widthSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int heightSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xOut,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yOut,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync fbCopyProc copyProc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopy1toN (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyNto1 (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT RegionPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyArea (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xIn,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yIn,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int widthSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int heightSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xOut,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yOut);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT RegionPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyPlane (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xIn,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yIn,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int widthSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int heightSrc,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xOut,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yOut,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned long bitplane);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbfill.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbFill (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSolidBoxClipped (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr pClip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xa,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ya,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xb,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yb,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbfillrect.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyFillRect(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nrectInit,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xRectangle *prectInit);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbPolyFillArc miPolyFillArc
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbFillPolygon miFillPolygon
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbfillsp.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbFillSpans (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nInit,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr pptInit,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *pwidthInit,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int fSorted);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbgc.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCreateGC(GCPtr pGC);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPadPixmap (PixmapPtr pPixmap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbgetsp.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGetSpans(DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int wMax,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *pwidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nspans,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *pchardstStart);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbglyph.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGlyphIn (RegionPtr pRegion,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyGlyphBlt (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned int nglyph,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CharInfoPtr *ppci,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pglyphBase);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbImageGlyphBlt (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned int nglyph,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync CharInfoPtr *ppci,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pglyphBase);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbimage.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPutImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int depth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int w,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int h,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int leftPad,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int format,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *pImage);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPutZImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr pClip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPutXYImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr pClip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool opaque,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbGetImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int w,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int h,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned int format,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned long planeMask,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *d);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbline.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbZeroLine (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbZeroSegment (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nseg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xSegment *pSegs);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyLine (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbFixCoordModePrevious (int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolySegment (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nseg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xSegment *pseg);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#define fbPolyRectangle miPolyRectangle
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbpict.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPictureInit (ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PictFormatPtr formats,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nformats);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbpixmap.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT PixmapPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned usage_hint);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT PixmapPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned usage_hint);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDestroyPixmap (PixmapPtr pPixmap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT RegionPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPixmapToRegion(PixmapPtr pPix);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbpoint.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDots (FbBits *dstOrig,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pBox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xPoint *pts,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yorg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits andOrig,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xorOrig);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPolyPoint (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int mode,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int npt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync xPoint *pptInit);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbpush.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPushPattern (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPushFill (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPushImage (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride srcStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int srcX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPushPixels (GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync PixmapPtr pBitmap,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xOrg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yOrg);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbscreen.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCloseScreen (int indx, ScreenPtr pScreen);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbQueryBestSize (int class,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync unsigned short *width, unsigned short *height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync ScreenPtr pScreen);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT PixmapPtr
f78b12e570284aa8291f4ca1add24937fd107403vboxsync_fbGetWindowPixmap (WindowPtr pWindow);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsync_fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSetupScreen(ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pbits, /* pointer to screen bitmap */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xsize, /* in pixels */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ysize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpix, /* dots per inch */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpiy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width, /* pixel width of frame buffer */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp); /* bits per pixel of frame buffer */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncwfbFinishScreenInit(ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pbits,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xsize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ysize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpix,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpiy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync SetupWrapProcPtr setupWrap,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FinishWrapProcPtr finishWrap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncwfbScreenInit(ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pbits,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xsize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ysize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpix,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpiy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync SetupWrapProcPtr setupWrap,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FinishWrapProcPtr finishWrap);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbFinishScreenInit(ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pbits,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xsize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ysize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpix,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpiy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbScreenInit(ScreenPtr pScreen,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync pointer pbits,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xsize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ysize,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpix,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dpiy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbseg.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsynctypedef void FbBres (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT FbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbsetsp.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSetSpans (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync char *src,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointPtr ppt,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *pwidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nspans,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int fSorted);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT FbBres *
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSelectBres (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbBres (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dashOffset,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int signdy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int axis,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int x,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int y,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e1,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int e3,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int len);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSegment (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xa,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int ya,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xb,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yb,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool drawLast,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *dashOffset);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbsolid.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSolid (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbSolid24 (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbstipple.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbTransparentSpan (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits stip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int n);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbEvenStipple (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride stipStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int stipHeight,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xRot,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yRot);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbOddStipple (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride stipStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int stipWidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int stipHeight,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xRot,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yRot);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbStipple (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstBpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStip *stip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride stipStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int stipWidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int stipHeight,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool even,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits fgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgand,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits bgxor,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xRot,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yRot);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbtile.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbEvenTile (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *tile,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride tileStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int tileHeight,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xRot,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yRot);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbOddTile (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *tile,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride tileStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int tileWidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int tileHeight,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xRot,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yRot);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbTile (FbBits *dst,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride dstStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dstX,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int width,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int height,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits *tile,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbStride tileStride,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int tileWidth,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int tileHeight,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int alu,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits pm,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int bpp,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int xRot,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int yRot);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbutil.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT FbBits
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbReplicatePixel (Pixel p, int bpp);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#ifdef FB_ACCESS_WRAPPER
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT ReadMemoryProcPtr wfbReadMemory;
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync/*
f78b12e570284aa8291f4ca1add24937fd107403vboxsync * fbwindow.c
f78b12e570284aa8291f4ca1add24937fd107403vboxsync */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCreateWindow(WindowPtr pWin);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbDestroyWindow(WindowPtr pWin);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbMapWindow(WindowPtr pWindow);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbPositionWindow(WindowPtr pWin, int x, int y);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbUnmapWindow(WindowPtr pWindow);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyWindowProc (DrawablePtr pSrcDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DrawablePtr pDstDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync GCPtr pGC,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync BoxPtr pbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int nbox,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dx,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int dy,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool reverse,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool upsidedown,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Pixel bitplane,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync void *closure);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbCopyWindow(WindowPtr pWin,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync DDXPointRec ptOldOrg,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr prgnSrc);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT Bool
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncfbFillRegionSolid (DrawablePtr pDrawable,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync RegionPtr pRegion,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits and,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync FbBits xor);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT pixman_image_t *
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncimage_from_pict (PicturePtr pict,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync Bool has_clip,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *xoff,
f78b12e570284aa8291f4ca1add24937fd107403vboxsync int *yoff);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsyncextern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
f78b12e570284aa8291f4ca1add24937fd107403vboxsync
f78b12e570284aa8291f4ca1add24937fd107403vboxsync#endif /* _FB_H_ */
f78b12e570284aa8291f4ca1add24937fd107403vboxsync