26456d1900aba0e903e6e1beec552396618322e2vboxsync/*
26456d1900aba0e903e6e1beec552396618322e2vboxsync *
26456d1900aba0e903e6e1beec552396618322e2vboxsync * Copyright (C) 2000 Keith Packard, member of The XFree86 Project, Inc.
26456d1900aba0e903e6e1beec552396618322e2vboxsync * 2005 Zack Rusin, Trolltech
26456d1900aba0e903e6e1beec552396618322e2vboxsync *
26456d1900aba0e903e6e1beec552396618322e2vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
26456d1900aba0e903e6e1beec552396618322e2vboxsync * documentation for any purpose is hereby granted without fee, provided that
26456d1900aba0e903e6e1beec552396618322e2vboxsync * the above copyright notice appear in all copies and that both that
26456d1900aba0e903e6e1beec552396618322e2vboxsync * copyright notice and this permission notice appear in supporting
26456d1900aba0e903e6e1beec552396618322e2vboxsync * documentation, and that the name of Keith Packard not be used in
26456d1900aba0e903e6e1beec552396618322e2vboxsync * advertising or publicity pertaining to distribution of the software without
26456d1900aba0e903e6e1beec552396618322e2vboxsync * specific, written prior permission. Keith Packard makes no
26456d1900aba0e903e6e1beec552396618322e2vboxsync * representations about the suitability of this software for any purpose. It
26456d1900aba0e903e6e1beec552396618322e2vboxsync * is provided "as is" without express or implied warranty.
26456d1900aba0e903e6e1beec552396618322e2vboxsync *
26456d1900aba0e903e6e1beec552396618322e2vboxsync * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
26456d1900aba0e903e6e1beec552396618322e2vboxsync * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
26456d1900aba0e903e6e1beec552396618322e2vboxsync * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
26456d1900aba0e903e6e1beec552396618322e2vboxsync * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
26456d1900aba0e903e6e1beec552396618322e2vboxsync * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
26456d1900aba0e903e6e1beec552396618322e2vboxsync * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
26456d1900aba0e903e6e1beec552396618322e2vboxsync * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
26456d1900aba0e903e6e1beec552396618322e2vboxsync * SOFTWARE.
26456d1900aba0e903e6e1beec552396618322e2vboxsync */
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifndef EXAPRIV_H
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define EXAPRIV_H
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifdef HAVE_XORG_CONFIG_H
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include <xorg-config.h>
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "exa.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include <X11/X.h>
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define NEED_EVENTS
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include <X11/Xproto.h>
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "scrnintstr.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "pixmapstr.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "windowstr.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "servermd.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "mibstore.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "colormapst.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "gcstruct.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "input.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "mipointer.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "mi.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "dix.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "fb.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "fboverlay.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifdef RENDER
26456d1900aba0e903e6e1beec552396618322e2vboxsync#include "fbpict.h"
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define DEBUG_TRACE_FALL 0
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define DEBUG_MIGRATE 0
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define DEBUG_PIXMAP 0
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define DEBUG_OFFSCREEN 0
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#if DEBUG_TRACE_FALL
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync#define EXA_FALLBACK(x) \
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsyncdo { \
26456d1900aba0e903e6e1beec552396618322e2vboxsync ErrorF("EXA fallback at %s: ", __FUNCTION__); \
26456d1900aba0e903e6e1beec552396618322e2vboxsync ErrorF x; \
26456d1900aba0e903e6e1beec552396618322e2vboxsync} while (0)
26456d1900aba0e903e6e1beec552396618322e2vboxsync#else
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define EXA_FALLBACK(x)
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifndef EXA_MAX_FB
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define EXA_MAX_FB FB_OVERLAY_MAX
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsynctypedef void (*EnableDisableFBAccessProcPtr)(int, Bool);
26456d1900aba0e903e6e1beec552396618322e2vboxsynctypedef struct {
26456d1900aba0e903e6e1beec552396618322e2vboxsync ExaDriverPtr info;
26456d1900aba0e903e6e1beec552396618322e2vboxsync CreateGCProcPtr SavedCreateGC;
26456d1900aba0e903e6e1beec552396618322e2vboxsync CloseScreenProcPtr SavedCloseScreen;
26456d1900aba0e903e6e1beec552396618322e2vboxsync GetImageProcPtr SavedGetImage;
26456d1900aba0e903e6e1beec552396618322e2vboxsync GetSpansProcPtr SavedGetSpans;
26456d1900aba0e903e6e1beec552396618322e2vboxsync PaintWindowBackgroundProcPtr SavedPaintWindowBackground;
26456d1900aba0e903e6e1beec552396618322e2vboxsync CreatePixmapProcPtr SavedCreatePixmap;
26456d1900aba0e903e6e1beec552396618322e2vboxsync DestroyPixmapProcPtr SavedDestroyPixmap;
26456d1900aba0e903e6e1beec552396618322e2vboxsync PaintWindowBorderProcPtr SavedPaintWindowBorder;
26456d1900aba0e903e6e1beec552396618322e2vboxsync CopyWindowProcPtr SavedCopyWindow;
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifdef RENDER
26456d1900aba0e903e6e1beec552396618322e2vboxsync CompositeProcPtr SavedComposite;
26456d1900aba0e903e6e1beec552396618322e2vboxsync GlyphsProcPtr SavedGlyphs;
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync EnableDisableFBAccessProcPtr SavedEnableDisableFBAccess;
26456d1900aba0e903e6e1beec552396618322e2vboxsync Bool wrappedEnableDisableFB;
26456d1900aba0e903e6e1beec552396618322e2vboxsync Bool swappedOut;
26456d1900aba0e903e6e1beec552396618322e2vboxsync} ExaScreenPrivRec, *ExaScreenPrivPtr;
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync/*
26456d1900aba0e903e6e1beec552396618322e2vboxsync * This is the only completely portable way to
26456d1900aba0e903e6e1beec552396618322e2vboxsync * compute this info.
26456d1900aba0e903e6e1beec552396618322e2vboxsync */
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifndef BitsPerPixel
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define BitsPerPixel(d) (\
26456d1900aba0e903e6e1beec552396618322e2vboxsync PixmapWidthPaddingInfo[d].notPower2 ? \
26456d1900aba0e903e6e1beec552396618322e2vboxsync (PixmapWidthPaddingInfo[d].bytesPerPixel * 8) : \
26456d1900aba0e903e6e1beec552396618322e2vboxsync ((1 << PixmapWidthPaddingInfo[d].padBytesLog2) * 8 / \
26456d1900aba0e903e6e1beec552396618322e2vboxsync (PixmapWidthPaddingInfo[d].padRoundUp+1)))
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncextern int exaScreenPrivateIndex;
26456d1900aba0e903e6e1beec552396618322e2vboxsyncextern int exaPixmapPrivateIndex;
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define ExaGetScreenPriv(s) ((ExaScreenPrivPtr)(s)->devPrivates[exaScreenPrivateIndex].ptr)
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define ExaScreenPriv(s) ExaScreenPrivPtr pExaScr = ExaGetScreenPriv(s)
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define ExaGetPixmapPriv(p) ((ExaPixmapPrivPtr)(p)->devPrivates[exaPixmapPrivateIndex].ptr)
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define ExaSetPixmapPriv(p,a) ((p)->devPrivates[exaPixmapPrivateIndex].ptr = (pointer) (a))
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define ExaPixmapPriv(p) ExaPixmapPrivPtr pExaPixmap = ExaGetPixmapPriv(p)
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsynctypedef struct {
26456d1900aba0e903e6e1beec552396618322e2vboxsync ExaOffscreenArea *area;
26456d1900aba0e903e6e1beec552396618322e2vboxsync int score;
26456d1900aba0e903e6e1beec552396618322e2vboxsync int devKind;
26456d1900aba0e903e6e1beec552396618322e2vboxsync DevUnion devPrivate;
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync /* If area is NULL, then dirty == TRUE means that the pixmap has been
26456d1900aba0e903e6e1beec552396618322e2vboxsync * modified, so the contents are defined. Used to avoid uploads of
26456d1900aba0e903e6e1beec552396618322e2vboxsync * undefined data.
26456d1900aba0e903e6e1beec552396618322e2vboxsync * If area is non-NULL, then dirty == TRUE means that the in-framebuffer
26456d1900aba0e903e6e1beec552396618322e2vboxsync * copy has been changed from the system-memory copy. Used to avoid
26456d1900aba0e903e6e1beec552396618322e2vboxsync * downloads of unmodified data.
26456d1900aba0e903e6e1beec552396618322e2vboxsync */
26456d1900aba0e903e6e1beec552396618322e2vboxsync Bool dirty;
26456d1900aba0e903e6e1beec552396618322e2vboxsync unsigned int size;
26456d1900aba0e903e6e1beec552396618322e2vboxsync} ExaPixmapPrivRec, *ExaPixmapPrivPtr;
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync/* exaasync.c */
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckFillSpans (DrawablePtr pDrawable, GCPtr pGC, int nspans,
26456d1900aba0e903e6e1beec552396618322e2vboxsync DDXPointPtr ppt, int *pwidth, int fSorted);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckSetSpans (DrawablePtr pDrawable, GCPtr pGC, char *psrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync DDXPointPtr ppt, int *pwidth, int nspans, int fSorted);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int x, int y, int w, int h, int leftPad, int format,
26456d1900aba0e903e6e1beec552396618322e2vboxsync char *bits);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncRegionPtr
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckCopyArea (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int srcx, int srcy, int w, int h, int dstx, int dsty);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncRegionPtr
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckCopyPlane (DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int srcx, int srcy, int w, int h, int dstx, int dsty,
26456d1900aba0e903e6e1beec552396618322e2vboxsync unsigned long bitPlane);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolyPoint (DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
26456d1900aba0e903e6e1beec552396618322e2vboxsync DDXPointPtr pptInit);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolylines (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int mode, int npt, DDXPointPtr ppt);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolySegment (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int nsegInit, xSegment *pSegInit);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolyRectangle (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int nrects, xRectangle *prect);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolyArc (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int narcs, xArc *pArcs);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#define ExaCheckFillPolygon miFillPolygon
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolyFillRect (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int nrect, xRectangle *prect);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolyFillArc (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int narcs, xArc *pArcs);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int x, int y, unsigned int nglyph,
26456d1900aba0e903e6e1beec552396618322e2vboxsync CharInfoPtr *ppci, pointer pglyphBase);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPolyGlyphBlt (DrawablePtr pDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int x, int y, unsigned int nglyph,
26456d1900aba0e903e6e1beec552396618322e2vboxsync CharInfoPtr *ppci, pointer pglyphBase);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPushPixels (GCPtr pGC, PixmapPtr pBitmap,
26456d1900aba0e903e6e1beec552396618322e2vboxsync DrawablePtr pDrawable,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int w, int h, int x, int y);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckGetImage (DrawablePtr pDrawable,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int x, int y, int w, int h,
26456d1900aba0e903e6e1beec552396618322e2vboxsync unsigned int format, unsigned long planeMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync char *d);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckGetSpans (DrawablePtr pDrawable,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int wMax,
26456d1900aba0e903e6e1beec552396618322e2vboxsync DDXPointPtr ppt,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int *pwidth,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int nspans,
26456d1900aba0e903e6e1beec552396618322e2vboxsync char *pdstStart);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckSaveAreas (PixmapPtr pPixmap,
26456d1900aba0e903e6e1beec552396618322e2vboxsync RegionPtr prgnSave,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int xorg,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int yorg,
26456d1900aba0e903e6e1beec552396618322e2vboxsync WindowPtr pWin);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckRestoreAreas (PixmapPtr pPixmap,
26456d1900aba0e903e6e1beec552396618322e2vboxsync RegionPtr prgnSave,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int xorg,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int yorg,
26456d1900aba0e903e6e1beec552396618322e2vboxsync WindowPtr pWin);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckPaintWindow (WindowPtr pWin, RegionPtr pRegion, int what);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncextern const GCOps exaAsyncPixmapGCOps;
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#ifdef RENDER
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaCheckComposite (CARD8 op,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pSrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xSrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 ySrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 yMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 yDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync CARD16 width,
26456d1900aba0e903e6e1beec552396618322e2vboxsync CARD16 height);
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync/* exaoffscreen.c */
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaOffscreenMarkUsed (PixmapPtr pPixmap);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaOffscreenSwapOut (ScreenPtr pScreen);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaOffscreenSwapIn (ScreenPtr pScreen);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncExaOffscreenFini (ScreenPtr pScreen);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaEnableDisableFBAccess (int index, Bool enable);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync/* exa.c */
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaDrawableUseScreen(DrawablePtr pDrawable);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaDrawableUseMemory(DrawablePtr pDrawable);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaPixmapUseScreen (PixmapPtr pPixmap);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaPixmapUseMemory (PixmapPtr pPixmap);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaPrepareAccess(DrawablePtr pDrawable, int index);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaFinishAccess(DrawablePtr pDrawable, int index);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaDrawableDirty(DrawablePtr pDrawable);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncBool
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaDrawableIsOffscreen (DrawablePtr pDrawable);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncBool
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaPixmapIsOffscreen(PixmapPtr p);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncPixmapPtr
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaGetOffscreenPixmap (DrawablePtr pDrawable, int *xp, int *yp);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaMoveInPixmap (PixmapPtr pPixmap);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncRegionPtr
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaCopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int srcx, int srcy, int width, int height, int dstx, int dsty);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaCopyNtoN (DrawablePtr pSrcDrawable,
26456d1900aba0e903e6e1beec552396618322e2vboxsync DrawablePtr pDstDrawable,
26456d1900aba0e903e6e1beec552396618322e2vboxsync GCPtr pGC,
26456d1900aba0e903e6e1beec552396618322e2vboxsync BoxPtr pbox,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int nbox,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int dx,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int dy,
26456d1900aba0e903e6e1beec552396618322e2vboxsync Bool reverse,
26456d1900aba0e903e6e1beec552396618322e2vboxsync Bool upsidedown,
26456d1900aba0e903e6e1beec552396618322e2vboxsync Pixel bitplane,
26456d1900aba0e903e6e1beec552396618322e2vboxsync void *closure);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaComposite(CARD8 op,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pSrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xSrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 ySrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 yMask,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 yDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync CARD16 width,
26456d1900aba0e903e6e1beec552396618322e2vboxsync CARD16 height);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsyncvoid
26456d1900aba0e903e6e1beec552396618322e2vboxsyncexaGlyphs (CARD8 op,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pSrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PicturePtr pDst,
26456d1900aba0e903e6e1beec552396618322e2vboxsync PictFormatPtr maskFormat,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 xSrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync INT16 ySrc,
26456d1900aba0e903e6e1beec552396618322e2vboxsync int nlist,
26456d1900aba0e903e6e1beec552396618322e2vboxsync GlyphListPtr list,
26456d1900aba0e903e6e1beec552396618322e2vboxsync GlyphPtr *glyphs);
26456d1900aba0e903e6e1beec552396618322e2vboxsync
26456d1900aba0e903e6e1beec552396618322e2vboxsync#endif /* EXAPRIV_H */
26456d1900aba0e903e6e1beec552396618322e2vboxsync