exa: fix thinko from 988725f32e
- the drawable of the pixmap is not the same as the original drawable (possibly a DRAWABLE_WINDOW)
This commit is contained in:
parent
7c14fdbacf
commit
dd1e54d6ee
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user