From 37087bc10630ee7740df1369b3e56a44fd2ad2b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Wed, 30 Jul 2008 18:27:33 +0200 Subject: [PATCH] EXA: Replace open coded CopyArea logic with GC op call. --- exa/exa_accel.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/exa/exa_accel.c b/exa/exa_accel.c index 1dbb269f6..8bcc2ce34 100644 --- a/exa/exa_accel.c +++ b/exa/exa_accel.c @@ -261,22 +261,16 @@ exaDoShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, if (format == ZPixmap) { - PixmapPtr pPixmap; - ExaPixmapPriv(exaGetDrawablePixmap(pDrawable)); + PixmapPtr pPixmap = + GetScratchPixmapHeader(pDrawable->pScreen, w, h, depth, + BitsPerPixel(depth), PixmapBytePad(w, depth), + (pointer)data); - pPixmap = GetScratchPixmapHeader(pDrawable->pScreen, w, h, depth, - BitsPerPixel(depth), PixmapBytePad(w, depth), (pointer)data); if (!pPixmap) return FALSE; - if (exaGCReadsDestination(pDrawable, pGC->planemask, pGC->fillStyle, - pGC->alu)) - exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); - else - exaPrepareAccessReg (pDrawable, EXA_PREPARE_DEST, - DamagePendingRegion(pExaPixmap->pDamage)); - fbCopyArea((DrawablePtr)pPixmap, pDrawable, pGC, sx, sy, sw, sh, dx, dy); - exaFinishAccess(pDrawable, EXA_PREPARE_DEST); + pGC->ops->CopyArea(&pPixmap->drawable, pDrawable, pGC, sx, sy, sw, sh, + dx, dy); FreeScratchPixmapHeader(pPixmap);