4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync *
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Copyright © 1998 Keith Packard
4c221b0da1816acf2ca302b10092df059484468dvboxsync *
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
4c221b0da1816acf2ca302b10092df059484468dvboxsync * documentation for any purpose is hereby granted without fee, provided that
4c221b0da1816acf2ca302b10092df059484468dvboxsync * the above copyright notice appear in all copies and that both that
4c221b0da1816acf2ca302b10092df059484468dvboxsync * copyright notice and this permission notice appear in supporting
4c221b0da1816acf2ca302b10092df059484468dvboxsync * documentation, and that the name of Keith Packard not be used in
4c221b0da1816acf2ca302b10092df059484468dvboxsync * advertising or publicity pertaining to distribution of the software without
4c221b0da1816acf2ca302b10092df059484468dvboxsync * specific, written prior permission. Keith Packard makes no
4c221b0da1816acf2ca302b10092df059484468dvboxsync * representations about the suitability of this software for any purpose. It
4c221b0da1816acf2ca302b10092df059484468dvboxsync * is provided "as is" without express or implied warranty.
4c221b0da1816acf2ca302b10092df059484468dvboxsync *
4c221b0da1816acf2ca302b10092df059484468dvboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
4c221b0da1816acf2ca302b10092df059484468dvboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
4c221b0da1816acf2ca302b10092df059484468dvboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
4c221b0da1816acf2ca302b10092df059484468dvboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
4c221b0da1816acf2ca302b10092df059484468dvboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
4c221b0da1816acf2ca302b10092df059484468dvboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
4c221b0da1816acf2ca302b10092df059484468dvboxsync * PERFORMANCE OF THIS SOFTWARE.
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifndef _FB_H_
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define _FB_H_
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include <X11/X.h>
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include <pixman.h>
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "scrnintstr.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "pixmap.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "pixmapstr.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "region.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "gcstruct.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "colormap.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "miscstruct.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "servermd.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "windowstr.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "privates.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "mi.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "migc.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "mibstore.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "picturestr.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_ACCESS_WRAPPER
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "wfbrename.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FBPREFIX(x) wfb##x
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define WRITE(ptr, val) ((*wfbWriteMemory)((ptr), (val), sizeof(*(ptr))))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define READ(ptr) ((*wfbReadMemory)((ptr), sizeof(*(ptr))))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define MEMCPY_WRAPPED(dst, src, size) do { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync size_t _i; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync CARD8 *_dst = (CARD8*)(dst), *_src = (CARD8*)(src); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync for(_i = 0; _i < size; _i++) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE(_dst +_i, READ(_src + _i)); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync} while(0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define MEMSET_WRAPPED(dst, val, size) do { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync size_t _i; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync CARD8 *_dst = (CARD8*)(dst); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync for(_i = 0; _i < size; _i++) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE(_dst +_i, (val)); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync} while(0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FBPREFIX(x) fb##x
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define WRITE(ptr, val) (*(ptr) = (val))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define READ(ptr) (*(ptr))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define MEMCPY_WRAPPED(dst, src, size) memcpy((dst), (src), (size))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define MEMSET_WRAPPED(dst, val, size) memset((dst), (val), (size))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * This single define controls the basic size of data manipulated
4c221b0da1816acf2ca302b10092df059484468dvboxsync * by this software; it must be log2(sizeof (FbBits) * 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifndef FB_SHIFT
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_SHIFT LOG2_BITMAP_PAD
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT < LOG2_BITMAP_PAD
4c221b0da1816acf2ca302b10092df059484468dvboxsync error FB_SHIFT must be >= LOG2_BITMAP_PAD
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_UNIT (1 << FB_SHIFT)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_HALFUNIT (1 << (FB_SHIFT-1))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_MASK (FB_UNIT - 1)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_ALLONES ((FbBits) -1)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if GLYPHPADBYTES != 4
4c221b0da1816acf2ca302b10092df059484468dvboxsync#error "GLYPHPADBYTES must be 4"
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* whether to bother to include 24bpp support */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifndef FBNO24BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_24BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Unless otherwise instructed, fb includes code to advertise 24bpp
4c221b0da1816acf2ca302b10092df059484468dvboxsync * windows with 32bpp image format for application compatibility
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_24BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifndef FBNO24_32
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_24_32BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_STIP_SHIFT LOG2_BITMAP_PAD
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_STIP_UNIT (1 << FB_STIP_SHIFT)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_STIP_MASK (FB_STIP_UNIT - 1)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_STIP_ALLONES ((FbStip) -1)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_STIP_ODDSTRIDE(s) (((s) & (FB_MASK >> FB_STIP_SHIFT)) != 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_STIP_ODDPTR(p) ((((long) (p)) & (FB_MASK >> 3)) != 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT == 6
4c221b0da1816acf2ca302b10092df059484468dvboxsync# ifdef WIN32
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef unsigned __int64 FbBits;
4c221b0da1816acf2ca302b10092df059484468dvboxsync# else
4c221b0da1816acf2ca302b10092df059484468dvboxsync# if defined(__alpha__) || defined(__alpha) || \
4c221b0da1816acf2ca302b10092df059484468dvboxsync defined(ia64) || defined(__ia64__) || \
4c221b0da1816acf2ca302b10092df059484468dvboxsync defined(__sparc64__) || defined(_LP64) || \
4c221b0da1816acf2ca302b10092df059484468dvboxsync defined(__s390x__) || \
4c221b0da1816acf2ca302b10092df059484468dvboxsync defined(amd64) || defined (__amd64__) || \
4c221b0da1816acf2ca302b10092df059484468dvboxsync defined (__powerpc64__)
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef unsigned long FbBits;
4c221b0da1816acf2ca302b10092df059484468dvboxsync# else
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef unsigned long long FbBits;
4c221b0da1816acf2ca302b10092df059484468dvboxsync# endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync# endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT == 5
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef CARD32 FbBits;
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT == 4
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef CARD16 FbBits;
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if LOG2_BITMAP_PAD == FB_SHIFT
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef FbBits FbStip;
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync# if LOG2_BITMAP_PAD == 5
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef CARD32 FbStip;
4c221b0da1816acf2ca302b10092df059484468dvboxsync# endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef int FbStride;
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_DEBUG
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void fbValidateDrawable(DrawablePtr d);
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void fbInitializeDrawable(DrawablePtr d);
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void fbSetBits (FbStip *bits, int stride, FbStip data);
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_HEAD_BITS (FbStip) (0xbaadf00d)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_TAIL_BITS (FbStip) (0xbaddf0ad)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbValidateDrawable(d)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fdInitializeDrawable(d)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "fbrop.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if BITMAP_BIT_ORDER == LSBFirst
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbScrLeft(x,n) ((x) >> (n))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbScrRight(x,n) ((x) << (n))
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* #define FbLeftBits(x,n) ((x) & ((((FbBits) 1) << (n)) - 1)) */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLeftStipBits(x,n) ((x) & ((((FbStip) 1) << (n)) - 1))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStipMoveLsb(x,s,n) (FbStipRight (x,(s)-(n)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPatternOffsetBits 0
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbScrLeft(x,n) ((x) << (n))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbScrRight(x,n) ((x) >> (n))
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* #define FbLeftBits(x,n) ((x) >> (FB_UNIT - (n))) */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLeftStipBits(x,n) ((x) >> (FB_STIP_UNIT - (n)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStipMoveLsb(x,s,n) (x)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPatternOffsetBits (sizeof (FbBits) - 1)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#include "micoord.h"
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStipLeft(x,n) FbScrLeft(x,n)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStipRight(x,n) FbScrRight(x,n)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRotLeft(x,n) FbScrLeft(x,n) | (n ? FbScrRight(x,FB_UNIT-n) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRotRight(x,n) FbScrRight(x,n) | (n ? FbScrLeft(x,FB_UNIT-n) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRotStipLeft(x,n) FbStipLeft(x,n) | (n ? FbStipRight(x,FB_STIP_UNIT-n) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRotStipRight(x,n) FbStipRight(x,n) | (n ? FbStipLeft(x,FB_STIP_UNIT-n) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLeftMask(x) ( ((x) & FB_MASK) ? \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbScrRight(FB_ALLONES,(x) & FB_MASK) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRightMask(x) ( ((FB_UNIT - (x)) & FB_MASK) ? \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - (x)) & FB_MASK) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLeftStipMask(x) ( ((x) & FB_STIP_MASK) ? \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRightStipMask(x) ( ((FB_STIP_UNIT - (x)) & FB_STIP_MASK) ? \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbScrLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - (x)) & FB_STIP_MASK) : 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbBitsMask(x,w) (FbScrRight(FB_ALLONES,(x) & FB_MASK) & \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbScrLeft(FB_ALLONES,(FB_UNIT - ((x) + (w))) & FB_MASK))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStipMask(x,w) (FbStipRight(FB_STIP_ALLONES,(x) & FB_STIP_MASK) & \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStipLeft(FB_STIP_ALLONES,(FB_STIP_UNIT - ((x)+(w))) & FB_STIP_MASK))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbMaskBits(x,w,l,n,r) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n = (w); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync r = FbRightMask((x)+n); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync l = FbLeftMask(x); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (l) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n -= FB_UNIT - ((x) & FB_MASK); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (n < 0) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync l &= r; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync r = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n >>= FB_SHIFT; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FBNOPIXADDR
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) FbMaskBits(x,w,l,n,r)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync *dst = FbDoMaskRRop(*dst,and,xor,l); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync *dst = FbDoMaskRRop(*dst,and,xor,r); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbByteMaskInvalid 0x10
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPatternOffset(o,t) ((o) ^ (FbPatternOffsetBits & ~(sizeof (t) - 1)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPtrOffset(p,o,t) ((t *) ((CARD8 *) (p) + (o)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbSelectPatternPart(xor,o,t) ((xor) >> (FbPatternOffset (o,t) << 3))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbStorePart(dst,off,t,xor) (WRITE(FbPtrOffset(dst,off,t), \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbSelectPart(xor,off,t)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifndef FbSelectPart
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbSelectPart(x,o,t) FbSelectPatternPart(x,o,t)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbMaskBitsBytes(x,w,copy,l,lb,n,r,rb) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n = (w); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync lb = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync rb = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync r = FbRightMask((x)+n); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (r) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync /* compute right byte length */ \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((copy) && (((x) + n) & 7) == 0) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync rb = (((x) + n) & FB_MASK) >> 3; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync rb = FbByteMaskInvalid; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync l = FbLeftMask(x); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (l) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync /* compute left byte length */ \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((copy) && ((x) & 7) == 0) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync lb = ((x) & FB_MASK) >> 3; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync lb = FbByteMaskInvalid; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync /* subtract out the portion painted by leftMask */ \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n -= FB_UNIT - ((x) & FB_MASK); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (n < 0) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (lb != FbByteMaskInvalid) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (rb == FbByteMaskInvalid) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync lb = FbByteMaskInvalid; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else if (rb) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync lb |= (rb - lb) << (FB_SHIFT - 3); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync rb = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync l &= r; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync r = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync }\
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n >>= FB_SHIFT; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT == 6
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7) | (1 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7) | (2 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7) | (3 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7) | (4 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7) | (5 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7) | (6 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 7): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 6) | (1 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 6) | (2 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 6) | (3 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 6) | (4 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 6) | (5 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 6): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 5) | (1 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 5) | (2 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 5) | (3 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 5) | (4 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 5): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 4) | (1 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 4) | (2 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 4) | (3 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 4): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break;
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 4: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 5: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,4,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 6: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 7: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD32,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,4,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,6,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break;
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoLeftMaskByteRRop6Cases(dst,xor)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoRightMaskByteRRop6Cases(dst,xor)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync switch (lb) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbDoLeftMaskByteRRop6Cases(dst,xor) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 3) | (2 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case (sizeof (FbBits) - 2) | (1 << (FB_SHIFT - 3)): \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case sizeof (FbBits) - 3: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case sizeof (FbBits) - 2: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 2,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case sizeof (FbBits) - 1: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,sizeof (FbBits) - 1,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync default: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, l)); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDoRightMaskByteRRop(dst,rb,r,and,xor) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync switch (rb) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 1: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 2: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync case 3: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,0,CARD16,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStorePart(dst,2,CARD8,xor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync break; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbDoRightMaskByteRRop6Cases(dst,xor) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync default: \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbMaskStip(x,w,l,n,r) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n = (w); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync r = FbRightStipMask((x)+n); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync l = FbLeftStipMask(x); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (l) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n -= FB_STIP_UNIT - ((x) & FB_STIP_MASK); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (n < 0) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync l &= r; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync r = 0; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync n >>= FB_STIP_SHIFT; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * These macros are used to transparently stipple
4c221b0da1816acf2ca302b10092df059484468dvboxsync * in copy mode; the expected usage is with 'n' constant
4c221b0da1816acf2ca302b10092df059484468dvboxsync * so all of the conditional parts collapse into a minimal
4c221b0da1816acf2ca302b10092df059484468dvboxsync * sequence of partial word writes
4c221b0da1816acf2ca302b10092df059484468dvboxsync *
4c221b0da1816acf2ca302b10092df059484468dvboxsync * 'n' is the bytemask of which bytes to store, 'a' is the address
4c221b0da1816acf2ca302b10092df059484468dvboxsync * of the FbBits base unit, 'o' is the offset within that unit
4c221b0da1816acf2ca302b10092df059484468dvboxsync *
4c221b0da1816acf2ca302b10092df059484468dvboxsync * The term "lane" comes from the hardware term "byte-lane" which
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLaneCase1(n,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((n) == 0x01) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync }
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLaneCase2(n,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((n) == 0x03) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbLaneCase1((n)&1,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbLaneCase1((n)>>1,a,(o)+1) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync }
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLaneCase4(n,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((n) == 0x0f) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbLaneCase2((n)&3,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbLaneCase2((n)>>2,a,(o)+2) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync }
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLaneCase8(n,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((n) == 0x0ff) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync *(FbBits *) ((a)+(o)) = fgxor; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbLaneCase4((n)&15,a,o) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbLaneCase4((n)>>4,a,(o)+4) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync }
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT == 6
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLaneCase(n,a) FbLaneCase8(n,(CARD8 *) (a),0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_SHIFT == 5
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Rotate a filled pixel value to the specified alignement */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbRot24Stip(p,b) (FbStipRight(p,b) | FbStipLeft(p,24-(b)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* step a filled pixel value to the next/previous FB_UNIT alignment */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbNext24Pix(p) (FbRot24(p,(24-FB_UNIT%24)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPrev24Pix(p) (FbRot24(p,FB_UNIT%24))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbNext24Stip(p) (FbRot24(p,(24-FB_STIP_UNIT%24)))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* step a rotation value to the next/previous rotation value */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_UNIT == 64
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbNext24Rot(r) ((r) == 16 ? 0 : (r) + 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPrev24Rot(r) ((r) == 0 ? 16 : (r) - 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if IMAGE_BYTE_ORDER == MSBFirst
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbFirst24Rot(x) (((x) + 8) % 24)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbFirst24Rot(x) ((x) % 24)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if FB_UNIT == 32
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#if IMAGE_BYTE_ORDER == MSBFirst
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbFirst24Rot(x) (((x) + 16) % 24)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbFirst24Rot(x) ((x) % 24)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Whether 24-bit specific code is needed for this filled pixel value */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbCheck24Pix(p) ((p) == FbNext24Pix(p))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Macros for dealing with dashing */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDashDeclare \
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned char *__dash, *__firstDash, *__lastDash
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDashInit(pGC,pPriv,dashOffset,dashlen,even) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (even) = TRUE; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync __firstDash = (pGC)->dash; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync __lastDash = __firstDash + (pGC)->numInDashList; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (dashOffset) %= (pPriv)->dashLength; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync \
4c221b0da1816acf2ca302b10092df059484468dvboxsync __dash = __firstDash; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync while ((dashOffset) >= ((dashlen) = *__dash)) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (dashOffset) -= (dashlen); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (even) = 1-(even); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (++__dash == __lastDash) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync __dash = __firstDash; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (dashlen) -= (dashOffset); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDashNext(dashlen) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (++__dash == __lastDash) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync __dash = __firstDash; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (dashlen) = *__dash; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* as numInDashList is always even, this case can skip a test */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDashNextEven(dashlen) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (dashlen) = *++__dash; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDashNextOdd(dashlen) FbDashNext(dashlen)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbDashStep(dashlen,even) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if (!--(dashlen)) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbDashNext(dashlen); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (even) = 1-(even); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT DevPrivateKey
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGetGCPrivateKey (void);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT DevPrivateKey
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGetWinPrivateKey (void);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT const GCOps fbGCOps;
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT const GCFuncs fbGCFuncs;
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_24_32BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FB_SCREEN_PRIVATE
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Framebuffer access wrapper */
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef FbBits (*ReadMemoryProcPtr)(const void *src, int size);
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef void (*WriteMemoryProcPtr)(void *dst, FbBits value, int size);
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef void (*SetupWrapProcPtr)(ReadMemoryProcPtr *pRead,
4c221b0da1816acf2ca302b10092df059484468dvboxsync WriteMemoryProcPtr *pWrite,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDraw);
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef void (*FinishWrapProcPtr)(DrawablePtr pDraw);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_ACCESS_WRAPPER
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbPrepareAccess(pDraw) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbGetScreenPrivate((pDraw)->pScreen)->setupWrap( \
4c221b0da1816acf2ca302b10092df059484468dvboxsync &wfbReadMemory, \
4c221b0da1816acf2ca302b10092df059484468dvboxsync &wfbWriteMemory, \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (pDraw))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbFinishAccess(pDraw) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbGetScreenPrivate((pDraw)->pScreen)->finishWrap(pDraw)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbPrepareAccess(pPix)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbFinishAccess(pDraw)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_SCREEN_PRIVATE
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT DevPrivateKey
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGetScreenPrivateKey(void);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* private field of a screen */
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef struct {
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned char win32bpp; /* window bpp for 32-bpp images */
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned char pix32bpp; /* pixmap bpp for 32-bpp images */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_ACCESS_WRAPPER
4c221b0da1816acf2ca302b10092df059484468dvboxsync SetupWrapProcPtr setupWrap; /* driver hook to set pixmap access wrapping */
4c221b0da1816acf2ca302b10092df059484468dvboxsync FinishWrapProcPtr finishWrap; /* driver hook to clean up pixmap access wrapping */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync} FbScreenPrivRec, *FbScreenPrivPtr;
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetScreenPrivate(pScreen) ((FbScreenPrivPtr) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync dixLookupPrivate(&(pScreen)->devPrivates, fbGetScreenPrivateKey()))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* private field of GC */
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef struct {
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and, xor; /* reduced rop values */
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgand, bgxor; /* for stipples */
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fg, bg, pm; /* expanded and filled */
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned int dashLength; /* total of all dash elements */
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned char evenStipple; /* stipple is even */
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned char bpp; /* current drawable bpp */
4c221b0da1816acf2ca302b10092df059484468dvboxsync} FbGCPrivRec, *FbGCPrivPtr;
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetGCPrivate(pGC) ((FbGCPrivPtr)\
4c221b0da1816acf2ca302b10092df059484468dvboxsync dixLookupPrivate(&(pGC)->devPrivates, fbGetGCPrivateKey()))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetCompositeClip(pGC) ((pGC)->pCompositeClip)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetExpose(pGC) ((pGC)->fExpose)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetFreeCompClip(pGC) ((pGC)->freeCompClip)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetRotatedPixmap(pGC) ((pGC)->pRotatedPixmap)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetScreenPixmap(s) ((PixmapPtr) (s)->devPrivate)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetWindowPixmap(pWin) ((PixmapPtr)\
4c221b0da1816acf2ca302b10092df059484468dvboxsync dixLookupPrivate(&((WindowPtr)(pWin))->devPrivates, fbGetWinPrivateKey()))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef ROOTLESS
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixDrawableX(pPix) ((pPix)->drawable.x)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixDrawableY(pPix) ((pPix)->drawable.y)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixDrawableX(pPix) 0
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixDrawableY(pPix) 0
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef COMPOSITE
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix) - (pPix)->screen_x)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix) - (pPix)->screen_y)
4c221b0da1816acf2ca302b10092df059484468dvboxsync#else
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixOffXWin(pPix) (__fbPixDrawableX(pPix))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixOffYWin(pPix) (__fbPixDrawableY(pPix))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixOffXPix(pPix) (__fbPixDrawableX(pPix))
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define __fbPixOffYPix(pPix) (__fbPixDrawableY(pPix))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetDrawablePixmap(pDrawable, pixmap, xoff, yoff) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync if ((pDrawable)->type != DRAWABLE_PIXMAP) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (pixmap) = fbGetWindowPixmap(pDrawable); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (xoff) = __fbPixOffXWin(pixmap); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (yoff) = __fbPixOffYWin(pixmap); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } else { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (pixmap) = (PixmapPtr) (pDrawable); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (xoff) = __fbPixOffXPix(pixmap); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (yoff) = __fbPixOffYPix(pixmap); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync } \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbPrepareAccess(pDrawable); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetPixmapBitsData(pixmap, pointer, stride, bpp) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (pointer) = (FbBits *) (pixmap)->devPrivate.ptr; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbBits); (void)(stride); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetPixmapStipData(pixmap, pointer, stride, bpp) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (pointer) = (FbStip *) (pixmap)->devPrivate.ptr; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (stride) = ((int) (pixmap)->devKind) / sizeof (FbStip); (void)(stride); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync (bpp) = (pixmap)->drawable.bitsPerPixel; (void)(bpp); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync PixmapPtr _pPix; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbGetPixmapBitsData(_pPix, pointer, stride, bpp); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbGetStipDrawable(pDrawable, pointer, stride, bpp, xoff, yoff) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync PixmapPtr _pPix; \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbGetDrawablePixmap(pDrawable, _pPix, xoff, yoff); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbGetPixmapStipData(_pPix, pointer, stride, bpp); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync}
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * XFree86 empties the root BorderClip when the VT is inactive,
4c221b0da1816acf2ca302b10092df059484468dvboxsync * here's a macro which uses that to disable GetImage and GetSpans
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbWindowEnabled(pWin) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionNotEmpty(&(pWin)->drawable.pScreen->root->borderClip)
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbDrawableEnabled(pDrawable) \
4c221b0da1816acf2ca302b10092df059484468dvboxsync ((pDrawable)->type == DRAWABLE_PIXMAP ? \
4c221b0da1816acf2ca302b10092df059484468dvboxsync TRUE : fbWindowEnabled((WindowPtr) pDrawable))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbPowerOfTwo(w) (((w) & ((w) - 1)) == 0)
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Accelerated tiles are power of 2 width <= FB_UNIT
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbEvenTile(w) ((w) <= FB_UNIT && FbPowerOfTwo(w))
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Accelerated stipples are power of 2 width and <= FB_UNIT/dstBpp
4c221b0da1816acf2ca302b10092df059484468dvboxsync * with dstBpp a power of 2 as well
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define FbEvenStip(w,bpp) ((w) * (bpp) <= FB_UNIT && FbPowerOfTwo(w) && FbPowerOfTwo(bpp))
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fb24_32.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32GetSpans(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int wMax,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *pwidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nspans,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *pchardstStart);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32SetSpans (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *pwidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nspans,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int fSorted);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32PutZImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr pClip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync CARD8 *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32GetImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int w,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int h,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned int format,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned long planeMask,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *d);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32CopyMtoN (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT PixmapPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32ReformatTile(PixmapPtr pOldTile, int bitsPerPixel);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32CreateScreenResources(ScreenPtr pScreen);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfb24_32ModifyPixmapHeader (PixmapPtr pPixmap,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int depth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bitsPerPixel,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int devKind,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pPixData);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fballpriv.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbAllocatePrivates(ScreenPtr pScreen, DevPrivateKey *pGCIndex);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbarc.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyArc (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int narcs,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xArc *parcs);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbbits.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresSolid8(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresDash8 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDots8 (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pBox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xPoint *pts,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbArc8 (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xArc *arc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGlyph8 (FbBits *dstLine,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stipple,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int shift);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyline8 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ptsOrig);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolySegment8 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nseg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xSegment *pseg);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresSolid16(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresDash16(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDots16(FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pBox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xPoint *pts,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbArc16(FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xArc *arc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGlyph16(FbBits *dstLine,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stipple,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int shift);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyline16 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ptsOrig);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolySegment16 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nseg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xSegment *pseg);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresSolid24(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresDash24(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDots24(FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pBox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xPoint *pts,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbArc24(FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xArc *arc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGlyph24(FbBits *dstLine,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stipple,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int shift);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyline24 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ptsOrig);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolySegment24 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nseg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xSegment *pseg);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresSolid32(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBresDash32(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDots32(FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pBox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xPoint *pts,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbArc32(FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xArc *arc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGlyph32(FbBits *dstLine,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stipple,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int shift);
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyline32 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ptsOrig);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolySegment32 (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nseg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xSegment *pseg);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbblt.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBlt (FbBits *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBlt24 (FbBits *srcLine,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *dstLine,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBltStip (FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride, /* in FbStip units, not FbBits units */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride, /* in FbStip units, not FbBits units */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbbltone.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBltOne (FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fbxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgxor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_24BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBltOne24 (FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride, /* FbStip units per scanline */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX, /* bit position of source */
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride, /* FbBits units per scanline */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX, /* bit position of dest */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp, /* bits per destination unit */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width, /* width in bits of destination */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height, /* height in scanlines */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgand, /* rrop values */
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgxor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBltPlane (FbBits *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip fgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip fgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip bgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip bgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel planeMask);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbcmap_mi.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT int
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbInstallColormap(ColormapPtr pmap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbUninstallColormap(ColormapPtr pmap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbResolveColor(unsigned short *pred,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned short *pgreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned short *pblue,
4c221b0da1816acf2ca302b10092df059484468dvboxsync VisualPtr pVisual);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbInitializeColormap(ColormapPtr pmap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT int
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbExpandDirectColors (ColormapPtr pmap,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ndef,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xColorItem *indefs,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xColorItem *outdefs);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCreateDefColormap(ScreenPtr pScreen);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbClearVisualTypes(void);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbHasVisualTypes (int depth);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSetVisualTypes (int depth, int visuals, int bitsPerRGB);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSetVisualTypesAndMasks (int depth, int visuals, int bitsPerRGB,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel redMask, Pixel greenMask, Pixel blueMask);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbInitVisuals (VisualPtr *visualp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DepthPtr *depthp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *nvisualp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *ndepthp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *rootDepthp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync VisualID *defaultVisp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned long sizes,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bitsPerRGB);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbcopy.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Compatibility definition, to be removed at next ABI change. */
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef void (*fbCopyProc) (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pDstBox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyNtoN (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Compatibility wrapper, to be removed at next ABI change. */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyRegion (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr pDstRegion,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbCopyProc copyProc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitPlane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Compatibility wrapper, to be removed at next ABI change. */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT RegionPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDoCopy (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xIn,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yIn,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int widthSrc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int heightSrc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xOut,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yOut,
4c221b0da1816acf2ca302b10092df059484468dvboxsync fbCopyProc copyProc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopy1toN (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyNto1 (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT RegionPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyArea (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xIn,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yIn,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int widthSrc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int heightSrc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xOut,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yOut);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT RegionPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyPlane (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xIn,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yIn,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int widthSrc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int heightSrc,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xOut,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yOut,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned long bitplane);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbfill.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbFill (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSolidBoxClipped (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr pClip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xa,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ya,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xb,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yb,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbfillrect.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyFillRect(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nrectInit,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xRectangle *prectInit);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbPolyFillArc miPolyFillArc
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbFillPolygon miFillPolygon
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbfillsp.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbFillSpans (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nInit,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr pptInit,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *pwidthInit,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int fSorted);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbgc.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCreateGC(GCPtr pGC);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPadPixmap (PixmapPtr pPixmap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbValidateGC(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbgetsp.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGetSpans(DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int wMax,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *pwidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nspans,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *pchardstStart);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbglyph.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGlyphIn (RegionPtr pRegion,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyGlyphBlt (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned int nglyph,
4c221b0da1816acf2ca302b10092df059484468dvboxsync CharInfoPtr *ppci,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pglyphBase);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbImageGlyphBlt (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned int nglyph,
4c221b0da1816acf2ca302b10092df059484468dvboxsync CharInfoPtr *ppci,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pglyphBase);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbimage.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPutImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int depth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int w,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int h,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int leftPad,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int format,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *pImage);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPutZImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr pClip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPutXYImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr pClip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool opaque,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbGetImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int w,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int h,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned int format,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned long planeMask,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *d);
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbline.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbZeroLine (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbZeroSegment (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nseg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xSegment *pSegs);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyLine (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbFixCoordModePrevious (int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolySegment (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nseg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xSegment *pseg);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define fbPolyRectangle miPolyRectangle
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbpict.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPictureInit (ScreenPtr pScreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync PictFormatPtr formats,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nformats);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbpixmap.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT PixmapPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCreatePixmapBpp (ScreenPtr pScreen, int width, int height, int depth, int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned usage_hint);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT PixmapPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCreatePixmap (ScreenPtr pScreen, int width, int height, int depth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned usage_hint);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDestroyPixmap (PixmapPtr pPixmap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT RegionPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPixmapToRegion(PixmapPtr pPix);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbpoint.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDots (FbBits *dstOrig,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pBox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xPoint *pts,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yorg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits andOrig,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xorOrig);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPolyPoint (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int mode,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int npt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync xPoint *pptInit);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbpush.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPushPattern (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPushFill (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPushImage (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride srcStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int srcX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPushPixels (GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync PixmapPtr pBitmap,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xOrg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yOrg);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbscreen.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCloseScreen (int indx, ScreenPtr pScreen);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbRealizeFont(ScreenPtr pScreen, FontPtr pFont);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbQueryBestSize (int class,
4c221b0da1816acf2ca302b10092df059484468dvboxsync unsigned short *width, unsigned short *height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync ScreenPtr pScreen);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT PixmapPtr
4c221b0da1816acf2ca302b10092df059484468dvboxsync_fbGetWindowPixmap (WindowPtr pWindow);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsync_fbSetWindowPixmap (WindowPtr pWindow, PixmapPtr pPixmap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSetupScreen(ScreenPtr pScreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pbits, /* pointer to screen bitmap */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xsize, /* in pixels */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ysize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpix, /* dots per inch */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpiy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width, /* pixel width of frame buffer */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp); /* bits per pixel of frame buffer */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncwfbFinishScreenInit(ScreenPtr pScreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pbits,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xsize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ysize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpix,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpiy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync SetupWrapProcPtr setupWrap,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FinishWrapProcPtr finishWrap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncwfbScreenInit(ScreenPtr pScreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pbits,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xsize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ysize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpix,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpiy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync SetupWrapProcPtr setupWrap,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FinishWrapProcPtr finishWrap);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbFinishScreenInit(ScreenPtr pScreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pbits,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xsize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ysize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpix,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpiy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbScreenInit(ScreenPtr pScreen,
4c221b0da1816acf2ca302b10092df059484468dvboxsync pointer pbits,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xsize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ysize,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpix,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dpiy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbseg.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef void FbBres (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT FbBres fbBresSolid, fbBresDash, fbBresFill, fbBresFillDash;
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbsetsp.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSetSpans (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync char *src,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointPtr ppt,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *pwidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nspans,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int fSorted);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT FbBres *
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSelectBres (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbBres (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dashOffset,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int signdy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int axis,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int y,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e1,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e3,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int len);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSegment (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xa,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int ya,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xb,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yb,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool drawLast,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *dashOffset);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbsolid.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSolid (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_24BIT
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbSolid24 (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbstipple.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbTransparentSpan (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits stip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int n);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbEvenStipple (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride stipStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int stipHeight,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xRot,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yRot);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbOddStipple (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride stipStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int stipWidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int stipHeight,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xRot,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yRot);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbStipple (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstBpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStip *stip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride stipStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int stipWidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int stipHeight,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool even,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits fgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgand,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits bgxor,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xRot,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yRot);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbtile.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbEvenTile (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *tile,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride tileStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int tileHeight,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xRot,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yRot);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbOddTile (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *tile,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride tileStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int tileWidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int tileHeight,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xRot,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yRot);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbTile (FbBits *dst,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride dstStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dstX,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int width,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int height,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits *tile,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbStride tileStride,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int tileWidth,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int tileHeight,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int alu,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits pm,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int bpp,
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync int xRot,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int yRot);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbutil.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT FbBits
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbReplicatePixel (Pixel p, int bpp);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbReduceRasterOp (int rop, FbBits fg, FbBits pm, FbBits *andp, FbBits *xorp);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#ifdef FB_ACCESS_WRAPPER
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT ReadMemoryProcPtr wfbReadMemory;
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT WriteMemoryProcPtr wfbWriteMemory;
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*
4c221b0da1816acf2ca302b10092df059484468dvboxsync * fbwindow.c
4c221b0da1816acf2ca302b10092df059484468dvboxsync */
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCreateWindow(WindowPtr pWin);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbDestroyWindow(WindowPtr pWin);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbMapWindow(WindowPtr pWindow);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbPositionWindow(WindowPtr pWin, int x, int y);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbUnmapWindow(WindowPtr pWindow);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyWindowProc (DrawablePtr pSrcDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DrawablePtr pDstDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync GCPtr pGC,
4c221b0da1816acf2ca302b10092df059484468dvboxsync BoxPtr pbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int nbox,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dx,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int dy,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool reverse,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool upsidedown,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Pixel bitplane,
4c221b0da1816acf2ca302b10092df059484468dvboxsync void *closure);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbCopyWindow(WindowPtr pWin,
4c221b0da1816acf2ca302b10092df059484468dvboxsync DDXPointRec ptOldOrg,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr prgnSrc);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT Bool
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfbFillRegionSolid (DrawablePtr pDrawable,
4c221b0da1816acf2ca302b10092df059484468dvboxsync RegionPtr pRegion,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits and,
4c221b0da1816acf2ca302b10092df059484468dvboxsync FbBits xor);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT pixman_image_t *
4c221b0da1816acf2ca302b10092df059484468dvboxsyncimage_from_pict (PicturePtr pict,
4c221b0da1816acf2ca302b10092df059484468dvboxsync Bool has_clip,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *xoff,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int *yoff);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT void free_pixman_pict (PicturePtr, pixman_image_t *);
4c221b0da1816acf2ca302b10092df059484468dvboxsync
4c221b0da1816acf2ca302b10092df059484468dvboxsync#endif /* _FB_H_ */
4c221b0da1816acf2ca302b10092df059484468dvboxsync