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