diff options
Diffstat (limited to 'xorg-server/dix/pixmap.c')
-rw-r--r-- | xorg-server/dix/pixmap.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/xorg-server/dix/pixmap.c b/xorg-server/dix/pixmap.c index 4b880af58..00e298f5c 100644 --- a/xorg-server/dix/pixmap.c +++ b/xorg-server/dix/pixmap.c @@ -164,9 +164,9 @@ PixmapPtr PixmapShareToSlave(PixmapPtr pixmap, ScreenPtr slave) } Bool -PixmapStartDirtyTracking(PixmapPtr src, - PixmapPtr slave_dst, - int x, int y) +PixmapStartDirtyTracking2(PixmapPtr src, + PixmapPtr slave_dst, + int x, int y, int dst_x, int dst_y) { ScreenPtr screen = src->drawable.pScreen; PixmapDirtyUpdatePtr dirty_update; @@ -179,6 +179,8 @@ PixmapStartDirtyTracking(PixmapPtr src, dirty_update->slave_dst = slave_dst; dirty_update->x = x; dirty_update->y = y; + dirty_update->dst_x = dst_x; + dirty_update->dst_y = dst_y; dirty_update->damage = DamageCreate(NULL, NULL, DamageReportNone, @@ -195,6 +197,14 @@ PixmapStartDirtyTracking(PixmapPtr src, } Bool +PixmapStartDirtyTracking(PixmapPtr src, + PixmapPtr slave_dst, + int x, int y) +{ + return PixmapStartDirtyTracking2(src, slave_dst, x, y, 0, 0); +} + +Bool PixmapStopDirtyTracking(PixmapPtr src, PixmapPtr slave_dst) { ScreenPtr screen = src->drawable.pScreen; @@ -261,7 +271,7 @@ Bool PixmapSyncDirtyHelper(PixmapDirtyUpdatePtr dirty, RegionPtr dirty_region) h = dst_box.y2 - dst_box.y1; pGC->ops->CopyArea(&dirty->src->drawable, &dst->drawable, pGC, - dirty->x + dst_box.x1, dirty->y + dst_box.y1, w, h, dst_box.x1, dst_box.y1); + dirty->x + dst_box.x1, dirty->y + dst_box.y1, w, h, dirty->dst_x + dst_box.x1, dirty->dst_y + dst_box.y1); b++; } FreeScratchGC(pGC); |