diff options
author | Maarten Maathuis <madman2003@gmail.com> | 2008-08-26 20:02:55 +0200 |
---|---|---|
committer | Maarten Maathuis <madman2003@gmail.com> | 2008-08-26 20:02:55 +0200 |
commit | dd1e54d6eed0bce289517b3cb95e6b1a187ca6e0 (patch) | |
tree | 2caa48dd7c87b762a1b05de6713392fc8f6ef7a1 /exa | |
parent | 7c14fdbacfcd2f4d56a346e6c72e44e4ba9909c1 (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.c | 2 | ||||
-rw-r--r-- | exa/exa_migration.c | 6 | ||||
-rw-r--r-- | exa/exa_priv.h | 2 | ||||
-rw-r--r-- | exa/exa_render.c | 6 |
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, ®ion, &box, 1); - exaDamageDestForMigration(pPixmap, ®ion); + exaDamageDestForMigration(pDrawable, pPixmap, ®ion); } 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, ®ion, &box, 1); - exaDamageDestForMigration(pPixmap, ®ion); + exaDamageDestForMigration(pDst->pDrawable, pPixmap, ®ion); } /************************************************************/ @@ -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); |