diff options
Diffstat (limited to 'hw/kdrive/src/kaa.c')
-rw-r--r-- | hw/kdrive/src/kaa.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/hw/kdrive/src/kaa.c b/hw/kdrive/src/kaa.c index a13e258aa..5e67368a8 100644 --- a/hw/kdrive/src/kaa.c +++ b/hw/kdrive/src/kaa.c @@ -131,12 +131,12 @@ kaaPixmapAllocArea (PixmapPtr pPixmap) static void kaaMoveInPixmap (PixmapPtr pPixmap) { + ScreenPtr pScreen = pPixmap->drawable.pScreen; + KaaScreenPriv (pScreen); int dst_pitch, src_pitch, bytes; unsigned char *dst, *src; int i; - KdCheckSync (pPixmap->drawable.pScreen); - DBG_MIGRATE (("-> 0x%08x (0x%x) (%dx%d)\n", pPixmap->drawable.id, KaaGetPixmapPriv(pPixmap)->area ? @@ -150,11 +150,19 @@ kaaMoveInPixmap (PixmapPtr pPixmap) if (!kaaPixmapAllocArea (pPixmap)) return; + if (pKaaScr->info->UploadToScreen) + { + if (pKaaScr->info->UploadToScreen(pPixmap, src, src_pitch)) + return; + } + dst = pPixmap->devPrivate.ptr; dst_pitch = pPixmap->devKind; bytes = src_pitch < dst_pitch ? src_pitch : dst_pitch; + KdCheckSync (pPixmap->drawable.pScreen); + i = pPixmap->drawable.height; while (i--) { memcpy (dst, src, bytes); |