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