65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright (c) 2009 Tiago Vignatti
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Permission is hereby granted, free of charge, to any person
65fea56f17cd614bc8908264df980a62e1931468vboxsync * obtaining a copy of this software and associated documentation
65fea56f17cd614bc8908264df980a62e1931468vboxsync * files (the "Software"), to deal in the Software without
65fea56f17cd614bc8908264df980a62e1931468vboxsync * restriction, including without limitation the rights to use,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * copy, modify, merge, publish, distribute, sublicense, and/or sell
65fea56f17cd614bc8908264df980a62e1931468vboxsync * copies of the Software, and to permit persons to whom the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Software is furnished to do so, subject to the following
65fea56f17cd614bc8908264df980a62e1931468vboxsync * conditions:
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync * The above copyright notice and this permission notice shall be
65fea56f17cd614bc8908264df980a62e1931468vboxsync * included in all copies or substantial portions of the Software.
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
65fea56f17cd614bc8908264df980a62e1931468vboxsync * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
65fea56f17cd614bc8908264df980a62e1931468vboxsync * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
65fea56f17cd614bc8908264df980a62e1931468vboxsync * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
65fea56f17cd614bc8908264df980a62e1931468vboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
65fea56f17cd614bc8908264df980a62e1931468vboxsync * OTHER DEALINGS IN THE SOFTWARE.
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef HAVE_XORG_CONFIG_H
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <xorg-config.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "misc.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "xf86.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "xf86_OSproc.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/X.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "colormapst.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "scrnintstr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "screenint.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "gcstruct.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "pixmapstr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "pixmap.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "windowstr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "window.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "xf86str.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "mipointer.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "mipointrst.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "picturestr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define WRAP_SCREEN(x,y) {pScreenPriv->x = pScreen->x; pScreen->x = y;}
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define UNWRAP_SCREEN(x) pScreen->x = pScreenPriv->x
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define SCREEN_PROLOG(x) pScreen->x = ((VGAarbiterScreenPtr) \
65fea56f17cd614bc8908264df980a62e1931468vboxsync dixLookupPrivate(&(pScreen)->devPrivates, VGAarbiterScreenKey))->x
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define SCREEN_EPILOG(x,y) pScreen->x = y;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define WRAP_PICT(x,y) if (ps) {pScreenPriv->x = ps->x;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync ps->x = y;}
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define UNWRAP_PICT(x) if (ps) {ps->x = pScreenPriv->x;}
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define PICTURE_PROLOGUE(field) ps->field = \
65fea56f17cd614bc8908264df980a62e1931468vboxsync ((VGAarbiterScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
65fea56f17cd614bc8908264df980a62e1931468vboxsync VGAarbiterScreenKey))->field
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define PICTURE_EPILOGUE(field, wrap) ps->field = wrap
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define WRAP_SCREEN_INFO(x,y) do {pScreenPriv->x = pScrn->x; pScrn->x = y;} while(0)
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define UNWRAP_SCREEN_INFO(x) pScrn->x = pScreenPriv->x
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define SPRITE_PROLOG miPointerScreenPtr PointPriv = \
65fea56f17cd614bc8908264df980a62e1931468vboxsync (miPointerScreenPtr)dixLookupPrivate(&pScreen->devPrivates, \
65fea56f17cd614bc8908264df980a62e1931468vboxsync miPointerScreenKey); VGAarbiterScreenPtr pScreenPriv = \
65fea56f17cd614bc8908264df980a62e1931468vboxsync ((VGAarbiterScreenPtr)dixLookupPrivate(&(pScreen)->devPrivates, \
65fea56f17cd614bc8908264df980a62e1931468vboxsync VGAarbiterScreenKey)); PointPriv->spriteFuncs = pScreenPriv->miSprite;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define SPRITE_EPILOG pScreenPriv->miSprite = PointPriv->spriteFuncs;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync PointPriv->spriteFuncs = &VGAarbiterSpriteFuncs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define WRAP_SPRITE do { pScreenPriv->miSprite = PointPriv->spriteFuncs;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync PointPriv->spriteFuncs = &VGAarbiterSpriteFuncs; \
65fea56f17cd614bc8908264df980a62e1931468vboxsync } while (0)
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define UNWRAP_SPRITE PointPriv->spriteFuncs = pScreenPriv->miSprite
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define GC_WRAP(x) pGCPriv->wrapOps = (x)->ops;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync pGCPriv->wrapFuncs = (x)->funcs; (x)->ops = &VGAarbiterGCOps;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync (x)->funcs = &VGAarbiterGCFuncs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define GC_UNWRAP(x) VGAarbiterGCPtr pGCPriv = \
65fea56f17cd614bc8908264df980a62e1931468vboxsync (VGAarbiterGCPtr)dixLookupPrivate(&(x)->devPrivates, VGAarbiterGCKey);\
65fea56f17cd614bc8908264df980a62e1931468vboxsync (x)->ops = pGCPriv->wrapOps; (x)->funcs = pGCPriv->wrapFuncs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic inline void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncVGAGet(ScreenPtr pScreen)
65fea56f17cd614bc8908264df980a62e1931468vboxsync{
65fea56f17cd614bc8908264df980a62e1931468vboxsync pci_device_vgaarb_set_target(xf86ScreenToScrn(pScreen)->vgaDev);
65fea56f17cd614bc8908264df980a62e1931468vboxsync pci_device_vgaarb_lock();
65fea56f17cd614bc8908264df980a62e1931468vboxsync}
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic inline void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncVGAPut(void)
65fea56f17cd614bc8908264df980a62e1931468vboxsync{
65fea56f17cd614bc8908264df980a62e1931468vboxsync pci_device_vgaarb_unlock();
65fea56f17cd614bc8908264df980a62e1931468vboxsync}
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _VGAarbiterScreen {
65fea56f17cd614bc8908264df980a62e1931468vboxsync CreateGCProcPtr CreateGC;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CloseScreenProcPtr CloseScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenBlockHandlerProcPtr BlockHandler;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenWakeupHandlerProcPtr WakeupHandler;
65fea56f17cd614bc8908264df980a62e1931468vboxsync GetImageProcPtr GetImage;
65fea56f17cd614bc8908264df980a62e1931468vboxsync GetSpansProcPtr GetSpans;
65fea56f17cd614bc8908264df980a62e1931468vboxsync SourceValidateProcPtr SourceValidate;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CopyWindowProcPtr CopyWindow;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ClearToBackgroundProcPtr ClearToBackground;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CreatePixmapProcPtr CreatePixmap;
65fea56f17cd614bc8908264df980a62e1931468vboxsync SaveScreenProcPtr SaveScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Colormap */
65fea56f17cd614bc8908264df980a62e1931468vboxsync StoreColorsProcPtr StoreColors;
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Cursor */
65fea56f17cd614bc8908264df980a62e1931468vboxsync DisplayCursorProcPtr DisplayCursor;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RealizeCursorProcPtr RealizeCursor;
65fea56f17cd614bc8908264df980a62e1931468vboxsync UnrealizeCursorProcPtr UnrealizeCursor;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RecolorCursorProcPtr RecolorCursor;
65fea56f17cd614bc8908264df980a62e1931468vboxsync SetCursorPositionProcPtr SetCursorPosition;
65fea56f17cd614bc8908264df980a62e1931468vboxsync void (*AdjustFrame) (ScrnInfoPtr, int, int);
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool (*SwitchMode) (ScrnInfoPtr, DisplayModePtr);
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool (*EnterVT) (ScrnInfoPtr);
65fea56f17cd614bc8908264df980a62e1931468vboxsync void (*LeaveVT) (ScrnInfoPtr);
65fea56f17cd614bc8908264df980a62e1931468vboxsync void (*FreeScreen) (ScrnInfoPtr);
65fea56f17cd614bc8908264df980a62e1931468vboxsync miPointerSpriteFuncPtr miSprite;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CompositeProcPtr Composite;
65fea56f17cd614bc8908264df980a62e1931468vboxsync GlyphsProcPtr Glyphs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CompositeRectsProcPtr CompositeRects;
65fea56f17cd614bc8908264df980a62e1931468vboxsync} VGAarbiterScreenRec, *VGAarbiterScreenPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _VGAarbiterGC {
65fea56f17cd614bc8908264df980a62e1931468vboxsync GCOps *wrapOps;
65fea56f17cd614bc8908264df980a62e1931468vboxsync GCFuncs *wrapFuncs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync} VGAarbiterGCRec, *VGAarbiterGCPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* Screen funcs */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterBlockHandler(ScreenPtr pScreen, pointer pTimeout,
65fea56f17cd614bc8908264df980a62e1931468vboxsync pointer pReadmask);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterWakeupHandler(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync unsigned long result, pointer pReadmask);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterCloseScreen(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterGetImage(DrawablePtr pDrawable, int sx, int sy, int w,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int h, unsigned int format,
65fea56f17cd614bc8908264df980a62e1931468vboxsync unsigned long planemask, char *pdstLine);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterGetSpans(DrawablePtr pDrawable, int wMax, DDXPointPtr ppt,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int *pwidth, int nspans, char *pdstStart);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterSourceValidate(DrawablePtr pDrawable, int x, int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int width, int height,
65fea56f17cd614bc8908264df980a62e1931468vboxsync unsigned int subWindowMode);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RegionPtr prgnSrc);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterClearToBackground(WindowPtr pWin, int x, int y, int w,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int h, Bool generateExposures);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic PixmapPtr VGAarbiterCreatePixmap(ScreenPtr pScreen, int w, int h,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int depth, unsigned int usage_hint);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterCreateGC(GCPtr pGC);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterSaveScreen(ScreenPtr pScreen, Bool unblank);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterStoreColors(ColormapPtr pmap, int ndef, xColorItem
65fea56f17cd614bc8908264df980a62e1931468vboxsync * pdefs);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterRecolorCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CursorPtr pCurs, Bool displayed);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterRealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CursorPtr pCursor);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CursorPtr pCursor);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CursorPtr pCursor);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterSetCursorPosition(DeviceIntPtr pDev, ScreenPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsync pScreen, int x, int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool generateEvent);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterEnterVT(ScrnInfoPtr pScrn);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterLeaveVT(ScrnInfoPtr pScrn);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterFreeScreen(ScrnInfoPtr pScrn);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* GC funcs */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterValidateGC(GCPtr pGC, unsigned long changes,
65fea56f17cd614bc8908264df980a62e1931468vboxsync DrawablePtr pDraw);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterChangeGC(GCPtr pGC, unsigned long mask);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterCopyGC(GCPtr pGCSrc, unsigned long mask, GCPtr pGCDst);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterDestroyGC(GCPtr pGC);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterChangeClip(GCPtr pGC, int type, pointer pvalue,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nrects);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterDestroyClip(GCPtr pGC);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterCopyClip(GCPtr pgcDst, GCPtr pgcSrc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* GC ops */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterFillSpans(DrawablePtr pDraw, GC * pGC, int nInit,
65fea56f17cd614bc8908264df980a62e1931468vboxsync DDXPointPtr pptInit, int *pwidthInit,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int fSorted);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterSetSpans(DrawablePtr pDraw, GCPtr pGC, char *pcharsrc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync register DDXPointPtr ppt, int *pwidth,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nspans, int fSorted);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPutImage(DrawablePtr pDraw, GCPtr pGC, int depth, int x,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int y, int w, int h, int leftPad, int format,
65fea56f17cd614bc8908264df980a62e1931468vboxsync char *pImage);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic RegionPtr VGAarbiterCopyArea(DrawablePtr pSrc, DrawablePtr pDst,
65fea56f17cd614bc8908264df980a62e1931468vboxsync GC * pGC, int srcx, int srcy, int width,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int height, int dstx, int dsty);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic RegionPtr VGAarbiterCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
65fea56f17cd614bc8908264df980a62e1931468vboxsync GCPtr pGC, int srcx, int srcy, int width,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int height, int dstx, int dsty,
65fea56f17cd614bc8908264df980a62e1931468vboxsync unsigned long bitPlane);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolyPoint(DrawablePtr pDraw, GCPtr pGC, int mode, int npt,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xPoint * pptInit);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolylines(DrawablePtr pDraw, GCPtr pGC, int mode, int npt,
65fea56f17cd614bc8908264df980a62e1931468vboxsync DDXPointPtr pptInit);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolySegment(DrawablePtr pDraw, GCPtr pGC, int nseg,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xSegment * pSeg);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolyRectangle(DrawablePtr pDraw, GCPtr pGC,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nRectsInit, xRectangle *pRectsInit);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolyArc(DrawablePtr pDraw, GCPtr pGC, int narcs,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xArc * parcs);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterFillPolygon(DrawablePtr pDraw, GCPtr pGC, int shape,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int mode, int count, DDXPointPtr ptsIn);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolyFillRect(DrawablePtr pDraw, GCPtr pGC, int nrectFill,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xRectangle *prectInit);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolyFillArc(DrawablePtr pDraw, GCPtr pGC, int narcs,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xArc * parcs);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic int VGAarbiterPolyText8(DrawablePtr pDraw, GCPtr pGC, int x, int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int count, char *chars);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic int VGAarbiterPolyText16(DrawablePtr pDraw, GCPtr pGC, int x, int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int count, unsigned short *chars);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterImageText8(DrawablePtr pDraw, GCPtr pGC, int x, int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int count, char *chars);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterImageText16(DrawablePtr pDraw, GCPtr pGC, int x, int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int count, unsigned short *chars);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterImageGlyphBlt(DrawablePtr pDraw, GCPtr pGC, int xInit,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int yInit, unsigned int nglyph,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CharInfoPtr * ppci, pointer pglyphBase);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPolyGlyphBlt(DrawablePtr pDraw, GCPtr pGC, int xInit,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int yInit, unsigned int nglyph,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CharInfoPtr * ppci, pointer pglyphBase);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr
65fea56f17cd614bc8908264df980a62e1931468vboxsync pDraw, int dx, int dy, int xOrg, int yOrg);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* miSpriteFuncs */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterSpriteRealizeCursor(DeviceIntPtr pDev, ScreenPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsync pScreen, CursorPtr pCur);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsync pScreen, CursorPtr pCur);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterSpriteSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CursorPtr pCur, int x, int y);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterSpriteMoveCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int x, int y);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic Bool VGAarbiterDeviceCursorInitialize(DeviceIntPtr pDev,
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask,
65fea56f17cd614bc8908264df980a62e1931468vboxsync PicturePtr pDst, INT16 xSrc, INT16 ySrc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync INT16 xMask, INT16 yMask, INT16 xDst,
65fea56f17cd614bc8908264df980a62e1931468vboxsync INT16 yDst, CARD16 width, CARD16 height);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterGlyphs(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
65fea56f17cd614bc8908264df980a62e1931468vboxsync PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nlist, GlyphListPtr list, GlyphPtr * glyphs);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic void VGAarbiterCompositeRects(CARD8 op, PicturePtr pDst,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xRenderColor * color, int nRect,
65fea56f17cd614bc8908264df980a62e1931468vboxsync xRectangle *rects);