summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorMaarten Maathuis <madman2003@gmail.com>2008-08-26 20:02:55 +0200
committerMaarten Maathuis <madman2003@gmail.com>2008-08-26 20:02:55 +0200
commitdd1e54d6eed0bce289517b3cb95e6b1a187ca6e0 (patch)
tree2caa48dd7c87b762a1b05de6713392fc8f6ef7a1 /exa
parent7c14fdbacfcd2f4d56a346e6c72e44e4ba9909c1 (diff)
exa: fix thinko from 988725f32e082aee9392a71464125157a83d1e67
- the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_accel.c2
-rw-r--r--exa/exa_migration.c6
-rw-r--r--exa/exa_priv.h2
-rw-r--r--exa/exa_render.c6
4 files changed, 8 insertions, 8 deletions
diff --git a/exa/exa_accel.c b/exa/exa_accel.c
index d586fd804..c3cf36541 100644
--- a/exa/exa_accel.c
+++ b/exa/exa_accel.c
@@ -307,7 +307,7 @@ exaShmPutImage(DrawablePtr pDrawable, GCPtr pGC, int depth, unsigned int format,
if (pending_damage) {
REGION_INIT(pScreen, &region, &box, 1);
- exaDamageDestForMigration(pPixmap, &region);
+ exaDamageDestForMigration(pDrawable, pPixmap, &region);
}
if (!exaDoShmPutImage(pDrawable, pGC, depth, format, w, h, sx, sy, sw, sh,
diff --git a/exa/exa_migration.c b/exa/exa_migration.c
index 013781581..2bb2ad94f 100644
--- a/exa/exa_migration.c
+++ b/exa/exa_migration.c
@@ -53,9 +53,9 @@
* because their calls are wrapped by the damage layer.
*/
Bool
-exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region)
+exaDamageDestForMigration(DrawablePtr pDrawable, PixmapPtr pPix, RegionPtr region)
{
- ScreenPtr pScreen = pPix->drawable.pScreen;
+ ScreenPtr pScreen = pDrawable->pScreen;
(void) pScreen; /* the macros don't use pScreen currently */
ExaPixmapPriv (pPix);
int x_offset, y_offset;
@@ -64,7 +64,7 @@ exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region)
if (!pExaPixmap->pDamage)
return FALSE;
- exaGetDrawableDeltas(&pPix->drawable, pPix, &x_offset, &y_offset);
+ exaGetDrawableDeltas(pDrawable, pPix, &x_offset, &y_offset);
REGION_TRANSLATE(pScreen, region, x_offset, y_offset);
pending_damage = DamagePendingRegion(pExaPixmap->pDamage);
diff --git a/exa/exa_priv.h b/exa/exa_priv.h
index 7decf8f66..ca7122be9 100644
--- a/exa/exa_priv.h
+++ b/exa/exa_priv.h
@@ -504,6 +504,6 @@ void
exaPixmapSave (ScreenPtr pScreen, ExaOffscreenArea *area);
Bool
-exaDamageDestForMigration(PixmapPtr pPix, RegionPtr region);
+exaDamageDestForMigration(DrawablePtr pDrawable, PixmapPtr pPix, RegionPtr region);
#endif /* EXAPRIV_H */
diff --git a/exa/exa_render.c b/exa/exa_render.c
index 88ea29a0f..bafa30999 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -518,7 +518,7 @@ exaCompositeRects(CARD8 op,
REGION_INIT(pScreen, &region, &box, 1);
- exaDamageDestForMigration(pPixmap, &region);
+ exaDamageDestForMigration(pDst->pDrawable, pPixmap, &region);
}
/************************************************************/
@@ -1073,7 +1073,7 @@ exaTrapezoids (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
bounds.y2 += pDraw->y;
REGION_INIT(pScreen, &migration, &bounds, 1);
- exaDamageDestForMigration(pixmap, &migration);
+ exaDamageDestForMigration(pDraw, pixmap, &migration);
}
exaPrepareAccess(pDraw, EXA_PREPARE_DEST);
@@ -1177,7 +1177,7 @@ exaTriangles (CARD8 op, PicturePtr pSrc, PicturePtr pDst,
bounds.y2 += pDraw->y;
REGION_INIT(pScreen, &migration, &bounds, 1);
- exaDamageDestForMigration(pixmap, &migration);
+ exaDamageDestForMigration(pDraw, pixmap, &migration);
}
exaPrepareAccess(pDraw, EXA_PREPARE_DEST);