deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Copyright © 1998 Keith Packard
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * documentation for any purpose is hereby granted without fee, provided that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * the above copyright notice appear in all copies and that both that
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * copyright notice and this permission notice appear in supporting
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * documentation, and that the name of Keith Packard not be used in
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * advertising or publicity pertaining to distribution of the software without
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * specific, written prior permission. Keith Packard makes no
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * representations about the suitability of this software for any purpose. It
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * is provided "as is" without express or implied warranty.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * PERFORMANCE OF THIS SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef _FB_H_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _FB_H_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include <X11/X.h>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "scrnintstr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "pixmap.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "pixmapstr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "region.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "gcstruct.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "colormap.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "miscstruct.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "servermd.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "windowstr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "mi.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "migc.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "mibstore.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef RENDER
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "picturestr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "picture.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * This single define controls the basic size of data manipulated
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FB_SHIFT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_SHIFT LOG2_BITMAP_PAD
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT < LOG2_BITMAP_PAD
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync error FB_SHIFT must be >= LOG2_BITMAP_PAD
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_UNIT (1 << FB_SHIFT)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_HALFUNIT (1 << (FB_SHIFT-1))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_MASK (FB_UNIT - 1)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_ALLONES ((FbBits) -1)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if GLYPHPADBYTES != 4
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#error "GLYPHPADBYTES must be 4"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if GETLEFTBITS_ALIGNMENT != 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#error "GETLEFTBITS_ALIGNMENT must be 1"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* whether to bother to include 24bpp support */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FBNO24BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_24BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Unless otherwise instructed, fb includes code to advertise 24bpp
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * windows with 32bpp image format for application compatibility
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_24BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FBNO24_32
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_24_32BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_STIP_SHIFT LOG2_BITMAP_PAD
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_STIP_UNIT (1 << FB_STIP_SHIFT)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_STIP_MASK (FB_STIP_UNIT - 1)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_STIP_ALLONES ((FbStip) -1)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT == 6
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# ifdef WIN32
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef unsigned __int64 FbBits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# if defined(__alpha__) || defined(__alpha) || \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync defined(ia64) || defined(__ia64__) || \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync defined(__sparc64__) || defined(_LP64) || \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync defined(__s390x__) || \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync defined(amd64) || defined (__amd64__) || \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync defined (__powerpc64__) || \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (defined(sgi) && (_MIPS_SZLONG == 64))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef unsigned long FbBits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef unsigned long long FbBits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT == 5
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef CARD32 FbBits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT == 4
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef CARD16 FbBits;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if LOG2_BITMAP_PAD == FB_SHIFT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef FbBits FbStip;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# if LOG2_BITMAP_PAD == 5
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef CARD32 FbStip;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int FbStride;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_DEBUG
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void fbValidateDrawable(DrawablePtr d);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void fbInitializeDrawable(DrawablePtr d);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void fbSetBits (FbStip *bits, int stride, FbStip data);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_HEAD_BITS (FbStip) (0xbaadf00d)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_TAIL_BITS (FbStip) (0xbaddf0ad)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbValidateDrawable(d)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fdInitializeDrawable(d)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "fbrop.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if BITMAP_BIT_ORDER == LSBFirst
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbScrLeft(x,n) ((x) >> (n))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbScrRight(x,n) ((x) << (n))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPatternOffsetBits 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbScrLeft(x,n) ((x) << (n))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbScrRight(x,n) ((x) >> (n))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStipMoveLsb(x,s,n) (x)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPatternOffsetBits (sizeof (FbBits) - 1)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "micoord.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStipLeft(x,n) FbScrLeft(x,n)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStipRight(x,n) FbScrRight(x,n)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLeftMask(x) ( ((x) & FB_MASK) ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbScrRight(FB_ALLONES,(x) & FB_MASK) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbMaskBits(x,w,l,n,r) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n = (w); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync r = FbRightMask((x)+n); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync l = FbLeftMask(x); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (l) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (n < 0) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync l &= r; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync r = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n >>= FB_SHIFT; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FBNOPIXADDR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) FbMaskBits(x,w,l,n,r)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *dst = FbDoMaskRRop(*dst,and,xor,l); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *dst = FbDoMaskRRop(*dst,and,xor,r); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbByteMaskInvalid 0x10
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbStorePart(dst,off,t,xor) (*FbPtrOffset(dst,off,t) = \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbSelectPart(xor,off,t))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FbSelectPart
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n = (w); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync lb = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync rb = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync r = FbRightMask((x)+n); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (r) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* compute right byte length */ \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if ((copy) && (((x) + n) & 7) == 0) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync rb = (((x) + n) & FB_MASK) >> 3; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } else { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync rb = FbByteMaskInvalid; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync l = FbLeftMask(x); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (l) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* compute left byte length */ \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if ((copy) && ((x) & 7) == 0) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync lb = ((x) & FB_MASK) >> 3; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } else { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync lb = FbByteMaskInvalid; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* subtract out the portion painted by leftMask */ \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n -= FB_UNIT - ((x) & FB_MASK); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (n < 0) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (lb != FbByteMaskInvalid) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (rb == FbByteMaskInvalid) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync lb = FbByteMaskInvalid; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } else if (rb) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync lb |= (rb - lb) << (FB_SHIFT - 3); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync rb = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync l &= r; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync r = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync }\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n >>= FB_SHIFT; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT == 6
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7) | (1 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7) | (2 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7) | (3 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7) | (4 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7) | (5 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7) | (6 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 7): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 6) | (1 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 6) | (2 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 6) | (3 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 6) | (4 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 6) | (5 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 6): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 5) | (1 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 5) | (2 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 5) | (3 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 5) | (4 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 5): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 4) | (1 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 4) | (2 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 4) | (3 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 4): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 4: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 5: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,4,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 6: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 7: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD32,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,4,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,6,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync switch (lb) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbDoLeftMaskByteRRop6Cases(dst,xor) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case sizeof (FbBits) - 3: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case sizeof (FbBits) - 2: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case sizeof (FbBits) - 1: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,sizeof (FbBits) - 1,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync default: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *dst = FbDoMaskRRop(*dst, and, xor, l); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync switch (rb) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 1: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 2: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync case 3: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,0,CARD16,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStorePart(dst,2,CARD8,xor); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync break; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbDoRightMaskByteRRop6Cases(dst,xor) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync default: \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *dst = FbDoMaskRRop (*dst, and, xor, r); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbMaskStip(x,w,l,n,r) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n = (w); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync r = FbRightStipMask((x)+n); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync l = FbLeftStipMask(x); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (l) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n -= FB_STIP_UNIT - ((x) & FB_STIP_MASK); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (n < 0) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync l &= r; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync r = 0; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync n >>= FB_STIP_SHIFT; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * These macros are used to transparently stipple
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * in copy mode; the expected usage is with 'n' constant
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * so all of the conditional parts collapse into a minimal
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * sequence of partial word writes
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * of the FbBits base unit, 'o' is the offset within that unit
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * The term "lane" comes from the hardware term "byte-lane" which
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLaneCase1(n,a,o) ((n) == 0x01 ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (*(CARD8 *) ((a)+FbPatternOffset(o,CARD8)) = \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync fgxor) : 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLaneCase2(n,a,o) ((n) == 0x03 ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (*(CARD16 *) ((a)+FbPatternOffset(o,CARD16)) = \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync fgxor) : \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((void)FbLaneCase1((n)&1,a,o), \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbLaneCase1((n)>>1,a,(o)+1)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLaneCase4(n,a,o) ((n) == 0x0f ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (*(CARD32 *) ((a)+FbPatternOffset(o,CARD32)) = \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync fgxor) : \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((void)FbLaneCase2((n)&3,a,o), \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbLaneCase2((n)>>2,a,(o)+2)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLaneCase8(n,a,o) ((n) == 0x0ff ? (*(FbBits *) ((a)+(o)) = fgxor) : \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((void)FbLaneCase4((n)&15,a,o), \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbLaneCase4((n)>>4,a,(o)+4)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT == 6
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLaneCase(n,a) FbLaneCase8(n,(CARD8 *) (a),0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_SHIFT == 5
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* Rotate a filled pixel value to the specified alignement */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbNext24Pix(p) (FbRot24(p,(24-FB_UNIT%24)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPrev24Pix(p) (FbRot24(p,FB_UNIT%24))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* step a rotation value to the next/previous rotation value */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_UNIT == 64
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbNext24Rot(r) ((r) == 16 ? 0 : (r) + 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPrev24Rot(r) ((r) == 0 ? 16 : (r) - 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbFirst24Rot(x) (((x) + 8) % 24)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbFirst24Rot(x) ((x) % 24)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if FB_UNIT == 32
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#if IMAGE_BYTE_ORDER == MSBFirst
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbFirst24Rot(x) (((x) + 16) % 24)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbFirst24Rot(x) ((x) % 24)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbCheck24Pix(p) ((p) == FbNext24Pix(p))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* Macros for dealing with dashing */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDashDeclare \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char *__dash, *__firstDash, *__lastDash
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (even) = TRUE; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync __firstDash = (pGC)->dash; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync __lastDash = __firstDash + (pGC)->numInDashList; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (dashOffset) %= (pPriv)->dashLength; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync __dash = __firstDash; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync while ((dashOffset) >= ((dashlen) = *__dash)) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (dashOffset) -= (dashlen); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (even) = 1-(even); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (++__dash == __lastDash) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync __dash = __firstDash; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (dashlen) -= (dashOffset); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDashNext(dashlen) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (++__dash == __lastDash) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync __dash = __firstDash; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (dashlen) = *__dash; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* as numInDashList is always even, this case can skip a test */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDashNextEven(dashlen) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (dashlen) = *++__dash; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDashNextOdd(dashlen) FbDashNext(dashlen)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbDashStep(dashlen,even) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if (!--(dashlen)) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbDashNext(dashlen); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (even) = 1-(even); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* XXX fb*PrivateIndex should be static, but it breaks the ABI */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int fbGCPrivateIndex;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int fbGetGCPrivateIndex(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FB_NO_WINDOW_PIXMAPS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int fbWinPrivateIndex;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int fbGetWinPrivateIndex(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern const GCOps fbGCOps;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern const GCFuncs fbGCFuncs;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef TEKX11
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_OLD_GC
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_OLD_SCREEN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_OLD_SCREEN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync# define FB_OLD_MISCREENINIT /* miScreenInit requires 14 args, not 13 */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern WindowPtr *WindowTable;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_24_32BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FB_SCREEN_PRIVATE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_SCREEN_PRIVATE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int fbScreenPrivateIndex;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int fbGetScreenPrivateIndex(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* private field of a screen */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} FbScreenPrivRec, *FbScreenPrivPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (pScreen)->devPrivates[fbGetScreenPrivateIndex()].ptr)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* private field of GC */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_OLD_GC
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char pad1;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char pad2;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char pad3;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned fExpose:1;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned freeCompClip:1;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr pRotatedPixmap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pCompositeClip;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and, xor; /* reduced rop values */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgand, bgxor; /* for stipples */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fg, bg, pm; /* expanded and filled */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int dashLength; /* total of all dash elements */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char oneRect; /* clip list is single rectangle */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char evenStipple; /* stipple is even */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned char bpp; /* current drawable bpp */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} FbGCPrivRec, *FbGCPrivPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (pGC)->devPrivates[fbGetGCPrivateIndex()].ptr)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_OLD_GC
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetCompositeClip(pGC) (fbGetGCPrivate(pGC)->pCompositeClip)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetExpose(pGC) (fbGetGCPrivate(pGC)->fExpose)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetFreeCompClip(pGC) (fbGetGCPrivate(pGC)->freeCompClip)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetRotatedPixmap(pGC) (fbGetGCPrivate(pGC)->pRotatedPixmap)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetExpose(pGC) ((pGC)->fExpose)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_NO_WINDOW_PIXMAPS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetWindowPixmap(d) fbGetScreenPixmap(((DrawablePtr) (d))->pScreen)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetWindowPixmap(pWin) ((PixmapPtr)\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((WindowPtr) (pWin))->devPrivates[fbGetWinPrivateIndex()].ptr)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef ROOTLESS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixDrawableX(pPix) ((pPix)->drawable.x)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixDrawableY(pPix) ((pPix)->drawable.y)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixDrawableX(pPix) 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixDrawableY(pPix) 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef COMPOSITE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#else
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr _pPix; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync _pPix = fbGetWindowPixmap(pDrawable); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (xoff) = __fbPixOffXWin(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (yoff) = __fbPixOffYWin(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } else { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync _pPix = (PixmapPtr) (pDrawable); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (xoff) = __fbPixOffXPix(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (yoff) = __fbPixOffYPix(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (pointer) = (FbBits *) _pPix->devPrivate.ptr; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (stride) = ((int) _pPix->devKind) / sizeof (FbBits); (void)(stride); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr _pPix; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync _pPix = fbGetWindowPixmap(pDrawable); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (xoff) = __fbPixOffXWin(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (yoff) = __fbPixOffYWin(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } else { \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync _pPix = (PixmapPtr) (pDrawable); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (xoff) = __fbPixOffXPix(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (yoff) = __fbPixOffYPix(_pPix); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync } \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (pointer) = (FbStip *) _pPix->devPrivate.ptr; \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (stride) = ((int) _pPix->devKind) / sizeof (FbStip); (void)(stride); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync}
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * XFree86 empties the root BorderClip when the VT is inactive,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * here's a macro which uses that to disable GetImage and GetSpans
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbWindowEnabled(pWin) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync REGION_NOTEMPTY((pWin)->drawable.pScreen, \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync &WindowTable[(pWin)->drawable.pScreen->myNum]->borderClip)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbDrawableEnabled(pDrawable) \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((pDrawable)->type == DRAWABLE_PIXMAP ? \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync TRUE : fbWindowEnabled((WindowPtr) pDrawable))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_OLD_SCREEN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define BitsPerPixel(d) (\
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ((1 << PixmapWidthPaddingInfo[d].padBytesLog2) * 8 / \
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync (PixmapWidthPaddingInfo[d].padRoundUp+1)))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbPowerOfTwo(w) (((w) & ((w) - 1)) == 0)
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Accelerated stipples are power of 2 width and <= FB_UNIT/dstBpp
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * with dstBpp a power of 2 as well
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define FbEvenStip(w,bpp) ((w) * (bpp) <= FB_UNIT && FbPowerOfTwo(w) && FbPowerOfTwo(bpp))
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fb24_32.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32GetSpans(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int wMax,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *pwidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nspans,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *pchardstStart);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32SetSpans (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *pwidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nspans,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int fSorted);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32PutZImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pClip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD8 *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32GetImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int w,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int h,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int format,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long planeMask,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *d);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32CopyMtoN (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPixmapPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32CreateScreenResources(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfb24_32ModifyPixmapHeader (PixmapPtr pPixmap,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int depth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bitsPerPixel,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int devKind,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pPixData);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fballpriv.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbAllocatePrivates(ScreenPtr pScreen, int *pGCIndex);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbarc.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyArc (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int narcs,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xArc *parcs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbbits.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresSolid8(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresDash8 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDots8 (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pBox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xPoint *pts,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbArc8 (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xArc *arc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGlyph8 (FbBits *dstLine,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stipple,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int shift);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyline8 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ptsOrig);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolySegment8 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nseg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xSegment *pseg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresSolid16(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresDash16(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDots16(FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pBox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xPoint *pts,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbArc16(FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xArc *arc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGlyph16(FbBits *dstLine,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stipple,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int shift);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyline16 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ptsOrig);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolySegment16 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nseg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xSegment *pseg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresSolid24(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresDash24(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDots24(FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pBox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xPoint *pts,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbArc24(FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xArc *arc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGlyph24(FbBits *dstLine,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stipple,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int shift);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyline24 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ptsOrig);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolySegment24 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nseg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xSegment *pseg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresSolid32(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBresDash32(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDots32(FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pBox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xPoint *pts,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbArc32(FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xArc *arc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGlyph32(FbBits *dstLine,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stipple,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int shift);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyline32 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ptsOrig);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolySegment32 (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nseg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xSegment *pseg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbblt.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBlt (FbBits *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBlt24 (FbBits *srcLine,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *dstLine,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBltStip (FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride, /* in FbStip units, not FbBits units */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride, /* in FbStip units, not FbBits units */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbbltone.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBltOne (FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fbxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgxor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_24BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBltOne24 (FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride, /* FbStip units per scanline */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX, /* bit position of source */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride, /* FbBits units per scanline */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX, /* bit position of dest */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp, /* bits per destination unit */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width, /* width in bits of destination */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height, /* height in scanlines */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgand, /* rrop values */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgxor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBltPlane (FbBits *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip fgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip fgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip bgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip bgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel planeMask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbbstore.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSaveAreas(PixmapPtr pPixmap,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgnSave,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr pWin);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbRestoreAreas(PixmapPtr pPixmap,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgnRestore,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr pWin);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbcmap.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncint
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbInstallColormap(ColormapPtr pmap);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbUninstallColormap(ColormapPtr pmap);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbResolveColor(unsigned short *pred,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short *pgreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short *pblue,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualPtr pVisual);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbInitializeColormap(ColormapPtr pmap);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncint
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbExpandDirectColors (ColormapPtr pmap,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ndef,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xColorItem *indefs,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xColorItem *outdefs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCreateDefColormap(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbClearVisualTypes(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSetVisualTypes (int depth, int visuals, int bitsPerRGB);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel redMask, Pixel greenMask, Pixel blueMask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbInitVisuals (VisualPtr *visualp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DepthPtr *depthp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *nvisualp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *ndepthp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *rootDepthp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualID *defaultVisp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long sizes,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bitsPerRGB);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbcopy.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*fbCopyProc) (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pDstBox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyNtoN (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopy1toN (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyNto1 (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyRegion (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pDstRegion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync fbCopyProc copyProc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitPlane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncRegionPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDoCopy (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xIn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yIn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int widthSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int heightSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xOut,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yOut,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync fbCopyProc copyProc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncRegionPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyArea (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xIn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yIn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int widthSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int heightSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xOut,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yOut);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncRegionPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyPlane (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xIn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yIn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int widthSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int heightSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xOut,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yOut,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long bitplane);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbfill.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbFill (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSolidBoxClipped (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pClip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xa,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ya,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xb,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yb,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbfillrect.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyFillRect(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nrectInit,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xRectangle *prectInit);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbPolyFillArc miPolyFillArc
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbFillPolygon miFillPolygon
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbfillsp.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbFillSpans (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nInit,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr pptInit,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *pwidthInit,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int fSorted);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbgc.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCreateGC(GCPtr pGC);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPadPixmap (PixmapPtr pPixmap);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbgetsp.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGetSpans(DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int wMax,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *pwidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nspans,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *pchardstStart);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbglyph.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGlyphIn (RegionPtr pRegion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyGlyphBlt (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int nglyph,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CharInfoPtr *ppci,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pglyphBase);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbImageGlyphBlt (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int nglyph,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CharInfoPtr *ppci,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pglyphBase);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbimage.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPutImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int depth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int w,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int h,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int leftPad,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int format,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *pImage);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPutZImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pClip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPutXYImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pClip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool opaque,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbGetImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int w,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int h,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int format,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long planeMask,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *d);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbline.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbZeroLine (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbZeroSegment (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nseg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xSegment *pSegs);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyLine (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbFixCoordModePrevious (int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolySegment (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nseg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xSegment *pseg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define fbPolyRectangle miPolyRectangle
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbpict.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPictureInit (ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PictFormatPtr formats,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nformats);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbpixmap.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPixmapPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPixmapPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDestroyPixmap (PixmapPtr pPixmap);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncRegionPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPixmapToRegion(PixmapPtr pPix);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbpoint.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDots (FbBits *dstOrig,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pBox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xPoint *pts,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yorg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yoff,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits andOrig,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xorOrig);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPolyPoint (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int mode,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int npt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync xPoint *pptInit);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbpush.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPushPattern (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPushFill (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPush1toN (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPushImage (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride srcStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int srcX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPushPixels (GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr pBitmap,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xOrg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yOrg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbscreen.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCloseScreen (int indx, ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbQueryBestSize (int class,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned short *width, unsigned short *height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef FB_OLD_SCREEN
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPixmapPtr
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync_fbGetWindowPixmap (WindowPtr pWindow);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync_fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSetupScreen(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pbits, /* pointer to screen bitmap */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xsize, /* in pixels */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ysize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dpix, /* dots per inch */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dpiy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width, /* pixel width of frame buffer */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp); /* bits per pixel of frame buffer */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbFinishScreenInit(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pbits,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xsize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ysize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dpix,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dpiy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbScreenInit(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pbits,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xsize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ysize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dpix,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dpiy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbInitializeBackingStore (ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbseg.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void FbBres (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbsetsp.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSetSpans (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char *src,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointPtr ppt,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *pwidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nspans,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int fSorted);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFbBres *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSelectBres (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbBres (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dashOffset,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int signdy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int axis,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int x,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e1,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int e3,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int len);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSegment (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xa,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ya,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xb,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yb,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool drawLast,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *dashOffset);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbsolid.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSolid (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifdef FB_24BIT
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbSolid24 (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbstipple.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbTransparentSpan (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits stip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int n);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbEvenStipple (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride stipStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int stipHeight,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xRot,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yRot);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbOddStipple (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride stipStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int stipWidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int stipHeight,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xRot,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yRot);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbStipple (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstBpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStip *stip,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride stipStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int stipWidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int stipHeight,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool even,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits fgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgand,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits bgxor,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xRot,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yRot);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbtile.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbEvenTile (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *tile,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int tileHeight,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xRot,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yRot);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbOddTile (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *tile,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride tileStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int tileWidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int tileHeight,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xRot,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yRot);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbTile (FbBits *dst,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride dstStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dstX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int width,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int height,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits *tile,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbStride tileStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int tileWidth,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int tileHeight,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int alu,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits pm,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int bpp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int xRot,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int yRot);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbutil.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncFbBits
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbReplicatePixel (Pixel p, int bpp);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * fbwindow.c
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCreateWindow(WindowPtr pWin);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbDestroyWindow(WindowPtr pWin);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbMapWindow(WindowPtr pWindow);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPositionWindow(WindowPtr pWin, int x, int y);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbUnmapWindow(WindowPtr pWindow);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyWindowProc (DrawablePtr pSrcDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDstDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync GCPtr pGC,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync BoxPtr pbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int nbox,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool reverse,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool upsidedown,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Pixel bitplane,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *closure);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbCopyWindow(WindowPtr pWin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointRec ptOldOrg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgnSrc);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncBool
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbFillRegionSolid (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pRegion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits and,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync FbBits xor);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbFillRegionTiled (DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr pRegion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PixmapPtr pTile);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncvoid
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncfbPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif /* _FB_H_ */