03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Copyright © 1998 Keith Packard
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * documentation for any purpose is hereby granted without fee, provided that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * the above copyright notice appear in all copies and that both that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * copyright notice and this permission notice appear in supporting
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * documentation, and that the name of Keith Packard not be used in
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * advertising or publicity pertaining to distribution of the software without
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * specific, written prior permission. Keith Packard makes no
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * representations about the suitability of this software for any purpose. It
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * is provided "as is" without express or implied warranty.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * PERFORMANCE OF THIS SOFTWARE.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifndef _FB_H_
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define _FB_H_
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include <X11/X.h>
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include <pixman.h>
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "scrnintstr.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "pixmap.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "pixmapstr.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "region.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "gcstruct.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "colormap.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "miscstruct.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "servermd.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "windowstr.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "privates.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "mi.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "migc.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "picturestr.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef FB_ACCESS_WRAPPER
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "wfbrename.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FBPREFIX(x) wfb##x
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define WRITE(ptr, val) ((*wfbWriteMemory)((ptr), (val), sizeof(*(ptr))))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define READ(ptr) ((*wfbReadMemory)((ptr), sizeof(*(ptr))))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define MEMCPY_WRAPPED(dst, src, size) do { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync size_t _i; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync CARD8 *_dst = (CARD8*)(dst), *_src = (CARD8*)(src); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync for(_i = 0; _i < size; _i++) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE(_dst +_i, READ(_src + _i)); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} while(0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define MEMSET_WRAPPED(dst, val, size) do { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync size_t _i; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync CARD8 *_dst = (CARD8*)(dst); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync for(_i = 0; _i < size; _i++) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE(_dst +_i, (val)); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} while(0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FBPREFIX(x) fb##x
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define WRITE(ptr, val) (*(ptr) = (val))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define READ(ptr) (*(ptr))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define MEMCPY_WRAPPED(dst, src, size) memcpy((dst), (src), (size))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define MEMSET_WRAPPED(dst, val, size) memset((dst), (val), (size))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * This single define controls the basic size of data manipulated
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifndef FB_SHIFT
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_SHIFT LOG2_BITMAP_PAD
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT < LOG2_BITMAP_PAD
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncerror FB_SHIFT must be >= LOG2_BITMAP_PAD
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_UNIT (1 << FB_SHIFT)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_HALFUNIT (1 << (FB_SHIFT-1))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_MASK (FB_UNIT - 1)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_ALLONES ((FbBits) -1)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if GLYPHPADBYTES != 4
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#error "GLYPHPADBYTES must be 4"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* for driver compat - intel UXA needs the second one at least */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_24BIT
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_24_32BIT
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_STIP_SHIFT LOG2_BITMAP_PAD
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_STIP_UNIT (1 << FB_STIP_SHIFT)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_STIP_MASK (FB_STIP_UNIT - 1)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_STIP_ALLONES ((FbStip) -1)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT == 6
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef WIN32
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef unsigned __int64 FbBits;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if defined(__alpha__) || defined(__alpha) || \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync defined(ia64) || defined(__ia64__) || \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync defined(__sparc64__) || defined(_LP64) || \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync defined(__s390x__) || \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync defined(amd64) || defined (__amd64__) || \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync defined (__powerpc64__)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef unsigned long FbBits;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef unsigned long long FbBits;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT == 5
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef CARD32 FbBits;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT == 4
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef CARD16 FbBits;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if LOG2_BITMAP_PAD == FB_SHIFT
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef FbBits FbStip;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if LOG2_BITMAP_PAD == 5
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef CARD32 FbStip;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef int FbStride;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef FB_DEBUG
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_HEAD_BITS (FbStip) (0xbaadf00d)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FB_TAIL_BITS (FbStip) (0xbaddf0ad)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbValidateDrawable(d)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fdInitializeDrawable(d)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "fbrop.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if BITMAP_BIT_ORDER == LSBFirst
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbScrLeft(x,n) ((x) >> (n))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbScrRight(x,n) ((x) << (n))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPatternOffsetBits 0
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbScrLeft(x,n) ((x) << (n))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbScrRight(x,n) ((x) >> (n))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStipMoveLsb(x,s,n) (x)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPatternOffsetBits (sizeof (FbBits) - 1)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#include "micoord.h"
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStipLeft(x,n) FbScrLeft(x,n)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStipRight(x,n) FbScrRight(x,n)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLeftMask(x) ( ((x) & FB_MASK) ? \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbScrRight(FB_ALLONES,(x) & FB_MASK) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbMaskBits(x,w,l,n,r) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n = (w); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync r = FbRightMask((x)+n); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync l = FbLeftMask(x); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (l) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (n < 0) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync l &= r; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync r = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n >>= FB_SHIFT; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbByteMaskInvalid 0x10
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbStorePart(dst,off,t,xor) (WRITE(FbPtrOffset(dst,off,t), \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbSelectPart(xor,off,t)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifndef FbSelectPart
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n = (w); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync lb = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync rb = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync r = FbRightMask((x)+n); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (r) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync /* compute right byte length */ \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((copy) && (((x) + n) & 7) == 0) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync rb = (((x) + n) & FB_MASK) >> 3; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync rb = FbByteMaskInvalid; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync l = FbLeftMask(x); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (l) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync /* compute left byte length */ \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((copy) && ((x) & 7) == 0) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync lb = ((x) & FB_MASK) >> 3; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync lb = FbByteMaskInvalid; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync /* subtract out the portion painted by leftMask */ \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (n < 0) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (lb != FbByteMaskInvalid) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (rb == FbByteMaskInvalid) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync lb = FbByteMaskInvalid; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else if (rb) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync lb |= (rb - lb) << (FB_SHIFT - 3); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync rb = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync l &= r; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync r = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync }\
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n >>= FB_SHIFT; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT == 6
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7) | (1 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7) | (2 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7) | (3 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7) | (4 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7) | (5 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7) | (6 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 7): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 6) | (1 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 6) | (2 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 6) | (3 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 6) | (4 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 6) | (5 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 6): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 5) | (1 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 5) | (2 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 5) | (3 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 5) | (4 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 5): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 4) | (1 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 4) | (2 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 4) | (3 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 4): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 4: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 5: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,4,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 6: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 7: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD32,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,4,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,6,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync switch (lb) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbDoLeftMaskByteRRop6Cases(dst,xor) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case sizeof (FbBits) - 3: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case sizeof (FbBits) - 2: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case sizeof (FbBits) - 1: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,sizeof (FbBits) - 1,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync default: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, l)); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync switch (rb) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 1: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 2: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync case 3: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,0,CARD16,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStorePart(dst,2,CARD8,xor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync break; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbDoRightMaskByteRRop6Cases(dst,xor) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync default: \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbMaskStip(x,w,l,n,r) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n = (w); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync r = FbRightStipMask((x)+n); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync l = FbLeftStipMask(x); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (l) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n -= FB_STIP_UNIT - ((x) & FB_STIP_MASK); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (n < 0) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync l &= r; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync r = 0; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync n >>= FB_STIP_SHIFT; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * These macros are used to transparently stipple
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * in copy mode; the expected usage is with 'n' constant
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * so all of the conditional parts collapse into a minimal
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * sequence of partial word writes
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * of the FbBits base unit, 'o' is the offset within that unit
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * The term "lane" comes from the hardware term "byte-lane" which
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLaneCase1(n,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((n) == 0x01) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync }
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLaneCase2(n,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((n) == 0x03) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbLaneCase1((n)&1,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbLaneCase1((n)>>1,a,(o)+1) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync }
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLaneCase4(n,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((n) == 0x0f) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbLaneCase2((n)&3,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbLaneCase2((n)>>2,a,(o)+2) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync }
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLaneCase8(n,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((n) == 0x0ff) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync *(FbBits *) ((a)+(o)) = fgxor; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbLaneCase4((n)&15,a,o) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbLaneCase4((n)>>4,a,(o)+4) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync }
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT == 6
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLaneCase(n,a) FbLaneCase8(n,(CARD8 *) (a),0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_SHIFT == 5
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Rotate a filled pixel value to the specified alignement */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbNext24Pix(p) (FbRot24(p,(24-FB_UNIT%24)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPrev24Pix(p) (FbRot24(p,FB_UNIT%24))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* step a rotation value to the next/previous rotation value */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_UNIT == 64
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbNext24Rot(r) ((r) == 16 ? 0 : (r) + 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPrev24Rot(r) ((r) == 0 ? 16 : (r) - 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbFirst24Rot(x) (((x) + 8) % 24)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbFirst24Rot(x) ((x) % 24)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if FB_UNIT == 32
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbFirst24Rot(x) (((x) + 16) % 24)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbFirst24Rot(x) ((x) % 24)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbCheck24Pix(p) ((p) == FbNext24Pix(p))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Macros for dealing with dashing */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDashDeclare \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char *__dash, *__firstDash, *__lastDash
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (even) = TRUE; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync __firstDash = (pGC)->dash; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync __lastDash = __firstDash + (pGC)->numInDashList; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (dashOffset) %= (pPriv)->dashLength; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync __dash = __firstDash; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync while ((dashOffset) >= ((dashlen) = *__dash)) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (dashOffset) -= (dashlen); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (even) = 1-(even); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (++__dash == __lastDash) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync __dash = __firstDash; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (dashlen) -= (dashOffset); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDashNext(dashlen) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (++__dash == __lastDash) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync __dash = __firstDash; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (dashlen) = *__dash; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* as numInDashList is always even, this case can skip a test */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDashNextEven(dashlen) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (dashlen) = *++__dash; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDashNextOdd(dashlen) FbDashNext(dashlen)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbDashStep(dashlen,even) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if (!--(dashlen)) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbDashNext(dashlen); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (even) = 1-(even); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT const GCOps fbGCOps;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT const GCFuncs fbGCFuncs;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Framebuffer access wrapper */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef FbBits(*ReadMemoryProcPtr) (const void *src, int size);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef void (*WriteMemoryProcPtr) (void *dst, FbBits value, int size);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef void (*SetupWrapProcPtr) (ReadMemoryProcPtr * pRead,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync WriteMemoryProcPtr * pWrite,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDraw);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef void (*FinishWrapProcPtr) (DrawablePtr pDraw);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef FB_ACCESS_WRAPPER
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbPrepareAccess(pDraw) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGetScreenPrivate((pDraw)->pScreen)->setupWrap( \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync &wfbReadMemory, \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync &wfbWriteMemory, \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (pDraw))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbFinishAccess(pDraw) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGetScreenPrivate((pDraw)->pScreen)->finishWrap(pDraw)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbPrepareAccess(pPix)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbFinishAccess(pDraw)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT DevPrivateKey
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGetScreenPrivateKey(void);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* private field of a screen */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef FB_ACCESS_WRAPPER
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DevPrivateKeyRec gcPrivateKeyRec;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DevPrivateKeyRec winPrivateKeyRec;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} FbScreenPrivRec, *FbScreenPrivPtr;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync dixLookupPrivate(&(pScreen)->devPrivates, fbGetScreenPrivateKey()))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* private field of GC */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef struct {
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits and, xor; /* reduced rop values */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits bgand, bgxor; /* for stipples */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fg, bg, pm; /* expanded and filled */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int dashLength; /* total of all dash elements */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char evenStipple; /* stipple is even */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned char bpp; /* current drawable bpp */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync} FbGCPrivRec, *FbGCPrivPtr;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetGCPrivateKey(pGC) (&fbGetScreenPrivate((pGC)->pScreen)->gcPrivateKeyRec)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey(pGC)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetExpose(pGC) ((pGC)->fExpose)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetWinPrivateKey(pWin) (&fbGetScreenPrivate(((DrawablePtr) (pWin))->pScreen)->winPrivateKeyRec)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetWindowPixmap(pWin) ((PixmapPtr)\
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey(pWin)))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef ROOTLESS
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixDrawableX(pPix) ((pPix)->drawable.x)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixDrawableY(pPix) ((pPix)->drawable.y)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixDrawableX(pPix) 0
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixDrawableY(pPix) 0
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef COMPOSITE
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#else
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (pixmap) = fbGetWindowPixmap(pDrawable); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (xoff) = __fbPixOffXWin(pixmap); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (yoff) = __fbPixOffYWin(pixmap); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } else { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (pixmap) = (PixmapPtr) (pDrawable); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (xoff) = __fbPixOffXPix(pixmap); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (yoff) = __fbPixOffYPix(pixmap); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync } \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPrepareAccess(pDrawable); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr _pPix; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr _pPix; \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync}
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * XFree86 empties the root BorderClip when the VT is inactive,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * here's a macro which uses that to disable GetImage and GetSpans
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbWindowEnabled(pWin) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbDrawableEnabled(pDrawable) \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync ((pDrawable)->type == DRAWABLE_PIXMAP ? \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync TRUE : fbWindowEnabled((WindowPtr) pDrawable))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbPowerOfTwo(w) (((w) & ((w) - 1)) == 0)
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Accelerated stipples are power of 2 width and <= FB_UNIT/dstBpp
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * with dstBpp a power of 2 as well
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define FbEvenStip(w,bpp) ((w) * (bpp) <= FB_UNIT && FbPowerOfTwo(w) && FbPowerOfTwo(bpp))
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fb24_32.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfb24_32GetSpans(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int wMax,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr ppt, int *pwidth, int nspans, char *pchardstStart);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfb24_32SetSpans(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync char *src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfb24_32PutZImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pClip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int alu,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits pm,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y, int width, int height, CARD8 *src, FbStride srcStride);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfb24_32GetImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int w,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int h, unsigned int format, unsigned long planeMask, char *d);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfb24_32CopyMtoN(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT PixmapPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fb24_32CreateScreenResources(ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfb24_32ModifyPixmapHeader(PixmapPtr pPixmap,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int depth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int bitsPerPixel, int devKind, pointer pPixData);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fballpriv.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbAllocatePrivates(ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbarc.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc * parcs);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbbits.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresSolid8(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresDash8(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy, int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDots8(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pBox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xPoint * pts,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int npt,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbArc8(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGlyph8(FbBits * dstLine,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyline8(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPolySegment8(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresSolid16(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresDash16(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDots16(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pBox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xPoint * pts,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int npt,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbArc16(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGlyph16(FbBits * dstLine,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyline16(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPolySegment16(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresSolid24(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresDash24(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDots24(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pBox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xPoint * pts,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int npt,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbArc24(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGlyph24(FbBits * dstLine,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyline24(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPolySegment24(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresSolid32(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBresDash32(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDots32(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pBox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xPoint * pts,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int npt,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbArc32(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGlyph32(FbBits * dstLine,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyline32(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPolySegment32(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbblt.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBlt(FbBits * src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height, int alu, FbBits pm, int bpp, Bool reverse, Bool upsidedown);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBlt24(FbBits * srcLine,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * dstLine,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height, int alu, FbBits pm, Bool reverse, Bool upsidedown);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbBltStip(FbStip * src, FbStride srcStride, /* in FbStip units, not FbBits units */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX, FbStip * dst, FbStride dstStride, /* in FbStip units, not FbBits units */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX, int width, int height, int alu, FbBits pm, int bpp);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbbltone.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBltOne(FbStip * src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height, FbBits fgand, FbBits fbxor, FbBits bgand, FbBits bgxor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbBltOne24(FbStip * src, FbStride srcStride, /* FbStip units per scanline */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX, /* bit position of source */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * dst, FbStride dstStride, /* FbBits units per scanline */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX, /* bit position of dest */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp, /* bits per destination unit */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width, /* width in bits of destination */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height, /* height in scanlines */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgand, /* rrop values */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgxor, FbBits bgand, FbBits bgxor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBltPlane(FbBits * src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip fgand,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip fgxor, FbStip bgand, FbStip bgxor, Pixel planeMask);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbcmap_mi.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT int
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbListInstalledColormaps(ScreenPtr pScreen, Colormap * pmaps);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbInstallColormap(ColormapPtr pmap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbUninstallColormap(ColormapPtr pmap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbResolveColor(unsigned short *pred,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short *pgreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short *pblue, VisualPtr pVisual);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbInitializeColormap(ColormapPtr pmap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT int
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbExpandDirectColors(ColormapPtr pmap,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ndef, xColorItem * indefs, xColorItem * outdefs);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbCreateDefColormap(ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbClearVisualTypes(void);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbHasVisualTypes(int depth);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbSetVisualTypes(int depth, int visuals, int bitsPerRGB);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Pixel redMask, Pixel greenMask, Pixel blueMask);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbInitVisuals(VisualPtr * visualp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DepthPtr * depthp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int *nvisualp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int *ndepthp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int *rootDepthp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync VisualID * defaultVisp, unsigned long sizes, int bitsPerRGB);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbcopy.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Compatibility definition, to be removed at next ABI change. */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef void (*fbCopyProc) (DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pDstBox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool reverse,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool upsidedown, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopyNtoN(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Compatibility wrapper, to be removed at next ABI change. */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopyRegion(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pDstRegion,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy, fbCopyProc copyProc, Pixel bitPlane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Compatibility wrapper, to be removed at next ABI change. */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT RegionPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDoCopy(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xIn,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int yIn,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int widthSrc,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int heightSrc,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xOut,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int yOut, fbCopyProc copyProc, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopy1toN(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopyNto1(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT RegionPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopyArea(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xIn, int yIn, int widthSrc, int heightSrc, int xOut, int yOut);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT RegionPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopyPlane(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xIn,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int yIn,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int widthSrc,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int heightSrc, int xOut, int yOut, unsigned long bitplane);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbfill.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbFill(DrawablePtr pDrawable, GCPtr pGC, int x, int y, int width, int height);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbSolidBoxClipped(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pClip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xa, int ya, int xb, int yb, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbfillrect.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyFillRect(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int nrectInit, xRectangle *prectInit);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbPolyFillArc miPolyFillArc
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbFillPolygon miFillPolygon
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbfillsp.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbFillSpans(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nInit, DDXPointPtr pptInit, int *pwidthInit, int fSorted);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbgc.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbCreateGC(GCPtr pGC);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPadPixmap(PixmapPtr pPixmap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbgetsp.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGetSpans(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int wMax,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DDXPointPtr ppt, int *pwidth, int nspans, char *pchardstStart);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbglyph.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbGlyphIn(RegionPtr pRegion, int x, int y, int width, int height);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyGlyphBlt(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbImageGlyphBlt(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned int nglyph, CharInfoPtr * ppci, pointer pglyphBase);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbimage.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPutImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int depth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x, int y, int w, int h, int leftPad, int format, char *pImage);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPutZImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pClip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int alu,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits pm,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y, int width, int height, FbStip * src, FbStride srcStride);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPutXYImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pClip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fg,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits bg,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits pm,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int alu,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool opaque,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width, int height, FbStip * src, FbStride srcStride, int srcX);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbGetImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int y,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int w, int h, unsigned int format, unsigned long planeMask, char *d);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbline.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbZeroLine(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ppt);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbZeroSegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pSegs);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyLine(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ppt);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbFixCoordModePrevious(int npt, DDXPointPtr ppt);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define fbPolyRectangle miPolyRectangle
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbpict.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDestroyGlyphCache(void);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbpixmap.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT PixmapPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCreatePixmapBpp(ScreenPtr pScreen, int width, int height, int depth, int bpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned usage_hint);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT PixmapPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned usage_hint);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbDestroyPixmap(PixmapPtr pPixmap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT RegionPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPixmapToRegion(PixmapPtr pPix);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbpoint.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbDots(FbBits * dstOrig,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pBox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync xPoint * pts,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int npt,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xorg, int yorg, int xoff, int yoff, FbBits andOrig, FbBits xorOrig);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPolyPoint(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC, int mode, int npt, xPoint * pptInit);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbpush.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPushPattern(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int srcX, int x, int y, int width, int height);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPushFill(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride, int srcX, int x, int y, int width, int height);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPushImage(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * src,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride srcStride, int srcX, int x, int y, int width, int height);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbPushPixels(GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync PixmapPtr pBitmap,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDrawable, int dx, int dy, int xOrg, int yOrg);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbscreen.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbCloseScreen(ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbQueryBestSize(int class,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync unsigned short *width, unsigned short *height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync ScreenPtr pScreen);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT PixmapPtr
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync _fbGetWindowPixmap(WindowPtr pWindow);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync _fbSetWindowPixmap(WindowPtr pWindow, PixmapPtr pPixmap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbSetupScreen(ScreenPtr pScreen, pointer pbits, /* pointer to screen bitmap */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize, /* in pixels */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ysize, int dpix, /* dots per inch */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpiy, int width, /* pixel width of frame buffer */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int bpp); /* bits per pixel of frame buffer */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncwfbFinishScreenInit(ScreenPtr pScreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ysize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpix,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpiy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int bpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncwfbScreenInit(ScreenPtr pScreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ysize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpix,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dpiy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int bpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbFinishScreenInit(ScreenPtr pScreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int ysize, int dpix, int dpiy, int width, int bpp);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbScreenInit(ScreenPtr pScreen,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync pointer pbits,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xsize, int ysize, int dpix, int dpiy, int width, int bpp);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbseg.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynctypedef void FbBres(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT FbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbsetsp.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbSetSpans(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync char *src, DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT FbBres *fbSelectBres(DrawablePtr pDrawable, GCPtr pGC);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbBres(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dashOffset,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int signdy, int axis, int x, int y, int e, int e1, int e3, int len);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbSegment(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int xa, int ya, int xb, int yb, Bool drawLast, int *dashOffset);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbsolid.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbSolid(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX, int bpp, int width, int height, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbSolid24(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX, int width, int height, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbstipple.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbTransparentSpan(FbBits * dst, FbBits stip, FbBits fgxor, int n);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbEvenStipple(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * stip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride stipStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int stipHeight,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgand,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgxor, FbBits bgand, FbBits bgxor, int xRot, int yRot);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbOddStipple(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * stip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride stipStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int stipWidth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int stipHeight,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgand,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgxor, FbBits bgand, FbBits bgxor, int xRot, int yRot);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbStipple(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstBpp,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStip * stip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride stipStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int stipWidth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int stipHeight,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool even,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgand,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits fgxor, FbBits bgand, FbBits bgxor, int xRot, int yRot);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbtile.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbEvenTile(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * tile,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride tileStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int tileHeight, int alu, FbBits pm, int xRot, int yRot);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbOddTile(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * tile,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride tileStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int tileWidth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int tileHeight, int alu, FbBits pm, int bpp, int xRot, int yRot);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbTile(FbBits * dst,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride dstStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dstX,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int width,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int height,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbBits * tile,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync FbStride tileStride,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int tileWidth,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int tileHeight, int alu, FbBits pm, int bpp, int xRot, int yRot);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbutil.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT FbBits fbReplicatePixel(Pixel p, int bpp);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbReduceRasterOp(int rop, FbBits fg, FbBits pm, FbBits * andp, FbBits * xorp);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#ifdef FB_ACCESS_WRAPPER
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT ReadMemoryProcPtr wfbReadMemory;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/*
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * fbwindow.c
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbCreateWindow(WindowPtr pWin);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbDestroyWindow(WindowPtr pWin);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbMapWindow(WindowPtr pWindow);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbPositionWindow(WindowPtr pWin, int x, int y);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbUnmapWindow(WindowPtr pWindow);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbCopyWindowProc(DrawablePtr pSrcDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync DrawablePtr pDstDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync GCPtr pGC,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync BoxPtr pbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int nbox,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int dy,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT Bool
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync fbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfbFillRegionSolid(DrawablePtr pDrawable,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync RegionPtr pRegion, FbBits and, FbBits xor);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync Bool has_clip,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int *xoff, int *yoff);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#endif /* _FB_H_ */