f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Copyright © 1998 Keith Packard
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * documentation for any purpose is hereby granted without fee, provided that
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * the above copyright notice appear in all copies and that both that
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * copyright notice and this permission notice appear in supporting
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * documentation, and that the name of Keith Packard not be used in
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * advertising or publicity pertaining to distribution of the software without
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * specific, written prior permission. Keith Packard makes no
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * representations about the suitability of this software for any purpose. It
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * is provided "as is" without express or implied warranty.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * PERFORMANCE OF THIS SOFTWARE.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef _FB_H_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define _FB_H_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include <X11/X.h>
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include <pixman.h>
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "scrnintstr.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "pixmap.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "pixmapstr.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "region.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "gcstruct.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "colormap.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "miscstruct.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "servermd.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "windowstr.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "privates.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "mi.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "migc.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "mibstore.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "picturestr.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef FB_ACCESS_WRAPPER
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "wfbrename.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FBPREFIX(x) wfb##x
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define WRITE(ptr, val) ((*wfbWriteMemory)((ptr), (val), sizeof(*(ptr))))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define READ(ptr) ((*wfbReadMemory)((ptr), sizeof(*(ptr))))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define MEMCPY_WRAPPED(dst, src, size) do { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync size_t _i; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD8 *_dst = (CARD8*)(dst), *_src = (CARD8*)(src); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync for(_i = 0; _i < size; _i++) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE(_dst +_i, READ(_src + _i)); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} while(0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define MEMSET_WRAPPED(dst, val, size) do { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync size_t _i; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD8 *_dst = (CARD8*)(dst); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync for(_i = 0; _i < size; _i++) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE(_dst +_i, (val)); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} while(0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FBPREFIX(x) fb##x
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define WRITE(ptr, val) (*(ptr) = (val))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define READ(ptr) (*(ptr))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define MEMCPY_WRAPPED(dst, src, size) memcpy((dst), (src), (size))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define MEMSET_WRAPPED(dst, val, size) memset((dst), (val), (size))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * This single define controls the basic size of data manipulated
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef FB_SHIFT
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_SHIFT LOG2_BITMAP_PAD
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT < LOG2_BITMAP_PAD
f0ab104f070bc7f569404826fea1828ed985638cvboxsync error FB_SHIFT must be >= LOG2_BITMAP_PAD
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_UNIT (1 << FB_SHIFT)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_HALFUNIT (1 << (FB_SHIFT-1))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_MASK (FB_UNIT - 1)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_ALLONES ((FbBits) -1)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if GLYPHPADBYTES != 4
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#error "GLYPHPADBYTES must be 4"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* for driver compat - intel UXA needs the second one at least */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_24BIT
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_24_32BIT
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_STIP_SHIFT LOG2_BITMAP_PAD
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_STIP_UNIT (1 << FB_STIP_SHIFT)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_STIP_MASK (FB_STIP_UNIT - 1)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_STIP_ALLONES ((FbStip) -1)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT == 6
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# ifdef WIN32
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef unsigned __int64 FbBits;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# if defined(__alpha__) || defined(__alpha) || \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync defined(ia64) || defined(__ia64__) || \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync defined(__sparc64__) || defined(_LP64) || \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync defined(__s390x__) || \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync defined(amd64) || defined (__amd64__) || \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync defined (__powerpc64__)
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef unsigned long FbBits;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# else
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef unsigned long long FbBits;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT == 5
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef CARD32 FbBits;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT == 4
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef CARD16 FbBits;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if LOG2_BITMAP_PAD == FB_SHIFT
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef FbBits FbStip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# if LOG2_BITMAP_PAD == 5
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef CARD32 FbStip;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync# endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef int FbStride;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef FB_DEBUG
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void fbSetBits (FbStip *bits, int stride, FbStip data);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_HEAD_BITS (FbStip) (0xbaadf00d)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FB_TAIL_BITS (FbStip) (0xbaddf0ad)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbValidateDrawable(d)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fdInitializeDrawable(d)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "fbrop.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if BITMAP_BIT_ORDER == LSBFirst
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbScrLeft(x,n) ((x) >> (n))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbScrRight(x,n) ((x) << (n))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPatternOffsetBits 0
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbScrLeft(x,n) ((x) << (n))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbScrRight(x,n) ((x) >> (n))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStipMoveLsb(x,s,n) (x)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPatternOffsetBits (sizeof (FbBits) - 1)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "micoord.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStipLeft(x,n) FbScrLeft(x,n)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStipRight(x,n) FbScrRight(x,n)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLeftMask(x) ( ((x) & FB_MASK) ? \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbScrRight(FB_ALLONES,(x) & FB_MASK) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbMaskBits(x,w,l,n,r) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n = (w); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync r = FbRightMask((x)+n); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync l = FbLeftMask(x); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (l) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n -= FB_UNIT - ((x) & FB_MASK); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (n < 0) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync l &= r; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync r = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n >>= FB_SHIFT; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbByteMaskInvalid 0x10
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbStorePart(dst,off,t,xor) (WRITE(FbPtrOffset(dst,off,t), \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbSelectPart(xor,off,t)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef FbSelectPart
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n = (w); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync lb = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync rb = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync r = FbRightMask((x)+n); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (r) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* compute right byte length */ \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((copy) && (((x) + n) & 7) == 0) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync rb = (((x) + n) & FB_MASK) >> 3; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync rb = FbByteMaskInvalid; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync l = FbLeftMask(x); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (l) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* compute left byte length */ \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((copy) && ((x) & 7) == 0) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync lb = ((x) & FB_MASK) >> 3; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync lb = FbByteMaskInvalid; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /* subtract out the portion painted by leftMask */ \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n -= FB_UNIT - ((x) & FB_MASK); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (n < 0) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (lb != FbByteMaskInvalid) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (rb == FbByteMaskInvalid) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync lb = FbByteMaskInvalid; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else if (rb) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync lb |= (rb - lb) << (FB_SHIFT - 3); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync rb = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync l &= r; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync r = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n >>= FB_SHIFT; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT == 6
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7) | (1 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7) | (2 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7) | (3 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7) | (4 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7) | (5 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7) | (6 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 7): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 6) | (1 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 6) | (2 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 6) | (3 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 6) | (4 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 6) | (5 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 6): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 5) | (1 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 5) | (2 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 5) | (3 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 5) | (4 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 5): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 4) | (1 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 4) | (2 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 4) | (3 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 4): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 4: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 5: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,4,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 6: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 7: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD32,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,4,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,6,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync switch (lb) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbDoLeftMaskByteRRop6Cases(dst,xor) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case sizeof (FbBits) - 3: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case sizeof (FbBits) - 2: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case sizeof (FbBits) - 1: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,sizeof (FbBits) - 1,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync default: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, l)); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync switch (rb) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 1: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 2: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync case 3: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,0,CARD16,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStorePart(dst,2,CARD8,xor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync break; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbDoRightMaskByteRRop6Cases(dst,xor) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync default: \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbMaskStip(x,w,l,n,r) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n = (w); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync r = FbRightStipMask((x)+n); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync l = FbLeftStipMask(x); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (l) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n -= FB_STIP_UNIT - ((x) & FB_STIP_MASK); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (n < 0) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync l &= r; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync r = 0; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync n >>= FB_STIP_SHIFT; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * These macros are used to transparently stipple
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * in copy mode; the expected usage is with 'n' constant
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * so all of the conditional parts collapse into a minimal
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * sequence of partial word writes
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * of the FbBits base unit, 'o' is the offset within that unit
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * The term "lane" comes from the hardware term "byte-lane" which
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLaneCase1(n,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((n) == 0x01) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLaneCase2(n,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((n) == 0x03) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbLaneCase1((n)&1,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbLaneCase1((n)>>1,a,(o)+1) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLaneCase4(n,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((n) == 0x0f) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbLaneCase2((n)&3,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbLaneCase2((n)>>2,a,(o)+2) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLaneCase8(n,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((n) == 0x0ff) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *(FbBits *) ((a)+(o)) = fgxor; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbLaneCase4((n)&15,a,o) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbLaneCase4((n)>>4,a,(o)+4) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT == 6
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLaneCase(n,a) FbLaneCase8(n,(CARD8 *) (a),0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_SHIFT == 5
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Rotate a filled pixel value to the specified alignement */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbNext24Pix(p) (FbRot24(p,(24-FB_UNIT%24)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPrev24Pix(p) (FbRot24(p,FB_UNIT%24))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* step a rotation value to the next/previous rotation value */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_UNIT == 64
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbNext24Rot(r) ((r) == 16 ? 0 : (r) + 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPrev24Rot(r) ((r) == 0 ? 16 : (r) - 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if IMAGE_BYTE_ORDER == MSBFirst
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbFirst24Rot(x) (((x) + 8) % 24)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbFirst24Rot(x) ((x) % 24)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if FB_UNIT == 32
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#if IMAGE_BYTE_ORDER == MSBFirst
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbFirst24Rot(x) (((x) + 16) % 24)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbFirst24Rot(x) ((x) % 24)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbCheck24Pix(p) ((p) == FbNext24Pix(p))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Macros for dealing with dashing */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDashDeclare \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char *__dash, *__firstDash, *__lastDash
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (even) = TRUE; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __firstDash = (pGC)->dash; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __lastDash = __firstDash + (pGC)->numInDashList; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (dashOffset) %= (pPriv)->dashLength; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __dash = __firstDash; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync while ((dashOffset) >= ((dashlen) = *__dash)) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (dashOffset) -= (dashlen); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (even) = 1-(even); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (++__dash == __lastDash) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __dash = __firstDash; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (dashlen) -= (dashOffset); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDashNext(dashlen) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (++__dash == __lastDash) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __dash = __firstDash; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (dashlen) = *__dash; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* as numInDashList is always even, this case can skip a test */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDashNextEven(dashlen) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (dashlen) = *++__dash; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDashNextOdd(dashlen) FbDashNext(dashlen)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbDashStep(dashlen,even) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (!--(dashlen)) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbDashNext(dashlen); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (even) = 1-(even); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DevPrivateKey
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGetGCPrivateKey (void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DevPrivateKey
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGetWinPrivateKey (void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT const GCOps fbGCOps;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT const GCFuncs fbGCFuncs;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Framebuffer access wrapper */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef FbBits (*ReadMemoryProcPtr)(const void *src, int size);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*WriteMemoryProcPtr)(void *dst, FbBits value, int size);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*SetupWrapProcPtr)(ReadMemoryProcPtr *pRead,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WriteMemoryProcPtr *pWrite,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDraw);
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*FinishWrapProcPtr)(DrawablePtr pDraw);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef FB_ACCESS_WRAPPER
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbPrepareAccess(pDraw) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbGetScreenPrivate((pDraw)->pScreen)->setupWrap( \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync &wfbReadMemory, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync &wfbWriteMemory, \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (pDraw))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbFinishAccess(pDraw) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbGetScreenPrivate((pDraw)->pScreen)->finishWrap(pDraw)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbPrepareAccess(pPix)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbFinishAccess(pDraw)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DevPrivateKey
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGetScreenPrivateKey(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* private field of a screen */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef FB_ACCESS_WRAPPER
f0ab104f070bc7f569404826fea1828ed985638cvboxsync SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} FbScreenPrivRec, *FbScreenPrivPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync dixLookupPrivate(&(pScreen)->devPrivates, fbGetScreenPrivateKey()))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* private field of GC */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and, xor; /* reduced rop values */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgand, bgxor; /* for stipples */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fg, bg, pm; /* expanded and filled */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int dashLength; /* total of all dash elements */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char evenStipple; /* stipple is even */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned char bpp; /* current drawable bpp */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} FbGCPrivRec, *FbGCPrivPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey()))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetExpose(pGC) ((pGC)->fExpose)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetWindowPixmap(pWin) ((PixmapPtr)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey()))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef ROOTLESS
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixDrawableX(pPix) ((pPix)->drawable.x)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixDrawableY(pPix) ((pPix)->drawable.y)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixDrawableX(pPix) 0
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixDrawableY(pPix) 0
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef COMPOSITE
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#else
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (pixmap) = fbGetWindowPixmap(pDrawable); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (xoff) = __fbPixOffXWin(pixmap); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (yoff) = __fbPixOffYWin(pixmap); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } else { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (pixmap) = (PixmapPtr) (pDrawable); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (xoff) = __fbPixOffXPix(pixmap); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (yoff) = __fbPixOffYPix(pixmap); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync } \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbPrepareAccess(pDrawable); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PixmapPtr _pPix; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PixmapPtr _pPix; \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync}
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * XFree86 empties the root BorderClip when the VT is inactive,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * here's a macro which uses that to disable GetImage and GetSpans
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbWindowEnabled(pWin) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbDrawableEnabled(pDrawable) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ((pDrawable)->type == DRAWABLE_PIXMAP ? \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TRUE : fbWindowEnabled((WindowPtr) pDrawable))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbPowerOfTwo(w) (((w) & ((w) - 1)) == 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Accelerated stipples are power of 2 width and <= FB_UNIT/dstBpp
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * with dstBpp a power of 2 as well
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define FbEvenStip(w,bpp) ((w) * (bpp) <= FB_UNIT && FbPowerOfTwo(w) && FbPowerOfTwo(bpp))
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fb24_32.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32GetSpans(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int wMax,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *pwidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nspans,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *pchardstStart);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32SetSpans (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *pwidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nspans,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int fSorted);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32PutZImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pClip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD8 *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32GetImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int w,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int h,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int format,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned long planeMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *d);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32CopyMtoN (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PixmapPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32CreateScreenResources(ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfb24_32ModifyPixmapHeader (PixmapPtr pPixmap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int depth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bitsPerPixel,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int devKind,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pPixData);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fballpriv.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCIndex);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbarc.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyArc (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int narcs,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xArc *parcs);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbbits.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresSolid8(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresDash8 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDots8 (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pBox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPoint *pts,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbArc8 (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xArc *arc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGlyph8 (FbBits *dstLine,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stipple,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int shift);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyline8 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ptsOrig);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolySegment8 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nseg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xSegment *pseg);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresSolid16(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresDash16(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDots16(FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pBox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPoint *pts,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbArc16(FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xArc *arc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGlyph16(FbBits *dstLine,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stipple,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int shift);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyline16 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ptsOrig);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolySegment16 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nseg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xSegment *pseg);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresSolid24(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresDash24(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDots24(FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pBox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPoint *pts,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbArc24(FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xArc *arc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGlyph24(FbBits *dstLine,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stipple,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int shift);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyline24 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ptsOrig);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolySegment24 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nseg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xSegment *pseg);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresSolid32(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBresDash32(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDots32(FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pBox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPoint *pts,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbArc32(FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xArc *arc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGlyph32(FbBits *dstLine,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stipple,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int shift);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyline32 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ptsOrig);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolySegment32 (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nseg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xSegment *pseg);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbblt.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBlt (FbBits *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBlt24 (FbBits *srcLine,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *dstLine,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBltStip (FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride, /* in FbStip units, not FbBits units */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride, /* in FbStip units, not FbBits units */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbbltone.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBltOne (FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fbxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgxor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBltOne24 (FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride, /* FbStip units per scanline */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX, /* bit position of source */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride, /* FbBits units per scanline */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX, /* bit position of dest */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp, /* bits per destination unit */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width, /* width in bits of destination */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height, /* height in scanlines */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgand, /* rrop values */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgxor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBltPlane (FbBits *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip fgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip fgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip bgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip bgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel planeMask);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbcmap_mi.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbInstallColormap(ColormapPtr pmap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbUninstallColormap(ColormapPtr pmap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbResolveColor(unsigned short *pred,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned short *pgreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned short *pblue,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VisualPtr pVisual);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbInitializeColormap(ColormapPtr pmap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbExpandDirectColors (ColormapPtr pmap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ndef,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xColorItem *indefs,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xColorItem *outdefs);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCreateDefColormap(ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbClearVisualTypes(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbHasVisualTypes (int depth);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSetVisualTypes (int depth, int visuals, int bitsPerRGB);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel redMask, Pixel greenMask, Pixel blueMask);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbInitVisuals (VisualPtr *visualp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DepthPtr *depthp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *nvisualp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *ndepthp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *rootDepthp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VisualID *defaultVisp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned long sizes,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bitsPerRGB);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbcopy.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Compatibility definition, to be removed at next ABI change. */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (*fbCopyProc) (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pDstBox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyNtoN (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Compatibility wrapper, to be removed at next ABI change. */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyRegion (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pDstRegion,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbCopyProc copyProc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitPlane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* Compatibility wrapper, to be removed at next ABI change. */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RegionPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDoCopy (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xIn,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yIn,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int widthSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int heightSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xOut,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yOut,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync fbCopyProc copyProc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopy1toN (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyNto1 (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RegionPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyArea (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xIn,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yIn,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int widthSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int heightSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xOut,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yOut);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RegionPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyPlane (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xIn,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yIn,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int widthSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int heightSrc,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xOut,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yOut,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned long bitplane);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbfill.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbFill (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSolidBoxClipped (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pClip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xa,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ya,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xb,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yb,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbfillrect.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyFillRect(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nrectInit,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xRectangle *prectInit);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbPolyFillArc miPolyFillArc
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbFillPolygon miFillPolygon
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbfillsp.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbFillSpans (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nInit,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr pptInit,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *pwidthInit,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int fSorted);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbgc.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCreateGC(GCPtr pGC);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPadPixmap (PixmapPtr pPixmap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbgetsp.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGetSpans(DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int wMax,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *pwidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nspans,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *pchardstStart);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbglyph.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGlyphIn (RegionPtr pRegion,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyGlyphBlt (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int nglyph,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CharInfoPtr *ppci,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pglyphBase);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbImageGlyphBlt (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int nglyph,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CharInfoPtr *ppci,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pglyphBase);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbimage.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPutImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int depth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int w,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int h,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int leftPad,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int format,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *pImage);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPutZImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pClip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPutXYImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pClip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool opaque,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbGetImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int w,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int h,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int format,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned long planeMask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *d);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbline.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbZeroLine (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbZeroSegment (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nseg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xSegment *pSegs);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyLine (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbFixCoordModePrevious (int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolySegment (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nseg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xSegment *pseg);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define fbPolyRectangle miPolyRectangle
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbpict.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPictureInit (ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PictFormatPtr formats,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nformats);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbpixmap.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PixmapPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned usage_hint);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PixmapPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned usage_hint);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDestroyPixmap (PixmapPtr pPixmap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT RegionPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPixmapToRegion(PixmapPtr pPix);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbpoint.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDots (FbBits *dstOrig,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pBox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPoint *pts,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yorg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits andOrig,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xorOrig);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPolyPoint (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int mode,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int npt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xPoint *pptInit);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbpush.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPushPattern (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPushFill (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPushImage (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride srcStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int srcX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPushPixels (GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync PixmapPtr pBitmap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xOrg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yOrg);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbscreen.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCloseScreen (int indx, ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbQueryBestSize (int class,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned short *width, unsigned short *height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT PixmapPtr
f0ab104f070bc7f569404826fea1828ed985638cvboxsync_fbGetWindowPixmap (WindowPtr pWindow);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsync_fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSetupScreen(ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pbits, /* pointer to screen bitmap */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xsize, /* in pixels */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ysize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpix, /* dots per inch */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpiy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width, /* pixel width of frame buffer */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp); /* bits per pixel of frame buffer */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncwfbFinishScreenInit(ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pbits,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xsize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ysize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpix,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpiy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync SetupWrapProcPtr setupWrap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FinishWrapProcPtr finishWrap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncwfbScreenInit(ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pbits,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xsize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ysize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpix,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpiy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync SetupWrapProcPtr setupWrap,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FinishWrapProcPtr finishWrap);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbFinishScreenInit(ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pbits,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xsize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ysize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpix,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpiy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbScreenInit(ScreenPtr pScreen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer pbits,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xsize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ysize,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpix,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dpiy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbseg.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void FbBres (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT FbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbsetsp.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSetSpans (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync char *src,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointPtr ppt,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *pwidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nspans,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int fSorted);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT FbBres *
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSelectBres (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbBres (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dashOffset,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int signdy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int axis,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int x,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int y,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e1,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int e3,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int len);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSegment (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xa,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int ya,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xb,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yb,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool drawLast,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *dashOffset);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbsolid.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSolid (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbSolid24 (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbstipple.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbTransparentSpan (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits stip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int n);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbEvenStipple (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride stipStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int stipHeight,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xRot,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yRot);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbOddStipple (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride stipStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int stipWidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int stipHeight,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xRot,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yRot);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbStipple (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstBpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStip *stip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride stipStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int stipWidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int stipHeight,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool even,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits fgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgand,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits bgxor,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xRot,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yRot);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbtile.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbEvenTile (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *tile,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride tileStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int tileHeight,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xRot,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yRot);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbOddTile (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *tile,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride tileStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int tileWidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int tileHeight,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xRot,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yRot);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbTile (FbBits *dst,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride dstStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dstX,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int width,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int height,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits *tile,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbStride tileStride,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int tileWidth,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int tileHeight,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alu,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits pm,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int bpp,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int xRot,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int yRot);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbutil.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT FbBits
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbReplicatePixel (Pixel p, int bpp);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef FB_ACCESS_WRAPPER
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT ReadMemoryProcPtr wfbReadMemory;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * fbwindow.c
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCreateWindow(WindowPtr pWin);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbDestroyWindow(WindowPtr pWin);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbMapWindow(WindowPtr pWindow);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbPositionWindow(WindowPtr pWin, int x, int y);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbUnmapWindow(WindowPtr pWindow);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyWindowProc (DrawablePtr pSrcDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr pDstDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr pGC,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BoxPtr pbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int nbox,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dx,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int dy,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool reverse,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool upsidedown,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Pixel bitplane,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync void *closure);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbCopyWindow(WindowPtr pWin,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DDXPointRec ptOldOrg,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr prgnSrc);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncfbFillRegionSolid (DrawablePtr pDrawable,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr pRegion,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits and,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FbBits xor);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT pixman_image_t *
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncimage_from_pict (PicturePtr pict,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool has_clip,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *xoff,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int *yoff);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif /* _FB_H_ */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync