diff options
Diffstat (limited to 'hw/xfree86/xaa/xaawrap.h')
-rw-r--r-- | hw/xfree86/xaa/xaawrap.h | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/hw/xfree86/xaa/xaawrap.h b/hw/xfree86/xaa/xaawrap.h index 3e410db86..2b991f0c0 100644 --- a/hw/xfree86/xaa/xaawrap.h +++ b/hw/xfree86/xaa/xaawrap.h @@ -19,7 +19,7 @@ if(pGCPriv->flags) {\ pGCPriv->wrapOps = (pGC)->ops;\ (pGC)->ops = (pGCPriv->flags & OPS_ARE_ACCEL) ? pGCPriv->XAAOps :\ - &XAAPixmapOps;\ + &XAAFallbackOps;\ } @@ -39,25 +39,14 @@ SYNC_CHECK(pGC) -#define XAA_GC_OP_EPILOGUE(pGC)\ +#define XAA_GC_OP_EPILOGUE(pGC, pDraw)\ pGCPriv->wrapOps = pGC->ops;\ pGC->funcs = oldFuncs;\ - pGC->ops = pGCPriv->XAAOps - - -#define XAA_PIXMAP_OP_PROLOGUE(pGC, pDraw)\ - XAAGCPtr pGCPriv = (XAAGCPtr)dixLookupPrivate(&(pGC)->devPrivates, XAAGetGCKey()); \ - XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\ - GCFuncs *oldFuncs = pGC->funcs;\ - pGC->funcs = pGCPriv->wrapFuncs;\ - pGC->ops = pGCPriv->wrapOps; \ - SYNC_CHECK(pGC) - -#define XAA_PIXMAP_OP_EPILOGUE(pGC)\ - pGCPriv->wrapOps = pGC->ops;\ - pGC->funcs = oldFuncs;\ - pGC->ops = &XAAPixmapOps;\ - pixPriv->flags |= DIRTY + pGC->ops = pGCPriv->XAAOps;\ + if(pDraw->type == DRAWABLE_PIXMAP && !IS_OFFSCREEN_PIXMAP(pDraw)) {\ + XAAPixmapPtr pixPriv = XAA_GET_PIXMAP_PRIVATE((PixmapPtr)(pDraw));\ + pixPriv->flags |= DIRTY;\ + } #ifdef HAVE_XORG_CONFIG_H #include <xorg-config.h> |