[PATCH 4/4] gdiplus: Set GDI world xform to the identity xform on acquisition.

Shawn M. Chapla schapla at codeweavers.com
Mon Jun 29 16:44:27 CDT 2020


Signed-off-by: Shawn M. Chapla <schapla at codeweavers.com>
---
 dlls/gdiplus/graphics.c       | 2 ++
 dlls/gdiplus/tests/graphics.c | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 3c5e25ec41..7011b2c54e 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -2361,6 +2361,7 @@ static void get_gdi_transform(GpGraphics *graphics, GpMatrix *matrix)
 
     GetTransform(graphics->hdc, 0x204, &xform);
     GdipSetMatrixElements(matrix, xform.eM11, xform.eM12, xform.eM21, xform.eM22, xform.eDx, xform.eDy);
+
 }
 
 GpStatus WINGDIPAPI GdipCreateFromHDC2(HDC hdc, HANDLE hDevice, GpGraphics **graphics)
@@ -6789,6 +6790,7 @@ GpStatus gdi_transform_acquire(GpGraphics *graphics)
     if (graphics->gdi_transform_acquire_count == 0 && graphics->hdc)
     {
         graphics->gdi_transform_save = SaveDC(graphics->hdc);
+        ModifyWorldTransform(graphics->hdc, NULL, MWT_IDENTITY);
         SetGraphicsMode(graphics->hdc, GM_COMPATIBLE);
         SetMapMode(graphics->hdc, MM_TEXT);
         SetWindowOrgEx(graphics->hdc, 0, 0, NULL);
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index ff43ebf959..15cbcaeaa0 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -7012,7 +7012,7 @@ static void test_gdi_interop_hdc(void)
     expect(0x00aa00ff, bits[6 * 100 + 6]);
     expect(0x00aa00ff, bits[26 * 100 + 26]);
     expect(0x00aa00ff, bits[36 * 100 + 36]);
-    todo_wine expect(0xffaa00ff, bits[86 * 100 + 86]);
+    expect(0xffaa00ff, bits[86 * 100 + 86]);
 
     DeleteDC(src_hdc);
     DeleteObject(hbm);
-- 
2.27.0




More information about the wine-devel mailing list