b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $XFree86: xc/programs/Xserver/mfb/mfb.h,v 1.21 2003/07/16 03:35:16 dawes Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* Combined Purdue/PurduePlus patches, level 2.0, 1/17/89 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/***********************************************************
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1987, 1998 The Open Group
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthe above copyright notice appear in all copies and that both that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynccopyright notice and this permission notice appear in supporting
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncThe above copyright notice and this permission notice shall be included in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncall copies or substantial portions of the Software.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncin this Software without prior written authorization from The Open Group.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync All Rights Reserved
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncPermission to use, copy, modify, and distribute this software and its
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdocumentation for any purpose and without fee is hereby granted,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncprovided that the above copyright notice appear in all copies and that
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncboth that copyright notice and this permission notice appear in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncsupporting documentation, and that the name of Digital not be
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncused in advertising or publicity pertaining to distribution of the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncsoftware without specific, written prior permission.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncSOFTWARE.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync******************************************************************/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* $Xorg: mfb.h,v 1.4 2001/02/09 02:05:18 xorgcvs Exp $ */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#if !defined(_MFB_H_) || defined(MFB_PROTOTYPES_ONLY)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define _MFB_H_
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* Monochrome Frame Buffer definitions
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync written by drewry, september 1986
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "pixmap.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "region.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "gc.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "colormap.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "miscstruct.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "mibstore.h"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int InverseAlu[];
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbGetInverseAlu(int i);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* warning: PixelType definition duplicated in maskbits.h */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef PixelType
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define PixelType CARD32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* PixelType */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MfbBits
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MfbBits CARD32
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbitblt.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDoBitblt(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern RegionPtr mfbCopyArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrcDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDstDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*srcx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*srcy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*width*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*height*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dstx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dsty*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbRegisterCopyPlaneProc(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr (* /*proc*/)(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /* pSrcDrawable */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /* pDstDrawable */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /* pGC */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /* srcx */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /* srcy */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /* width */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /* height */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /* dstx */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /* dsty */,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long /* bitPlane */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync )
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern RegionPtr mfbCopyPlane(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrcDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDstDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*srcx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*srcy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*width*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*height*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dstx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dsty*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long /*plane*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbltC.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDoBitbltCopy(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbltCI.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDoBitbltCopyInverted(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbltG.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDoBitbltGeneral(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbltO.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDoBitbltOr(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbltX.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDoBitbltXor(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pSrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnDst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbres.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbBresS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*rop*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType * /*addrl*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nlwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*signdx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*signdy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*axis*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*e*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*e1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*e2*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*len*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbresd.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbBresD(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fgrop*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*bgrop*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pdashIndex*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char * /*pDash*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*numInDashList*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pdashOffset*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*isDoubleDash*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType * /*addrl*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nlwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*signdx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*signdy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*axis*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*e*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*e1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*e2*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*len*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbbstore.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSaveAreas(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPixmap*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnSave*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xorg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*yorg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbRestoreAreas(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPixmap*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnRestore*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xorg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*yorg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbclip.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern RegionPtr mfbPixmapToRegion(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPix*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef RegionPtr (*mfbPixmapToRegionProc)(PixmapPtr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern mfbPixmapToRegionProc *mfbPixmapToRegionWeak(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbcmap.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbListInstalledColormaps(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Colormap * /*pmaps*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbInstallColormap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ColormapPtr /*pmap*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbUninstallColormap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ColormapPtr /*pmap*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbResolveColor(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned short * /*pred*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned short * /*pgreen*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned short * /*pblue*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync VisualPtr /*pVisual*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbCreateColormap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ColormapPtr /*pMap*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbDestroyColormap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ColormapPtr /*pMap*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbCreateDefColormap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbfillarc.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPolyFillArcSolid(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*narcs*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xArc * /*parcs*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbfillrct.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPolyFillRect(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nrectFill*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xRectangle * /*prectInit*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbfillsp.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbBlackSolidFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbWhiteSolidFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbInvertSolidFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbWhiteStippleFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbBlackStippleFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbInvertStippleFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbTileFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbUnnaturalTileFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbUnnaturalStippleFS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidthInit*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbfont.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbRealizeFont(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pscr*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync FontPtr /*pFont*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbUnrealizeFont(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pscr*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync FontPtr /*pFont*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*mfbRealizeFontProc)(ScreenPtr, FontPtr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*mfbUnrealizeFontProc)(ScreenPtr, FontPtr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern mfbRealizeFontProc *mfbRealizeFontWeak(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern mfbUnrealizeFontProc *mfbUnrealizeFontWeak(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbgc.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbCreateGC(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbValidateGC(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long /*changes*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbReduceRop(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync Pixel /*src*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbgetsp.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbGetSpans(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*wMax*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*ppt*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nspans*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char * /*pdstStart*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbhrzvert.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbHorzS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*rop*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType * /*addrl*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nlwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*len*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbVertS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*rop*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType * /*addrl*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nlwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y1*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*len*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbigbblak.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbImageGlyphBltBlack(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbigbwht.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbImageGlyphBltWhite(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbimage.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPutImage(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*dst*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*depth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*w*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*h*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*leftPad*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*format*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char * /*pImage*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbGetImage(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*sx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*sy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*w*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*h*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*format*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long /*planeMask*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char * /*pdstLine*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbline.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbLineSS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*mode*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*npt*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbLineSD(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*mode*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*npt*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*pptInit*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbmisc.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbQueryBestSize(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*class*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned short * /*pwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned short * /*pheight*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*mfbQueryBestSizeProc)(int, unsigned short *, unsigned short *,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern mfbQueryBestSizeProc *mfbQueryBestSizeWeak(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpablack.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSolidBlackArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*nop*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbStippleBlackArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pstipple*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpainv.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSolidInvertArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*nop*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbStippleInvertArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pstipple*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpawhite.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSolidWhiteArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*nop*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbStippleWhiteArea(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pstipple*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpgbinv.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPolyGlyphBltBlack(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpgbinv.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPolyGlyphBltInvert(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpgbwht.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPolyGlyphBltWhite(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpixmap.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern PixmapPtr mfbCreatePixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*width*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*height*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*depth*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbDestroyPixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPixmap*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern PixmapPtr mfbCopyPixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPadPixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPixmap*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbXRotatePixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPix*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*rw*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbYRotatePixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPix*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*rh*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbCopyRotatePixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*psrcPix*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr * /*ppdstPix*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xrot*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*yrot*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbplyblack.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbFillPolyBlack(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*shape*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*mode*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*count*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*ptsIn*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbplyinv.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbFillPolyInvert(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*shape*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*mode*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*count*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*ptsIn*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpntwin.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbFillPolyWhite(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*shape*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*mode*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*count*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*ptsIn*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpntwin.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPaintWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*pRegion*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*what*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpolypnt.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPolyPoint(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*mode*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*npt*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xPoint * /*pptInit*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbpushpxl.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSolidPP(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pBitMap*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xOrg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*yOrg*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbPushPixels(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pBitMap*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dx*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xOrg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*yOrg*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*mfbPushPixelsProc)(GCPtr, PixmapPtr, DrawablePtr, int, int,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int, int);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern mfbPushPixelsProc *mfbPushPixelsWeak(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbscrclse.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbCloseScreen(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*index*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbscrinit.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbAllocatePrivates(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pWinIndex*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pGCIndex*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbScreenInit(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync ScreenPtr /*pScreen*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pbits*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xsize*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*ysize*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dpix*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*dpiy*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*width*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern PixmapPtr mfbGetWindowPixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSetWindowPixmap(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*pPix*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbFillInScreen(ScreenPtr pScreen);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbseg.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSegmentSS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nseg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xSegment * /*pSeg*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSegmentSD(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nseg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xSegment * /*pSeg*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbsetsp.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSetScanline(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xOrigin*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xStart*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*xEnd*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType * /*psrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType * /*pdstBase*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*widthDst*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbSetSpans(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync char * /*psrc*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointPtr /*ppt*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int * /*pwidth*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nspans*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*fSorted*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbteblack.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbTEGlyphBltBlack(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbtewhite.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbTEGlyphBltWhite(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDrawable*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr/*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned int /*nglyph*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync CharInfoPtr * /*ppci*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pointer /*pglyphBase*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbtileC.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbTileAreaPPWCopy(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*ptile*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbtileG.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbTileAreaPPWGeneral(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*ptile*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbTileAreaPPW(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*ptile*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbwindow.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbCreateWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbDestroyWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbMapWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWindow*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbPositionWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*x*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*y*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbUnmapWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWindow*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbCopyWindow(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointRec /*ptOldOrg*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync RegionPtr /*prgnSrc*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern Bool mfbChangeWindowAttributes(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync WindowPtr /*pWin*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned long /*mask*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfbzerarc.c */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern void mfbZeroPolyArcSS(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync GCPtr /*pGC*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*narcs*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync xArc * /*parcs*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/*
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync private filed of pixmap
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pixmap.devPrivate = (PixelType *)pointer_to_bits
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync pixmap.devKind = width_of_pixmap_in_bytes
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync private field of screen
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync a pixmap, for which we allocate storage. devPrivate is a pointer to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthe bits in the hardware framebuffer. note that devKind can be poked to
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncmake the code work for framebuffers that are wider than their
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncdisplayable screen (e.g. the early vsII, which displayed 960 pixels
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncacross, but was 1024 in the hardware.)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync private field of GC
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef void (*mfbFillAreaProcPtr)(
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DrawablePtr /*pDraw*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*nbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync BoxPtr /*pbox*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int /*alu*/,
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr /*nop*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync );
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char rop; /* reduction of rasterop to 1 of 3 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char ropOpStip; /* rop for opaque stipple */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char ropFillArea; /* == alu, rop, or ropOpStip */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char unused1[sizeof(long) - 3]; /* Alignment */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbFillAreaProcPtr FillArea; /* fills regions; look at the code */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } mfbPrivGC;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef mfbPrivGC *mfbPrivGCPtr;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* XXX these should be static, but it breaks the ABI */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbGCPrivateIndex; /* index into GC private array */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbGetGCPrivateIndex(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbWindowPrivateIndex; /* index into Window private array */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int mfbGetWindowPrivateIndex(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef PIXMAP_PER_WINDOW
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int frameWindowPrivateIndex; /* index into Window private array */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncextern int frameGetWindowPrivateIndex(void);
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifndef MFB_PROTOTYPES_ONLY
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* private field of window */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct {
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char fastBorder; /* non-zero if border tile is 32 bits wide */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned char fastBackground;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync unsigned short unused; /* pad for alignment with Sun compiler */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync DDXPointRec oldRotate;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr pRotatedBackground;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr pRotatedBorder;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } mfbPrivWin;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* Common macros for extracting drawing information */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetTypedWidth(pDrawable,wtype) (\
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (((pDrawable)->type == DRAWABLE_WINDOW) ? \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (int) (((PixmapPtr)((pDrawable)->pScreen->devPrivate))->devKind) : \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (int)(((PixmapPtr)pDrawable)->devKind)) / sizeof (wtype))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetByteWidth(pDrawable) mfbGetTypedWidth(pDrawable, unsigned char)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetPixelWidth(pDrawable) mfbGetTypedWidth(pDrawable, PixelType)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetTypedWidthAndPointer(pDrawable, width, pointer, wtype, ptype) {\
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr _pPix; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync if ((pDrawable)->type == DRAWABLE_WINDOW) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync _pPix = (PixmapPtr) (pDrawable)->pScreen->devPrivate; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync else \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync _pPix = (PixmapPtr) (pDrawable); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (pointer) = (ptype *) _pPix->devPrivate.ptr; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (width) = ((int) _pPix->devKind) / sizeof (wtype); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync}
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetByteWidthAndPointer(pDrawable, width, pointer) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbGetTypedWidthAndPointer(pDrawable, width, pointer, unsigned char, unsigned char)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetPixelWidthAndPointer(pDrawable, width, pointer) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbGetTypedWidthAndPointer(pDrawable, width, pointer, PixelType, PixelType)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetWindowTypedWidthAndPointer(pWin, width, pointer, wtype, ptype) {\
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixmapPtr _pPix = (PixmapPtr) (pWin)->drawable.pScreen->devPrivate; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (pointer) = (ptype *) _pPix->devPrivate.ptr; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync (width) = ((int) _pPix->devKind) / sizeof (wtype); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync}
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetWindowPixelWidthAndPointer(pWin, width, pointer) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbGetWindowTypedWidthAndPointer(pWin, width, pointer, PixelType, PixelType)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbGetWindowByteWidthAndPointer(pWin, width, pointer) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbGetWindowTypedWidthAndPointer(pWin, width, pointer, char, char)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* mfb uses the following macros to calculate addresses in drawables.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * To support banked framebuffers, the macros come in four flavors.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * All four collapse into the same definition on unbanked devices.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * mfbScanlineFoo - calculate address and do bank switching
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * mfbScanlineFooNoBankSwitch - calculate address, don't bank switch
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * mfbScanlineFooSrc - calculate address, switch source bank
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * mfbScanlineFooDst - calculate address, switch destination bank
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* The NoBankSwitch versions are the same for banked and unbanked cases */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineIncNoBankSwitch(_ptr, _off) _ptr += (_off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineOffsetNoBankSwitch(_ptr, _off) ((_ptr) + (_off))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineDeltaNoBankSwitch(_ptr, _y, _w) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbScanlineOffsetNoBankSwitch(_ptr, (_y) * (_w))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineNoBankSwitch(_ptr, _x, _y, _w) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbScanlineOffsetNoBankSwitch(_ptr, (_y) * (_w) + ((_x) >> MFB_PWSH))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#ifdef MFB_LINE_BANK
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#include "mfblinebank.h" /* get macro definitions from this file */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#else /* !MFB_LINE_BANK - unbanked case */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineInc(_ptr, _off) mfbScanlineIncNoBankSwitch(_ptr, _off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineIncSrc(_ptr, _off) mfbScanlineInc(_ptr, _off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineIncDst(_ptr, _off) mfbScanlineInc(_ptr, _off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineOffset(_ptr, _off) mfbScanlineOffsetNoBankSwitch(_ptr, _off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineOffsetSrc(_ptr, _off) mfbScanlineOffset(_ptr, _off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineOffsetDst(_ptr, _off) mfbScanlineOffset(_ptr, _off)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineSrc(_ptr, _x, _y, _w) mfbScanline(_ptr, _x, _y, _w)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineDst(_ptr, _x, _y, _w) mfbScanline(_ptr, _x, _y, _w)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineDeltaSrc(_ptr, _y, _w) mfbScanlineDelta(_ptr, _y, _w)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineDeltaDst(_ptr, _y, _w) mfbScanlineDelta(_ptr, _y, _w)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* MFB_LINE_BANK */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanlineDelta(_ptr, _y, _w) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbScanlineOffset(_ptr, (_y) * (_w))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define mfbScanline(_ptr, _x, _y, _w) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync mfbScanlineOffset(_ptr, (_y) * (_w) + ((_x) >> MFB_PWSH))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* precomputed information about each glyph for GlyphBlt code.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync this saves recalculating the per glyph information for each box.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsynctypedef struct _pos{
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int xpos; /* xposition of glyph's origin */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int xchar; /* x position mod 32 */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int leftEdge;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int rightEdge;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int topEdge;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int bottomEdge;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync PixelType *pdstBase; /* longword with character origin */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync int widthGlyph; /* width in bytes of this glyph */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync} TEXTPOS;
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* reduced raster ops for mfb */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define RROP_BLACK GXclear
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define RROP_WHITE GXset
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define RROP_NOP GXnoop
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define RROP_INVERT GXinvert
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* macros for mfbbitblt.c, mfbfillsp.c
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync these let the code do one switch on the rop per call, rather
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsyncthan a switch on the rop per item (span or rectangle.)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync*/
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnCLEAR(src, dst) (0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnAND(src, dst) (src & dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnANDREVERSE(src, dst) (src & ~dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnCOPY(src, dst) (src)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnANDINVERTED(src, dst) (~src & dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnNOOP(src, dst) (dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnXOR(src, dst) (src ^ dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnOR(src, dst) (src | dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnNOR(src, dst) (~(src | dst))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnEQUIV(src, dst) (~src ^ dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnINVERT(src, dst) (~dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnORREVERSE(src, dst) (src | ~dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnCOPYINVERTED(src, dst)(~src)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnORINVERTED(src, dst) (~src | dst)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnNAND(src, dst) (~(src & dst))
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#undef fnSET
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define fnSET(src, dst) (MfbBits)(~0)
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* Using a "switch" statement is much faster in most cases
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * since the compiler can do a look-up table or multi-way branch
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * instruction, depending on the architecture. The result on
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * A Sun 3/50 is at least 2.5 times faster, assuming a uniform
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * distribution of RasterOp operation types.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * However, doing some profiling on a running system reveals
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GXcopy is the operation over 99.5% of the time and
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * GXxor is the next most frequent (about .4%), so we make special
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * checks for those first.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * Note that this requires a change to the "calling sequence"
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * since we can't engineer a "switch" statement to have an lvalue.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#undef DoRop
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define DoRop(result, alu, src, dst) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync{ \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync if (alu == GXcopy) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnCOPY (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync else if (alu == GXxor) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnXOR (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync else \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync switch (alu) \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync { \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXclear: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnCLEAR (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXand: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnAND (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXandReverse: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnANDREVERSE (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXandInverted: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnANDINVERTED (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync default: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXnoop: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnNOOP (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXor: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnOR (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXnor: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnNOR (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXequiv: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnEQUIV (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXinvert: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnINVERT (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXorReverse: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnORREVERSE (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXcopyInverted: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnCOPYINVERTED (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXorInverted: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnORINVERTED (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXnand: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnNAND (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync case GXset: \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync result = fnSET (src, dst); \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync break; \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync } \
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync}
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync/* C expression fragments for various operations. These get passed in
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * as -D's on the compile command line. See mfb/Imakefile. This
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * fixes XBUG 6319.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync *
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * This seems like a good place to point out that mfb's use of the
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * words black and white is an unfortunate misnomer. In mfb code, black
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync * means zero, and white means one.
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_OPEQ_WHITE |=
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_OPEQ_BLACK &=~
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_OPEQ_INVERT ^=
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_EQWHOLEWORD_WHITE =~0
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_EQWHOLEWORD_BLACK =0
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_EQWHOLEWORD_INVERT ^=~0
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_OP_WHITE /* nothing */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#define MFB_OP_BLACK ~
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* MFB_PROTOTYPES_ONLY */
b8e299dddd091ae24e0c08c45d91b8f937bd14d2vboxsync#endif /* _MFB_H_ */