[3/5] gdiplus: Test that GdipGetRegionHRgn includes gdi32 transform.

Vincent Povirk vincent at codeweavers.com
Wed Aug 30 12:32:15 CDT 2017


Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
---
 dlls/gdiplus/tests/region.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/dlls/gdiplus/tests/region.c b/dlls/gdiplus/tests/region.c
index 06c47d9..86a2e40 100644
--- a/dlls/gdiplus/tests/region.c
+++ b/dlls/gdiplus/tests/region.c
@@ -1118,6 +1118,8 @@ static void test_gethrgn(void)
     GpGraphics *graphics;
     HRGN hrgn;
     HDC hdc=GetDC(0);
+    INT rgntype;
+    RECT rgnbox;
     static const RECT empty_rect = {0,0,0,0};
     static const RECT test_rect = {10, 11, 20, 21};
     static const GpRectF test_rectF = {10.0, 11.0, 10.0, 10.0};
@@ -1238,6 +1240,35 @@ static void test_gethrgn(void)
     ok(status == Ok, "status %08x\n", status);
     status = GdipDeleteGraphics(graphics);
     ok(status == Ok, "status %08x\n", status);
+
+    /* test with gdi32 transform */
+    SetViewportOrgEx(hdc, 10, 10, NULL);
+
+    status = GdipCreateFromHDC(hdc, &graphics);
+    expect(Ok, status);
+
+    status = GdipCreateRegionRect(&test_rectF, &region);
+    expect(Ok, status);
+
+    status = GdipGetRegionHRgn(region, graphics, &hrgn);
+    expect(Ok, status);
+
+    rgntype = GetRgnBox(hrgn, &rgnbox);
+    DeleteObject(hrgn);
+
+    expect(SIMPLEREGION, rgntype);
+    expect(20, rgnbox.left);
+    expect(21, rgnbox.top);
+    expect(30, rgnbox.right);
+    expect(31, rgnbox.bottom);
+
+    status = GdipDeleteRegion(region);
+    expect(Ok, status);
+    status = GdipDeleteGraphics(graphics);
+    expect(Ok, status);
+
+    SetViewportOrgEx(hdc, 0, 0, NULL);
+
     ReleaseDC(0, hdc);
 }
 
-- 
2.7.4




More information about the wine-patches mailing list