diff options
Diffstat (limited to 'hw/xfree86/xaa/xaaOverlayDF.c')
-rw-r--r-- | hw/xfree86/xaa/xaaOverlayDF.c | 906 |
1 files changed, 0 insertions, 906 deletions
diff --git a/hw/xfree86/xaa/xaaOverlayDF.c b/hw/xfree86/xaa/xaaOverlayDF.c deleted file mode 100644 index 470694cbd..000000000 --- a/hw/xfree86/xaa/xaaOverlayDF.c +++ /dev/null @@ -1,906 +0,0 @@ -/* - Copyright (c) 1999 - The XFree86 Project Inc. - - Written by Mark Vojkovich -*/ - -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - -#include "misc.h" -#include "xf86.h" -#include "xf86_OSproc.h" - -#include <X11/X.h> -#include "scrnintstr.h" -#include "pixmapstr.h" -#include "windowstr.h" -#include "xf86str.h" -#include "mi.h" -#include "miline.h" -#include "xaa.h" -#include "xaalocal.h" -#include "xaawrap.h" -#include "servermd.h" - -/* Screen funcs */ - -static void XAAOverCopyWindow(WindowPtr, DDXPointRec, RegionPtr); -static void XAAOverWindowExposures(WindowPtr, RegionPtr, RegionPtr); - -static int XAAOverStippledFillChooser(GCPtr); -static int XAAOverOpaqueStippledFillChooser(GCPtr); -static int XAAOverTiledFillChooser(GCPtr); - -/* GC funcs */ - -static RegionPtr XAAOverCopyArea(DrawablePtr, DrawablePtr, GC *, - int, int, int, int, int, int); -static RegionPtr XAAOverCopyPlane(DrawablePtr, DrawablePtr, GCPtr, - int, int, int, int, int, int, unsigned long); -static void XAAOverPushPixelsSolid(GCPtr, PixmapPtr, DrawablePtr, int, - int, int, int); -static void XAAOverPolyFillRectSolid(DrawablePtr, GCPtr, int, xRectangle *); -static void XAAOverPolyFillRectStippled(DrawablePtr, GCPtr, int, xRectangle *); -static void XAAOverPolyFillRectOpaqueStippled(DrawablePtr, GCPtr, - int, xRectangle *); -static void XAAOverPolyFillRectTiled(DrawablePtr, GCPtr, int, xRectangle *); -static void XAAOverFillSpansSolid(DrawablePtr, GCPtr, int, DDXPointPtr, - int *, int); -static void XAAOverFillSpansStippled(DrawablePtr, GCPtr, int, DDXPointPtr, - int *, int); -static void XAAOverFillSpansOpaqueStippled(DrawablePtr, GCPtr, int, - DDXPointPtr, int *, int); -static void XAAOverFillSpansTiled(DrawablePtr, GCPtr, int, DDXPointPtr, - int *, int); -static int XAAOverPolyText8TE(DrawablePtr, GCPtr, int, int, int, char *); -static int XAAOverPolyText16TE(DrawablePtr, GCPtr, int, int, int, - unsigned short *); -static void XAAOverImageText8TE(DrawablePtr, GCPtr, int, int, int, char *); -static void XAAOverImageText16TE(DrawablePtr, GCPtr, int, int, int, - unsigned short *); -static void XAAOverImageGlyphBltTE(DrawablePtr, GCPtr, int, int, - unsigned int, CharInfoPtr *, pointer); -static void XAAOverPolyGlyphBltTE(DrawablePtr, GCPtr, int, int, - unsigned int, CharInfoPtr *, pointer); -static int XAAOverPolyText8NonTE(DrawablePtr, GCPtr, int, int, int, char *); -static int XAAOverPolyText16NonTE(DrawablePtr, GCPtr, int, int, int, - unsigned short *); -static void XAAOverImageText8NonTE(DrawablePtr, GCPtr, int, int, int, char *); -static void XAAOverImageText16NonTE(DrawablePtr, GCPtr, int, int, int, - unsigned short *); -static void XAAOverImageGlyphBltNonTE(DrawablePtr, GCPtr, int, int, - unsigned int, CharInfoPtr *, pointer); -static void XAAOverPolyGlyphBltNonTE(DrawablePtr, GCPtr, int, int, - unsigned int, CharInfoPtr *, pointer); -static void XAAOverPolyRectangleThinSolid(DrawablePtr, GCPtr, int, - xRectangle *); -static void XAAOverPolylinesWideSolid(DrawablePtr, GCPtr, int, int, - DDXPointPtr); -static void XAAOverPolylinesThinSolid(DrawablePtr, GCPtr, int, int, - DDXPointPtr); -static void XAAOverPolySegmentThinSolid(DrawablePtr, GCPtr, int, xSegment *); -static void XAAOverPolylinesThinDashed(DrawablePtr, GCPtr, int, int, - DDXPointPtr); -static void XAAOverPolySegmentThinDashed(DrawablePtr, GCPtr, int, xSegment *); -static void XAAOverFillPolygonSolid(DrawablePtr, GCPtr, int, int, int, - DDXPointPtr); -static void XAAOverFillPolygonStippled(DrawablePtr, GCPtr, int, int, int, - DDXPointPtr); -static void XAAOverFillPolygonOpaqueStippled(DrawablePtr, GCPtr, int, int, int, - DDXPointPtr); -static void XAAOverFillPolygonTiled(DrawablePtr, GCPtr, int, int, int, - DDXPointPtr); -static void XAAOverPolyFillArcSolid(DrawablePtr, GCPtr, int, xArc *); -static void XAAOverPutImage(DrawablePtr, GCPtr, int, int, int, int, int, - int, int, char *); - -typedef struct { - ScrnInfoPtr pScrn; - DepthChangeFuncPtr callback; - int currentDepth; -/* GC funcs */ - RegionPtr (*CopyArea) (DrawablePtr, DrawablePtr, GC *, - int, int, int, int, int, int); - RegionPtr (*CopyPlane) (DrawablePtr, DrawablePtr, GCPtr, - int, int, int, int, int, int, unsigned long); - void (*PushPixelsSolid) (GCPtr, PixmapPtr, DrawablePtr, int, int, int, int); - void (*PolyFillRectSolid) (DrawablePtr, GCPtr, int, xRectangle *); - void (*PolyFillRectStippled) (DrawablePtr, GCPtr, int, xRectangle *); - void (*PolyFillRectOpaqueStippled) (DrawablePtr, GCPtr, int, xRectangle *); - void (*PolyFillRectTiled) (DrawablePtr, GCPtr, int, xRectangle *); - void (*FillSpansSolid) (DrawablePtr, GCPtr, int, DDXPointPtr, int *, int); - void (*FillSpansStippled) (DrawablePtr, GCPtr, int, DDXPointPtr, int *, - int); - void (*FillSpansOpaqueStippled) (DrawablePtr, GCPtr, int, DDXPointPtr, - int *, int); - void (*FillSpansTiled) (DrawablePtr, GCPtr, int, DDXPointPtr, int *, int); - int (*PolyText8TE) (DrawablePtr, GCPtr, int, int, int, char *); - int (*PolyText16TE) (DrawablePtr, GCPtr, int, int, int, unsigned short *); - void (*ImageText8TE) (DrawablePtr, GCPtr, int, int, int, char *); - void (*ImageText16TE) (DrawablePtr, GCPtr, int, int, int, unsigned short *); - void (*ImageGlyphBltTE) (DrawablePtr, GCPtr, int, int, unsigned int, - CharInfoPtr *, pointer); - void (*PolyGlyphBltTE) (DrawablePtr, GCPtr, int, int, unsigned int, - CharInfoPtr *, pointer); - int (*PolyText8NonTE) (DrawablePtr, GCPtr, int, int, int, char *); - int (*PolyText16NonTE) (DrawablePtr, GCPtr, int, int, int, - unsigned short *); - void (*ImageText8NonTE) (DrawablePtr, GCPtr, int, int, int, char *); - void (*ImageText16NonTE) (DrawablePtr, GCPtr, int, int, int, - unsigned short *); - void (*ImageGlyphBltNonTE) (DrawablePtr, GCPtr, int, int, unsigned int, - CharInfoPtr *, pointer); - void (*PolyGlyphBltNonTE) (DrawablePtr, GCPtr, int, int, unsigned int, - CharInfoPtr *, pointer); - void (*PolyRectangleThinSolid) (DrawablePtr, GCPtr, int, xRectangle *); - void (*PolylinesWideSolid) (DrawablePtr, GCPtr, int, int, DDXPointPtr); - - void (*PolylinesThinSolid) (DrawablePtr, GCPtr, int, int, DDXPointPtr); - void (*PolySegmentThinSolid) (DrawablePtr, GCPtr, int, xSegment *); - void (*PolylinesThinDashed) (DrawablePtr, GCPtr, int, int, DDXPointPtr); - void (*PolySegmentThinDashed) (DrawablePtr, GCPtr, int, xSegment *); - void (*FillPolygonSolid) (DrawablePtr, GCPtr, int, int, int, DDXPointPtr); - void (*FillPolygonStippled) (DrawablePtr, GCPtr, int, int, int, - DDXPointPtr); - void (*FillPolygonOpaqueStippled) (DrawablePtr, GCPtr, int, int, int, - DDXPointPtr); - void (*FillPolygonTiled) (DrawablePtr, GCPtr, int, int, int, DDXPointPtr); - void (*PolyFillArcSolid) (DrawablePtr, GCPtr, int, xArc *); - void (*PutImage) (DrawablePtr, GCPtr, int, int, int, int, int, int, - int, char *); - int (*StippledFillChooser) (GCPtr); - int (*OpaqueStippledFillChooser) (GCPtr); - int (*TiledFillChooser) (GCPtr); -} XAAOverlayRec, *XAAOverlayPtr; - -static DevPrivateKeyRec XAAOverlayKeyRec; - -#define XAAOverlayKey (&XAAOverlayKeyRec) - -#define GET_OVERLAY_PRIV(pScreen) \ - (XAAOverlayPtr)dixLookupPrivate(&(pScreen)->devPrivates, XAAOverlayKey) - -#define SWITCH_DEPTH(d) \ - if(pOverPriv->currentDepth != d) { \ - (*pOverPriv->callback)(pOverPriv->pScrn, d); \ - pOverPriv->currentDepth = d; \ - } - -Bool -XAAInitDualFramebufferOverlay(ScreenPtr pScreen, DepthChangeFuncPtr callback) -{ - ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); - XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); - XAAOverlayPtr pOverPriv; - - if (!dixRegisterPrivateKey(&XAAOverlayKeyRec, PRIVATE_SCREEN, 0)) - return FALSE; - - if (!(pOverPriv = malloc(sizeof(XAAOverlayRec)))) - return FALSE; - - dixSetPrivate(&pScreen->devPrivates, XAAOverlayKey, pOverPriv); - - pOverPriv->pScrn = pScrn; - pOverPriv->callback = callback; - pOverPriv->currentDepth = -1; - - /* Overwrite key screen functions. The XAA core will clean up */ - - pScreen->CopyWindow = XAAOverCopyWindow; - pScreen->WindowExposures = XAAOverWindowExposures; - - pOverPriv->StippledFillChooser = infoRec->StippledFillChooser; - pOverPriv->OpaqueStippledFillChooser = infoRec->OpaqueStippledFillChooser; - pOverPriv->TiledFillChooser = infoRec->TiledFillChooser; - - infoRec->StippledFillChooser = XAAOverStippledFillChooser; - infoRec->OpaqueStippledFillChooser = XAAOverOpaqueStippledFillChooser; - infoRec->TiledFillChooser = XAAOverTiledFillChooser; - - /* wrap all XAA GC rendering */ - - pOverPriv->CopyArea = infoRec->CopyArea; - pOverPriv->CopyPlane = infoRec->CopyPlane; - pOverPriv->PushPixelsSolid = infoRec->PushPixelsSolid; - pOverPriv->PolyFillRectSolid = infoRec->PolyFillRectSolid; - pOverPriv->PolyFillRectStippled = infoRec->PolyFillRectStippled; - pOverPriv->PolyFillRectOpaqueStippled = infoRec->PolyFillRectOpaqueStippled; - pOverPriv->PolyFillRectTiled = infoRec->PolyFillRectTiled; - pOverPriv->FillSpansSolid = infoRec->FillSpansSolid; - pOverPriv->FillSpansStippled = infoRec->FillSpansStippled; - pOverPriv->FillSpansOpaqueStippled = infoRec->FillSpansOpaqueStippled; - pOverPriv->FillSpansTiled = infoRec->FillSpansTiled; - pOverPriv->PolyText8TE = infoRec->PolyText8TE; - pOverPriv->PolyText16TE = infoRec->PolyText16TE; - pOverPriv->ImageText8TE = infoRec->ImageText8TE; - pOverPriv->ImageText16TE = infoRec->ImageText16TE; - pOverPriv->ImageGlyphBltTE = infoRec->ImageGlyphBltTE; - pOverPriv->PolyGlyphBltTE = infoRec->PolyGlyphBltTE; - pOverPriv->PolyText8NonTE = infoRec->PolyText8NonTE; - pOverPriv->PolyText16NonTE = infoRec->PolyText16NonTE; - pOverPriv->ImageText8NonTE = infoRec->ImageText8NonTE; - pOverPriv->ImageText16NonTE = infoRec->ImageText16NonTE; - pOverPriv->ImageGlyphBltNonTE = infoRec->ImageGlyphBltNonTE; - pOverPriv->PolyGlyphBltNonTE = infoRec->PolyGlyphBltNonTE; - pOverPriv->PolyRectangleThinSolid = infoRec->PolyRectangleThinSolid; - pOverPriv->PolylinesWideSolid = infoRec->PolylinesWideSolid; - pOverPriv->PolylinesThinSolid = infoRec->PolylinesThinSolid; - pOverPriv->PolySegmentThinSolid = infoRec->PolySegmentThinSolid; - pOverPriv->PolylinesThinDashed = infoRec->PolylinesThinDashed; - pOverPriv->PolySegmentThinDashed = infoRec->PolySegmentThinDashed; - pOverPriv->FillPolygonSolid = infoRec->FillPolygonSolid; - pOverPriv->FillPolygonStippled = infoRec->FillPolygonStippled; - pOverPriv->FillPolygonOpaqueStippled = infoRec->FillPolygonOpaqueStippled; - pOverPriv->FillPolygonTiled = infoRec->FillPolygonTiled; - pOverPriv->PolyFillArcSolid = infoRec->PolyFillArcSolid; - pOverPriv->PutImage = infoRec->PutImage; - - if (infoRec->CopyArea) - infoRec->CopyArea = XAAOverCopyArea; - if (infoRec->CopyPlane) - infoRec->CopyPlane = XAAOverCopyPlane; - if (infoRec->PushPixelsSolid) - infoRec->PushPixelsSolid = XAAOverPushPixelsSolid; - if (infoRec->PolyFillRectSolid) - infoRec->PolyFillRectSolid = XAAOverPolyFillRectSolid; - if (infoRec->PolyFillRectStippled) - infoRec->PolyFillRectStippled = XAAOverPolyFillRectStippled; - if (infoRec->PolyFillRectOpaqueStippled) - infoRec->PolyFillRectOpaqueStippled = XAAOverPolyFillRectOpaqueStippled; - if (infoRec->PolyFillRectTiled) - infoRec->PolyFillRectTiled = XAAOverPolyFillRectTiled; - if (infoRec->FillSpansSolid) - infoRec->FillSpansSolid = XAAOverFillSpansSolid; - if (infoRec->FillSpansStippled) - infoRec->FillSpansStippled = XAAOverFillSpansStippled; - if (infoRec->FillSpansOpaqueStippled) - infoRec->FillSpansOpaqueStippled = XAAOverFillSpansOpaqueStippled; - if (infoRec->FillSpansTiled) - infoRec->FillSpansTiled = XAAOverFillSpansTiled; - if (infoRec->PolyText8TE) - infoRec->PolyText8TE = XAAOverPolyText8TE; - if (infoRec->PolyText16TE) - infoRec->PolyText16TE = XAAOverPolyText16TE; - if (infoRec->ImageText8TE) - infoRec->ImageText8TE = XAAOverImageText8TE; - if (infoRec->ImageText16TE) - infoRec->ImageText16TE = XAAOverImageText16TE; - if (infoRec->ImageGlyphBltTE) - infoRec->ImageGlyphBltTE = XAAOverImageGlyphBltTE; - if (infoRec->PolyGlyphBltTE) - infoRec->PolyGlyphBltTE = XAAOverPolyGlyphBltTE; - if (infoRec->PolyText8NonTE) - infoRec->PolyText8NonTE = XAAOverPolyText8NonTE; - if (infoRec->PolyText16NonTE) - infoRec->PolyText16NonTE = XAAOverPolyText16NonTE; - if (infoRec->ImageText8NonTE) - infoRec->ImageText8NonTE = XAAOverImageText8NonTE; - if (infoRec->ImageText16NonTE) - infoRec->ImageText16NonTE = XAAOverImageText16NonTE; - if (infoRec->ImageGlyphBltNonTE) - infoRec->ImageGlyphBltNonTE = XAAOverImageGlyphBltNonTE; - if (infoRec->PolyGlyphBltNonTE) - infoRec->PolyGlyphBltNonTE = XAAOverPolyGlyphBltNonTE; - if (infoRec->PolyRectangleThinSolid) - infoRec->PolyRectangleThinSolid = XAAOverPolyRectangleThinSolid; - if (infoRec->PolylinesWideSolid) - infoRec->PolylinesWideSolid = XAAOverPolylinesWideSolid; - if (infoRec->PolylinesThinSolid) - infoRec->PolylinesThinSolid = XAAOverPolylinesThinSolid; - if (infoRec->PolySegmentThinSolid) - infoRec->PolySegmentThinSolid = XAAOverPolySegmentThinSolid; - if (infoRec->PolylinesThinDashed) - infoRec->PolylinesThinDashed = XAAOverPolylinesThinDashed; - if (infoRec->PolySegmentThinDashed) - infoRec->PolySegmentThinDashed = XAAOverPolySegmentThinDashed; - if (infoRec->FillPolygonSolid) - infoRec->FillPolygonSolid = XAAOverFillPolygonSolid; - if (infoRec->FillPolygonStippled) - infoRec->FillPolygonStippled = XAAOverFillPolygonStippled; - if (infoRec->FillPolygonOpaqueStippled) - infoRec->FillPolygonOpaqueStippled = XAAOverFillPolygonOpaqueStippled; - if (infoRec->FillPolygonTiled) - infoRec->FillPolygonTiled = XAAOverFillPolygonTiled; - if (infoRec->PolyFillArcSolid) - infoRec->PolyFillArcSolid = XAAOverPolyFillArcSolid; - if (infoRec->PutImage) - infoRec->PutImage = XAAOverPutImage; - - return TRUE; -} - -/*********************** Screen functions ************************/ - -void -XAAOverCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pScreen); - ScrnInfoPtr pScrn = infoRec->pScrn; - DDXPointPtr ppt, pptSrc; - RegionRec rgnDst; - BoxPtr pbox; - int i, nbox, dx, dy; - WindowPtr pRoot = pScreen->root; - - if (!pScrn->vtSema || !infoRec->ScreenToScreenBitBlt) { - XAA_SCREEN_PROLOGUE(pScreen, CopyWindow); - if (pScrn->vtSema && infoRec->NeedToSync) { - (*infoRec->Sync) (pScrn); - infoRec->NeedToSync = FALSE; - } - (*pScreen->CopyWindow) (pWin, ptOldOrg, prgnSrc); - XAA_SCREEN_EPILOGUE(pScreen, CopyWindow, XAAOverCopyWindow); - return; - } - - infoRec->ScratchGC.alu = GXcopy; - infoRec->ScratchGC.planemask = ~0; - - RegionNull(&rgnDst); - - dx = ptOldOrg.x - pWin->drawable.x; - dy = ptOldOrg.y - pWin->drawable.y; - RegionTranslate(prgnSrc, -dx, -dy); - RegionIntersect(&rgnDst, &pWin->borderClip, prgnSrc); - - nbox = RegionNumRects(&rgnDst); - if (nbox && (pptSrc = (DDXPointPtr) malloc(nbox * sizeof(DDXPointRec)))) { - - pbox = RegionRects(&rgnDst); - for (i = nbox, ppt = pptSrc; i--; ppt++, pbox++) { - ppt->x = pbox->x1 + dx; - ppt->y = pbox->y1 + dy; - } - - SWITCH_DEPTH(8); - XAADoBitBlt((DrawablePtr) pRoot, (DrawablePtr) pRoot, - &(infoRec->ScratchGC), &rgnDst, pptSrc); - - if (pWin->drawable.bitsPerPixel != 8) { - SWITCH_DEPTH(pScrn->depth); - XAADoBitBlt((DrawablePtr) pRoot, (DrawablePtr) pRoot, - &(infoRec->ScratchGC), &rgnDst, pptSrc); - } - - free(pptSrc); - } - - RegionUninit(&rgnDst); - - if (pWin->drawable.depth == 8) { - RegionNull(&rgnDst); - miSegregateChildren(pWin, &rgnDst, pScrn->depth); - if (RegionNotEmpty(&rgnDst)) { - RegionIntersect(&rgnDst, &rgnDst, prgnSrc); - nbox = RegionNumRects(&rgnDst); - if (nbox && - (pptSrc = (DDXPointPtr) malloc(nbox * sizeof(DDXPointRec)))) { - - pbox = RegionRects(&rgnDst); - for (i = nbox, ppt = pptSrc; i--; ppt++, pbox++) { - ppt->x = pbox->x1 + dx; - ppt->y = pbox->y1 + dy; - } - - SWITCH_DEPTH(pScrn->depth); - XAADoBitBlt((DrawablePtr) pRoot, (DrawablePtr) pRoot, - &(infoRec->ScratchGC), &rgnDst, pptSrc); - free(pptSrc); - } - } - RegionUninit(&rgnDst); - } -} - -void -XAAOverWindowExposures(WindowPtr pWin, RegionPtr pReg, RegionPtr pOtherReg) -{ - ScreenPtr pScreen = pWin->drawable.pScreen; - XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); - - if ((pWin->drawable.bitsPerPixel != 8) && infoRec->pScrn->vtSema) { - if (RegionNumRects(pReg) && infoRec->FillSolidRects) { - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pScreen); - - SWITCH_DEPTH(8); - (*infoRec->FillSolidRects) (infoRec->pScrn, - infoRec->pScrn->colorKey, GXcopy, ~0, - RegionNumRects(pReg), - RegionRects(pReg)); - miWindowExposures(pWin, pReg, pOtherReg); - return; - } - else if (infoRec->NeedToSync) { - (*infoRec->Sync) (infoRec->pScrn); - infoRec->NeedToSync = FALSE; - } - } - - XAA_SCREEN_PROLOGUE(pScreen, WindowExposures); - (*pScreen->WindowExposures) (pWin, pReg, pOtherReg); - XAA_SCREEN_EPILOGUE(pScreen, WindowExposures, XAAOverWindowExposures); -} - -/********************* Choosers *************************/ - -static int -XAAOverStippledFillChooser(GCPtr pGC) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - int ret; - - ret = (*pOverPriv->StippledFillChooser) (pGC); - - if ((pGC->depth == 8) && ((ret == DO_COLOR_8x8) || (ret == DO_CACHE_BLT))) { - ret = 0; - } - - return ret; -} - -static int -XAAOverOpaqueStippledFillChooser(GCPtr pGC) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - int ret; - - ret = (*pOverPriv->OpaqueStippledFillChooser) (pGC); - - if ((pGC->depth == 8) && ((ret == DO_COLOR_8x8) || (ret == DO_CACHE_BLT))) { - ret = 0; - } - - return ret; -} - -static int -XAAOverTiledFillChooser(GCPtr pGC) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - int ret; - - ret = (*pOverPriv->TiledFillChooser) (pGC); - - if ((pGC->depth == 8) && ((ret == DO_COLOR_8x8) || (ret == DO_CACHE_BLT))) { - ret = 0; - } - - return ret; -} - -/**************************** GC Functions **************************/ - -static RegionPtr -XAAOverCopyArea(DrawablePtr pSrc, - DrawablePtr pDst, - GC * pGC, - int srcx, int srcy, int width, int height, int dstx, int dsty) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - return (*pOverPriv->CopyArea) (pSrc, pDst, - pGC, srcx, srcy, width, height, dstx, dsty); -} - -static RegionPtr -XAAOverCopyPlane(DrawablePtr pSrc, - DrawablePtr pDst, - GCPtr pGC, - int srcx, int srcy, - int width, int height, - int dstx, int dsty, unsigned long bitPlane) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - return (*pOverPriv->CopyPlane) (pSrc, pDst, - pGC, srcx, srcy, width, height, dstx, dsty, - bitPlane); - -} - -static void -XAAOverPushPixelsSolid(GCPtr pGC, - PixmapPtr pBitMap, - DrawablePtr pDraw, int dx, int dy, int xOrg, int yOrg) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PushPixelsSolid) (pGC, pBitMap, pDraw, dx, dy, xOrg, yOrg); -} - -static void -XAAOverPolyFillRectSolid(DrawablePtr pDraw, - GCPtr pGC, int nrectFill, xRectangle *prectInit) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyFillRectSolid) (pDraw, pGC, nrectFill, prectInit); -} - -static void -XAAOverPolyFillRectStippled(DrawablePtr pDraw, - GCPtr pGC, int nrectFill, xRectangle *prectInit) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyFillRectStippled) (pDraw, pGC, nrectFill, prectInit); -} - -static void -XAAOverPolyFillRectOpaqueStippled(DrawablePtr pDraw, - GCPtr pGC, - int nrectFill, xRectangle *prectInit) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyFillRectOpaqueStippled) (pDraw, pGC, nrectFill, prectInit); -} - -static void -XAAOverPolyFillRectTiled(DrawablePtr pDraw, - GCPtr pGC, int nrectFill, xRectangle *prectInit) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyFillRectTiled) (pDraw, pGC, nrectFill, prectInit); -} - -static void -XAAOverFillSpansSolid(DrawablePtr pDraw, - GCPtr pGC, - int nInit, DDXPointPtr ppt, int *pwidth, int fSorted) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillSpansSolid) (pDraw, pGC, nInit, ppt, pwidth, fSorted); -} - -static void -XAAOverFillSpansStippled(DrawablePtr pDraw, - GCPtr pGC, - int nInit, DDXPointPtr ppt, int *pwidth, int fSorted) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillSpansStippled) (pDraw, pGC, nInit, ppt, pwidth, fSorted); -} - -static void -XAAOverFillSpansOpaqueStippled(DrawablePtr pDraw, - GCPtr pGC, - int nInit, - DDXPointPtr ppt, int *pwidth, int fSorted) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillSpansOpaqueStippled) (pDraw, pGC, nInit, ppt, pwidth, - fSorted); -} - -static void -XAAOverFillSpansTiled(DrawablePtr pDraw, - GCPtr pGC, - int nInit, DDXPointPtr ppt, int *pwidth, int fSorted) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillSpansTiled) (pDraw, pGC, nInit, ppt, pwidth, fSorted); -} - -static int -XAAOverPolyText8TE(DrawablePtr pDraw, - GCPtr pGC, int x, int y, int count, char *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - return (*pOverPriv->PolyText8TE) (pDraw, pGC, x, y, count, chars); -} - -static int -XAAOverPolyText16TE(DrawablePtr pDraw, - GCPtr pGC, int x, int y, int count, unsigned short *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - return (*pOverPriv->PolyText16TE) (pDraw, pGC, x, y, count, chars); -} - -static void -XAAOverImageText8TE(DrawablePtr pDraw, - GCPtr pGC, int x, int y, int count, char *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->ImageText8TE) (pDraw, pGC, x, y, count, chars); -} - -static void -XAAOverImageText16TE(DrawablePtr pDraw, - GCPtr pGC, int x, int y, int count, unsigned short *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->ImageText16TE) (pDraw, pGC, x, y, count, chars); -} - -static void -XAAOverImageGlyphBltTE(DrawablePtr pDraw, - GCPtr pGC, - int xInit, int yInit, - unsigned int nglyph, - CharInfoPtr * ppci, pointer pglyphBase) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->ImageGlyphBltTE) (pDraw, pGC, xInit, yInit, nglyph, ppci, - pglyphBase); -} - -static void -XAAOverPolyGlyphBltTE(DrawablePtr pDraw, - GCPtr pGC, - int xInit, int yInit, - unsigned int nglyph, - CharInfoPtr * ppci, pointer pglyphBase) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyGlyphBltTE) (pDraw, pGC, xInit, yInit, nglyph, ppci, - pglyphBase); -} - -static int -XAAOverPolyText8NonTE(DrawablePtr pDraw, - GCPtr pGC, int x, int y, int count, char *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - return (*pOverPriv->PolyText8NonTE) (pDraw, pGC, x, y, count, chars); -} - -static int -XAAOverPolyText16NonTE(DrawablePtr pDraw, - GCPtr pGC, - int x, int y, int count, unsigned short *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - return (*pOverPriv->PolyText16NonTE) (pDraw, pGC, x, y, count, chars); -} - -static void -XAAOverImageText8NonTE(DrawablePtr pDraw, - GCPtr pGC, int x, int y, int count, char *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->ImageText8NonTE) (pDraw, pGC, x, y, count, chars); -} - -static void -XAAOverImageText16NonTE(DrawablePtr pDraw, - GCPtr pGC, - int x, int y, int count, unsigned short *chars) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->ImageText16NonTE) (pDraw, pGC, x, y, count, chars); -} - -static void -XAAOverImageGlyphBltNonTE(DrawablePtr pDraw, - GCPtr pGC, - int xInit, int yInit, - unsigned int nglyph, - CharInfoPtr * ppci, pointer pglyphBase) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->ImageGlyphBltNonTE) (pDraw, pGC, xInit, yInit, nglyph, ppci, - pglyphBase); -} - -static void -XAAOverPolyGlyphBltNonTE(DrawablePtr pDraw, - GCPtr pGC, - int xInit, int yInit, - unsigned int nglyph, - CharInfoPtr * ppci, pointer pglyphBase) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyGlyphBltNonTE) (pDraw, pGC, xInit, yInit, nglyph, ppci, - pglyphBase); -} - -static void -XAAOverPolyRectangleThinSolid(DrawablePtr pDraw, - GCPtr pGC, int nRectsInit, xRectangle *pRectsInit) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyRectangleThinSolid) (pDraw, pGC, nRectsInit, pRectsInit); -} - -static void -XAAOverPolylinesWideSolid(DrawablePtr pDraw, - GCPtr pGC, int mode, int npt, DDXPointPtr pPts) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolylinesWideSolid) (pDraw, pGC, mode, npt, pPts); -} - -static void -XAAOverPolylinesThinSolid(DrawablePtr pDraw, - GCPtr pGC, int mode, int npt, DDXPointPtr pPts) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolylinesThinSolid) (pDraw, pGC, mode, npt, pPts); -} - -static void -XAAOverPolySegmentThinSolid(DrawablePtr pDraw, - GCPtr pGC, int nseg, xSegment * pSeg) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolySegmentThinSolid) (pDraw, pGC, nseg, pSeg); -} - -static void -XAAOverPolylinesThinDashed(DrawablePtr pDraw, - GCPtr pGC, int mode, int npt, DDXPointPtr pPts) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolylinesThinDashed) (pDraw, pGC, mode, npt, pPts); -} - -static void -XAAOverPolySegmentThinDashed(DrawablePtr pDraw, - GCPtr pGC, int nseg, xSegment * pSeg) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolySegmentThinDashed) (pDraw, pGC, nseg, pSeg); -} - -static void -XAAOverFillPolygonSolid(DrawablePtr pDraw, - GCPtr pGC, - int shape, int mode, int count, DDXPointPtr ptsIn) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillPolygonSolid) (pDraw, pGC, shape, mode, count, ptsIn); -} - -static void -XAAOverFillPolygonStippled(DrawablePtr pDraw, - GCPtr pGC, - int shape, int mode, int count, DDXPointPtr ptsIn) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillPolygonStippled) (pDraw, pGC, shape, mode, count, ptsIn); -} - -static void -XAAOverFillPolygonOpaqueStippled(DrawablePtr pDraw, - GCPtr pGC, - int shape, - int mode, int count, DDXPointPtr ptsIn) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillPolygonOpaqueStippled) (pDraw, pGC, shape, mode, count, - ptsIn); -} - -static void -XAAOverFillPolygonTiled(DrawablePtr pDraw, - GCPtr pGC, - int shape, int mode, int count, DDXPointPtr ptsIn) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->FillPolygonTiled) (pDraw, pGC, shape, mode, count, ptsIn); -} - -static void -XAAOverPolyFillArcSolid(DrawablePtr pDraw, GCPtr pGC, int narcs, xArc * parcs) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PolyFillArcSolid) (pDraw, pGC, narcs, parcs); -} - -static void -XAAOverPutImage(DrawablePtr pDraw, - GCPtr pGC, - int depth, - int x, - int y, int w, int h, int leftPad, int format, char *pImage) -{ - XAAOverlayPtr pOverPriv = GET_OVERLAY_PRIV(pGC->pScreen); - - SWITCH_DEPTH(pGC->depth); - - (*pOverPriv->PutImage) (pDraw, pGC, depth, x, y, w, h, - leftPad, format, pImage); -} |