summaryrefslogtreecommitdiff
path: root/hw/xfree86/xaa/xaawrap.h
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/xaa/xaawrap.h')
-rw-r--r--hw/xfree86/xaa/xaawrap.h25
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>