From 203f1488a7f0bfe3b467b4e187b50574bd822141 Mon Sep 17 00:00:00 2001 From: Jesse Allen Date: Tue, 20 Nov 2007 12:59:16 -0700 Subject: [PATCH] dibdrv: Basic StretchBlt --- dlls/winedib.drv/bitblt.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/dlls/winedib.drv/bitblt.c b/dlls/winedib.drv/bitblt.c index 46a9bf1b68b..2214cb0eeee 100644 --- a/dlls/winedib.drv/bitblt.c +++ b/dlls/winedib.drv/bitblt.c @@ -37,7 +37,20 @@ BOOL DIBDRV_StretchBlt( DIBDRVPHYSDEV *physDevDst, INT xDst, INT yDst, DIBDRVPHYSDEV *physDevSrc, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc, DWORD rop ) { - FIXME("stub\n"); + INT i, min_width, min_height; + TRACE("stub %p %d %d %d %d %p %d %d %d %d %d\n", physDevDst, xDst, yDst, widthDst, heightDst, + physDevSrc, xSrc, ySrc, widthSrc, heightSrc, rop); + min_width = physDevDst->bmp->width - yDst < physDevSrc->bmp->width - ySrc ? + physDevDst->bmp->width - yDst : physDevSrc->bmp->width - ySrc; + min_height = physDevDst->bmp->height - xDst < physDevSrc->bmp->height - xSrc ? + physDevDst->bmp->height - xDst : physDevSrc->bmp->height - xSrc; + /* copy a scanline at a time */ + for (i = 0; i < min_height; i++) + { + physDevDst->funcs->MoveXY( physDevDst->bmp, xDst, i + yDst ); + physDevSrc->funcs->MoveXY( physDevSrc->bmp, xSrc, i + ySrc ); + physDevDst->funcs->Copy( physDevDst->bmp, physDevSrc->bmp, min_width, physDevSrc->convs ); + } return TRUE; } -- 2.11.4.GIT