a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Copyright © 1998 Keith Packard
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * documentation for any purpose is hereby granted without fee, provided that
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * the above copyright notice appear in all copies and that both that
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * copyright notice and this permission notice appear in supporting
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * documentation, and that the name of Keith Packard not be used in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * advertising or publicity pertaining to distribution of the software without
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * specific, written prior permission. Keith Packard makes no
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * representations about the suitability of this software for any purpose. It
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * is provided "as is" without express or implied warranty.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * PERFORMANCE OF THIS SOFTWARE.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef _FB_H_
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define _FB_H_
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <X11/X.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <pixman.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "scrnintstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "pixmap.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "pixmapstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "region.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "gcstruct.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "colormap.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "miscstruct.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "servermd.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "windowstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "privates.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "mi.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "migc.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "picturestr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef FB_ACCESS_WRAPPER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "wfbrename.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FBPREFIX(x) wfb##x
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define WRITE(ptr, val) ((*wfbWriteMemory)((ptr), (val), sizeof(*(ptr))))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define READ(ptr) ((*wfbReadMemory)((ptr), sizeof(*(ptr))))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define MEMCPY_WRAPPED(dst, src, size) do { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync size_t _i; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CARD8 *_dst = (CARD8*)(dst), *_src = (CARD8*)(src); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync for(_i = 0; _i < size; _i++) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE(_dst +_i, READ(_src + _i)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} while(0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define MEMSET_WRAPPED(dst, val, size) do { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync size_t _i; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CARD8 *_dst = (CARD8*)(dst); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync for(_i = 0; _i < size; _i++) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE(_dst +_i, (val)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} while(0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FBPREFIX(x) fb##x
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define WRITE(ptr, val) (*(ptr) = (val))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define READ(ptr) (*(ptr))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define MEMCPY_WRAPPED(dst, src, size) memcpy((dst), (src), (size))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define MEMSET_WRAPPED(dst, val, size) memset((dst), (val), (size))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * This single define controls the basic size of data manipulated
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef FB_SHIFT
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_SHIFT LOG2_BITMAP_PAD
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_UNIT (1 << FB_SHIFT)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_MASK (FB_UNIT - 1)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_ALLONES ((FbBits) -1)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#if GLYPHPADBYTES != 4
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#error "GLYPHPADBYTES must be 4"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* for driver compat - intel UXA needs the second one at least */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_24BIT
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_24_32BIT
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_SHIFT LOG2_BITMAP_PAD
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_UNIT (1 << FB_STIP_SHIFT)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_MASK (FB_STIP_UNIT - 1)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_ALLONES ((FbStip) -1)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#if FB_SHIFT == 5
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef CARD32 FbBits;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#error "Unsupported FB_SHIFT"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#if LOG2_BITMAP_PAD == FB_SHIFT
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef FbBits FbStip;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef int FbStride;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef FB_DEBUG
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_HEAD_BITS (FbStip) (0xbaadf00d)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FB_TAIL_BITS (FbStip) (0xbaddf0ad)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbValidateDrawable(d)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fdInitializeDrawable(d)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "fbrop.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#if BITMAP_BIT_ORDER == LSBFirst
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbScrLeft(x,n) ((x) >> (n))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbScrRight(x,n) ((x) << (n))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPatternOffsetBits 0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbScrLeft(x,n) ((x) << (n))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbScrRight(x,n) ((x) >> (n))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipMoveLsb(x,s,n) (x)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPatternOffsetBits (sizeof (FbBits) - 1)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "micoord.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipLeft(x,n) FbScrLeft(x,n)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipRight(x,n) FbScrRight(x,n)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftMask(x) ( ((x) & FB_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrRight(FB_ALLONES,(x) & FB_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbMaskBits(x,w,l,n,r) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n = (w); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = FbRightMask((x)+n); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync l = FbLeftMask(x); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (l) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (n < 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync l &= r; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n >>= FB_SHIFT; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbByteMaskInvalid 0x10
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbStorePart(dst,off,t,xor) (WRITE(FbPtrOffset(dst,off,t), \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbSelectPart(xor,off,t)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef FbSelectPart
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n = (w); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync lb = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync rb = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = FbRightMask((x)+n); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (r) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* compute right byte length */ \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((copy) && (((x) + n) & 7) == 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync rb = (((x) + n) & FB_MASK) >> 3; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync rb = FbByteMaskInvalid; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync l = FbLeftMask(x); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (l) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* compute left byte length */ \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((copy) && ((x) & 7) == 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync lb = ((x) & FB_MASK) >> 3; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync lb = FbByteMaskInvalid; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* subtract out the portion painted by leftMask */ \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (n < 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (lb != FbByteMaskInvalid) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (rb == FbByteMaskInvalid) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync lb = FbByteMaskInvalid; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else if (rb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync lb |= (rb - lb) << (FB_SHIFT - 3); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync rb = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync l &= r; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync }\
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n >>= FB_SHIFT; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync switch (lb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case sizeof (FbBits) - 3: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case sizeof (FbBits) - 2: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD16,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case sizeof (FbBits) - 1: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,sizeof (FbBits) - 1,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync default: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, l)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync switch (rb) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case 1: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,0,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case 2: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,0,CARD16,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync case 3: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,0,CARD16,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStorePart(dst,2,CARD8,xor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync break; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync default: \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbMaskStip(x,w,l,n,r) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n = (w); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = FbRightStipMask((x)+n); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync l = FbLeftStipMask(x); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (l) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n -= FB_STIP_UNIT - ((x) & FB_STIP_MASK); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (n < 0) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync l &= r; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync r = 0; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync n >>= FB_STIP_SHIFT; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * These macros are used to transparently stipple
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * in copy mode; the expected usage is with 'n' constant
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * so all of the conditional parts collapse into a minimal
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * sequence of partial word writes
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * of the FbBits base unit, 'o' is the offset within that unit
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * The term "lane" comes from the hardware term "byte-lane" which
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLaneCase1(n,a,o) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((n) == 0x01) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync }
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLaneCase2(n,a,o) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((n) == 0x03) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbLaneCase1((n)&1,a,o) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbLaneCase1((n)>>1,a,(o)+1) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync }
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLaneCase4(n,a,o) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((n) == 0x0f) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbLaneCase2((n)&3,a,o) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbLaneCase2((n)>>2,a,(o)+2) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync }
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Rotate a filled pixel value to the specified alignement */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbNext24Pix(p) (FbRot24(p,(24-FB_UNIT%24)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPrev24Pix(p) (FbRot24(p,FB_UNIT%24))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* step a rotation value to the next/previous rotation value */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbFirst24Rot(x) (((x) + 16) % 24)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbFirst24Rot(x) ((x) % 24)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbCheck24Pix(p) ((p) == FbNext24Pix(p))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Macros for dealing with dashing */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashDeclare \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char *__dash, *__firstDash, *__lastDash
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (even) = TRUE; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync __firstDash = (pGC)->dash; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync __lastDash = __firstDash + (pGC)->numInDashList; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (dashOffset) %= (pPriv)->dashLength; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync __dash = __firstDash; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync while ((dashOffset) >= ((dashlen) = *__dash)) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (dashOffset) -= (dashlen); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (even) = 1-(even); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (++__dash == __lastDash) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync __dash = __firstDash; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (dashlen) -= (dashOffset); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashNext(dashlen) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (++__dash == __lastDash) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync __dash = __firstDash; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (dashlen) = *__dash; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* as numInDashList is always even, this case can skip a test */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashNextEven(dashlen) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (dashlen) = *++__dash; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashNextOdd(dashlen) FbDashNext(dashlen)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbDashStep(dashlen,even) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if (!--(dashlen)) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbDashNext(dashlen); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (even) = 1-(even); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT const GCOps fbGCOps;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT const GCFuncs fbGCFuncs;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Framebuffer access wrapper */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef FbBits(*ReadMemoryProcPtr) (const void *src, int size);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*WriteMemoryProcPtr) (void *dst, FbBits value, int size);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*SetupWrapProcPtr) (ReadMemoryProcPtr * pRead,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WriteMemoryProcPtr * pWrite,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDraw);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*FinishWrapProcPtr) (DrawablePtr pDraw);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef FB_ACCESS_WRAPPER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbPrepareAccess(pDraw) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetScreenPrivate((pDraw)->pScreen)->setupWrap( \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync &wfbReadMemory, \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync &wfbWriteMemory, \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (pDraw))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbFinishAccess(pDraw) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetScreenPrivate((pDraw)->pScreen)->finishWrap(pDraw)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbPrepareAccess(pPix)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbFinishAccess(pDraw)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT DevPrivateKey
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbGetScreenPrivateKey(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* private field of a screen */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef FB_ACCESS_WRAPPER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DevPrivateKeyRec gcPrivateKeyRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DevPrivateKeyRec winPrivateKeyRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} FbScreenPrivRec, *FbScreenPrivPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(pScreen)->devPrivates, fbGetScreenPrivateKey()))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* private field of GC */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits and, xor; /* reduced rop values */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits bgand, bgxor; /* for stipples */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits fg, bg, pm; /* expanded and filled */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int dashLength; /* total of all dash elements */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char bpp; /* current drawable bpp */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} FbGCPrivRec, *FbGCPrivPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetGCPrivateKey(pGC) (&fbGetScreenPrivate((pGC)->pScreen)->gcPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey(pGC)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetExpose(pGC) ((pGC)->fExpose)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetWinPrivateKey(pWin) (&fbGetScreenPrivate(((DrawablePtr) (pWin))->pScreen)->winPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetWindowPixmap(pWin) ((PixmapPtr)\
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey(pWin)))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef ROOTLESS
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixDrawableX(pPix) ((pPix)->drawable.x)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixDrawableY(pPix) ((pPix)->drawable.y)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixDrawableX(pPix) 0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixDrawableY(pPix) 0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef COMPOSITE
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (pixmap) = fbGetWindowPixmap(pDrawable); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (xoff) = __fbPixOffXWin(pixmap); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (yoff) = __fbPixOffYWin(pixmap); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } else { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (pixmap) = (PixmapPtr) (pDrawable); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (xoff) = __fbPixOffXPix(pixmap); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (yoff) = __fbPixOffYPix(pixmap); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPrepareAccess(pDrawable); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync PixmapPtr _pPix; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync PixmapPtr _pPix; \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync}
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * XFree86 empties the root BorderClip when the VT is inactive,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * here's a macro which uses that to disable GetImage and GetSpans
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbWindowEnabled(pWin) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbDrawableEnabled(pDrawable) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ((pDrawable)->type == DRAWABLE_PIXMAP ? \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync TRUE : fbWindowEnabled((WindowPtr) pDrawable))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbPowerOfTwo(w) (((w) & ((w) - 1)) == 0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fb24_32.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfb24_32GetSpans(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int wMax,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DDXPointPtr ppt, int *pwidth, int nspans, char *pchardstStart);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfb24_32SetSpans(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *src,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfb24_32PutZImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionPtr pClip,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int alu,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits pm,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y, int width, int height, CARD8 *src, FbStride srcStride);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfb24_32GetImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int w,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int h, unsigned int format, unsigned long planeMask, char *d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfb24_32CopyMtoN(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT PixmapPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fb24_32CreateScreenResources(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfb24_32ModifyPixmapHeader(PixmapPtr pPixmap,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int depth,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int bitsPerPixel, int devKind, void *pPixData);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fballpriv.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbAllocatePrivates(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbarc.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc * parcs);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbbits.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresSolid8(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresDash8(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy, int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbDots8(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pBox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync xPoint * pts,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int npt,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbArc8(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbGlyph8(FbBits * dstLine,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyline8(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment8(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresSolid16(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresDash16(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbDots16(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pBox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync xPoint * pts,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int npt,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbArc16(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbGlyph16(FbBits * dstLine,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyline16(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment16(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresSolid24(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresDash24(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbDots24(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pBox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync xPoint * pts,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int npt,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbArc24(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyline24(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment24(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresSolid32(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBresDash32(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbDots32(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pBox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync xPoint * pts,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int npt,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xorg, int yorg, int xoff, int yoff, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbArc32(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, xArc * arc, int dx, int dy, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbGlyph32(FbBits * dstLine,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, FbStip * stipple, FbBits fg, int height, int shift);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyline32(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ptsOrig);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment32(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbblt.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBlt(FbBits * src,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride srcStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, int alu, FbBits pm, int bpp, Bool reverse, Bool upsidedown);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBlt24(FbBits * srcLine,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride srcStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits * dstLine,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, int alu, FbBits pm, Bool reverse, Bool upsidedown);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbBltStip(FbStip * src, FbStride srcStride, /* in FbStip units, not FbBits units */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX, FbStip * dst, FbStride dstStride, /* in FbStip units, not FbBits units */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, int width, int height, int alu, FbBits pm, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbbltone.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBltOne(FbStip * src,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride srcStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, FbBits fgand, FbBits fbxor, FbBits bgand, FbBits bgxor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbBltOne24(FbStip * src, FbStride srcStride, /* FbStip units per scanline */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX, /* bit position of source */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits * dst, FbStride dstStride, /* FbBits units per scanline */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, /* bit position of dest */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstBpp, /* bits per destination unit */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width, /* width in bits of destination */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height, /* height in scanlines */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits fgand, /* rrop values */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits fgxor, FbBits bgand, FbBits bgxor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbBltPlane(FbBits * src,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride srcStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int srcBpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStip * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int height,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStip fgand,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStip fgxor, FbStip bgand, FbStip bgxor, Pixel planeMask);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbcmap_mi.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT int
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbListInstalledColormaps(ScreenPtr pScreen, Colormap * pmaps);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbInstallColormap(ColormapPtr pmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbUninstallColormap(ColormapPtr pmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbResolveColor(unsigned short *pred,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short *pgreen,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short *pblue, VisualPtr pVisual);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbInitializeColormap(ColormapPtr pmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT int
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbExpandDirectColors(ColormapPtr pmap,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ndef, xColorItem * indefs, xColorItem * outdefs);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbCreateDefColormap(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbClearVisualTypes(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbHasVisualTypes(int depth);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbSetVisualTypes(int depth, int visuals, int bitsPerRGB);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSetVisualTypesAndMasks(int depth, int visuals, int bitsPerRGB,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Pixel redMask, Pixel greenMask, Pixel blueMask);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbInitVisuals(VisualPtr * visualp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DepthPtr * depthp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int *nvisualp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int *ndepthp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int *rootDepthp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync VisualID * defaultVisp, unsigned long sizes, int bitsPerRGB);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbcopy.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCopyNtoN(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCopy1toN(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCopyNto1(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT RegionPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCopyArea(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xIn, int yIn, int widthSrc, int heightSrc, int xOut, int yOut);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT RegionPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCopyPlane(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xIn,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int yIn,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int widthSrc,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int heightSrc, int xOut, int yOut, unsigned long bitplane);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbfill.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbFill(DrawablePtr pDrawable, GCPtr pGC, int x, int y, int width, int height);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSolidBoxClipped(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionPtr pClip,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xa, int ya, int xb, int yb, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbfillrect.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyFillRect(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int nrectInit, xRectangle *prectInit);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbPolyFillArc miPolyFillArc
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbFillPolygon miFillPolygon
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbfillsp.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbFillSpans(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nInit, DDXPointPtr pptInit, int *pwidthInit, int fSorted);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbgc.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbCreateGC(GCPtr pGC);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPadPixmap(PixmapPtr pPixmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbgetsp.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbGetSpans(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int wMax,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DDXPointPtr ppt, int *pwidth, int nspans, char *pchardstStart);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbglyph.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyGlyphBlt(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int nglyph, CharInfoPtr * ppci, void *pglyphBase);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbImageGlyphBlt(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int nglyph, CharInfoPtr * ppci, void *pglyphBase);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbimage.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPutImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int depth,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x, int y, int w, int h, int leftPad, int format, char *pImage);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPutZImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionPtr pClip,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int alu,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits pm,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y, int width, int height, FbStip * src, FbStride srcStride);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPutXYImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionPtr pClip,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits fg,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits bg,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbBits pm,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int alu,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool opaque,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width, int height, FbStip * src, FbStride srcStride, int srcX);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbGetImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int x,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int w, int h, unsigned int format, unsigned long planeMask, char *d);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbline.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyLine(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, DDXPointPtr ppt);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbFixCoordModePrevious(int npt, DDXPointPtr ppt);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment * pseg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define fbPolyRectangle miPolyRectangle
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbpict.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPictureInit(ScreenPtr pScreen, PictFormatPtr formats, int nformats);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbDestroyGlyphCache(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbpixmap.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT PixmapPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCreatePixmapBpp(ScreenPtr pScreen, int width, int height, int depth, int bpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned usage_hint);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT PixmapPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned usage_hint);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbDestroyPixmap(PixmapPtr pPixmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT RegionPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPixmapToRegion(PixmapPtr pPix);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbpoint.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPolyPoint(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC, int mode, int npt, xPoint * pptInit);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbpush.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPushImage(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStip * src,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride srcStride, int srcX, int x, int y, int width, int height);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbPushPixels(GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync PixmapPtr pBitmap,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDrawable, int dx, int dy, int xOrg, int yOrg);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbscreen.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbCloseScreen(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbQueryBestSize(int class,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned short *width, unsigned short *height,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT PixmapPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync _fbGetWindowPixmap(WindowPtr pWindow);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync _fbSetWindowPixmap(WindowPtr pWindow, PixmapPtr pPixmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbSetupScreen(ScreenPtr pScreen, void *pbits, /* pointer to screen bitmap */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xsize, /* in pixels */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ysize, int dpix, /* dots per inch */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dpiy, int width, /* pixel width of frame buffer */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int bpp); /* bits per pixel of frame buffer */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncwfbFinishScreenInit(ScreenPtr pScreen,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *pbits,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xsize,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ysize,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dpix,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dpiy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int bpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncwfbScreenInit(ScreenPtr pScreen,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *pbits,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xsize,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ysize,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dpix,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dpiy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int width,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int bpp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SetupWrapProcPtr setupWrap, FinishWrapProcPtr finishWrap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbFinishScreenInit(ScreenPtr pScreen,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *pbits,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xsize,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int ysize, int dpix, int dpiy, int width, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbScreenInit(ScreenPtr pScreen,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *pbits,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xsize, int ysize, int dpix, int dpiy, int width, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbseg.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void FbBres(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dashOffset,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int signdy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int axis, int x, int y, int e, int e1, int e3, int len);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSegment(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int xa, int ya, int xb, int yb, Bool drawLast, int *dashOffset);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbsetsp.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSetSpans(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync char *src, DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbsolid.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSolid(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, int bpp, int width, int height, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbSolid24(FbBits * dst,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync FbStride dstStride,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dstX, int width, int height, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbutil.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT FbBits fbReplicatePixel(Pixel p, int bpp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef FB_ACCESS_WRAPPER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT ReadMemoryProcPtr wfbReadMemory;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * fbwindow.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbCreateWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbDestroyWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbRealizeWindow(WindowPtr pWindow);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbPositionWindow(WindowPtr pWin, int x, int y);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbUnrealizeWindow(WindowPtr pWindow);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbCopyWindowProc(DrawablePtr pSrcDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DrawablePtr pDstDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GCPtr pGC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync BoxPtr pbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nbox,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dx,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int dy,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool reverse, Bool upsidedown, Pixel bitplane, void *closure);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync fbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncfbFillRegionSolid(DrawablePtr pDrawable,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionPtr pRegion, FbBits and, FbBits xor);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT pixman_image_t *image_from_pict(PicturePtr pict,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool has_clip,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int *xoff, int *yoff);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void free_pixman_pict(PicturePtr, pixman_image_t *);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif /* _FB_H_ */