Dmitry Timoshkov : gdiplus: When there is no target rectangle specified DrawImage should scale image to device dpi .

Alexandre Julliard julliard at winehq.org
Thu Aug 16 15:26:12 CDT 2012


Module: wine
Branch: master
Commit: 938d42c1480fbc7c80a4db187a29148a7742e219
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=938d42c1480fbc7c80a4db187a29148a7742e219

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Wed Aug 15 12:10:08 2012 +0900

gdiplus: When there is no target rectangle specified DrawImage should scale image to device dpi.

---

 dlls/gdiplus/graphics.c    |    2 ++
 dlls/gdiplus/tests/image.c |    2 --
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 4606074..dfa37eb 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2974,7 +2974,9 @@ GpStatus WINGDIPAPI GdipDrawImagePointRect(GpGraphics *graphics, GpImage *image,
     TRACE("(%p, %p, %f, %f, %f, %f, %f, %f, %d)\n", graphics, image, x, y, srcx, srcy, srcwidth, srcheight, srcUnit);
 
     scale_x = units_scale(srcUnit, graphics->unit, graphics->xres);
+    scale_x *= graphics->xres / image->xres;
     scale_y = units_scale(srcUnit, graphics->unit, graphics->yres);
+    scale_y *= graphics->yres / image->yres;
     width = srcwidth * scale_x;
     height = srcheight * scale_y;
 
diff --git a/dlls/gdiplus/tests/image.c b/dlls/gdiplus/tests/image.c
index 24cb434..9e90cca 100644
--- a/dlls/gdiplus/tests/image.c
+++ b/dlls/gdiplus/tests/image.c
@@ -3642,7 +3642,6 @@ static void test_DrawImage(void)
     expect(Ok, status);
 
     match = memcmp(white_2x2, black_2x2, sizeof(black_2x2)) == 0;
-todo_wine
     ok(match, "data should match\n");
     if (!match)
     {
@@ -3695,7 +3694,6 @@ static void test_GdipDrawImagePointRect(void)
     expect(Ok, status);
 
     match = memcmp(white_2x2, black_2x2, sizeof(black_2x2)) == 0;
-todo_wine
     ok(match, "data should match\n");
     if (!match)
     {




More information about the wine-cvs mailing list