Dmitry Timoshkov : gdiplus/tests: Add tests for a sample 100x100 rectangle region.

Alexandre Julliard julliard at winehq.org
Wed Jul 10 13:54:48 CDT 2013


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

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Wed Jul 10 16:19:07 2013 +0900

gdiplus/tests: Add tests for a sample 100x100 rectangle region.

---

 dlls/gdiplus/tests/graphics.c |  111 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 108 insertions(+), 3 deletions(-)

diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index 6c050fb..4195370 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -4526,7 +4526,7 @@ static void test_clipping(void)
     HDC hdc;
     GpStatus status;
     GpGraphics *graphics;
-    GpRegion *region;
+    GpRegion *region, *region100x100;
     GpMatrix *matrix;
     GpRectF rect;
     HRGN hrgn;
@@ -4542,11 +4542,16 @@ static void test_clipping(void)
     status = GdipSetEmpty(region);
     expect(Ok, status);
 
+    status = GdipCreateRegion(&region100x100);
+    expect(Ok, status);
+    status = GdipSetEmpty(region100x100);
+    expect(Ok, status);
+
     rect.X = rect.Y = 100.0;
     rect.Width = rect.Height = 100.0;
-    status = GdipCombineRegionRect(region, &rect, CombineModeUnion);
+    status = GdipCombineRegionRect(region100x100, &rect, CombineModeUnion);
     expect(Ok, status);
-    status = GdipSetClipRegion(graphics, region, CombineModeReplace);
+    status = GdipSetClipRegion(graphics, region100x100, CombineModeReplace);
     expect(Ok, status);
 
     status = GdipGetClipBounds(graphics, &rect);
@@ -4602,6 +4607,13 @@ todo_wine
 todo_wine
     expectf(25.0, rect.Height);
 
+    status = GdipGetRegionBounds(region100x100, graphics, &rect);
+    expect(Ok, status);
+    expectf(100.0, rect.X);
+    expectf(100.0, rect.Y);
+    expectf(100.0, rect.Width);
+    expectf(100.0, rect.Height);
+
     status = GdipGetRegionHRgn(region, NULL, &hrgn);
     expect(Ok, status);
     ret = GetRgnBox(hrgn, &rc);
@@ -4620,6 +4632,22 @@ todo_wine
        "expected 100,100-200,200, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
     DeleteObject(hrgn);
 
+    status = GdipGetRegionHRgn(region100x100, NULL, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok(rc.left == 100 && rc.top == 100 && rc.right == 200 && rc.bottom == 200,
+       "expected 100,100-200,200, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
+    status = GdipGetRegionHRgn(region100x100, graphics, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok(rc.left == 210 && rc.top == 420 && rc.right == 410 && rc.bottom == 820,
+       "expected 210,420-410,820, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
     status = GdipSetPageScale(graphics, 2.0);
     expect(Ok, status);
 
@@ -4649,6 +4677,13 @@ todo_wine
 todo_wine
     expectf(25.0, rect.Height);
 
+    status = GdipGetRegionBounds(region100x100, graphics, &rect);
+    expect(Ok, status);
+    expectf(100.0, rect.X);
+    expectf(100.0, rect.Y);
+    expectf(100.0, rect.Width);
+    expectf(100.0, rect.Height);
+
     status = GdipGetRegionHRgn(region, NULL, &hrgn);
     expect(Ok, status);
     ret = GetRgnBox(hrgn, &rc);
@@ -4667,6 +4702,22 @@ todo_wine
        "expected 100,100-200,200, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
     DeleteObject(hrgn);
 
+    status = GdipGetRegionHRgn(region100x100, NULL, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok(rc.left == 100 && rc.top == 100 && rc.right == 200 && rc.bottom == 200,
+       "expected 100,100-200,200, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
+    status = GdipGetRegionHRgn(region100x100, graphics, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok(rc.left == 210 && rc.top == 420 && rc.right == 410 && rc.bottom == 820,
+       "expected 210,420-410,820, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
     GdipSetPageUnit(graphics, UnitPoint);
     expect(Ok, status);
 
@@ -4688,6 +4739,13 @@ todo_wine
        broken(rect.X == 45.0 && rect.Y == 20.0 && rect.Width == 50.0 && rect.Height == 25.0) /* before Win7 */,
        "expected 13.75,4.375-18.75,9.375, got %.2f,%.2f-%.2f,%.2f\n", rect.X, rect.Y, rect.Width, rect.Height);
 
+    status = GdipGetRegionBounds(region100x100, graphics, &rect);
+    expect(Ok, status);
+    expectf(100.0, rect.X);
+    expectf(100.0, rect.Y);
+    expectf(100.0, rect.Width);
+    expectf(100.0, rect.Height);
+
     status = GdipGetRegionHRgn(region, NULL, &hrgn);
     expect(Ok, status);
     ret = GetRgnBox(hrgn, &rc);
@@ -4708,8 +4766,55 @@ todo_wine
        "expected 100,100-200,200, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
     DeleteObject(hrgn);
 
+    status = GdipGetRegionHRgn(region100x100, NULL, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok(rc.left == 100 && rc.top == 100 && rc.right == 200 && rc.bottom == 200,
+       "expected 100,100-200,200, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
+    status = GdipGetRegionHRgn(region100x100, graphics, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok((rc.left == 560 && rc.top == 1120 && rc.right == 1094 && rc.bottom == 2187) ||
+       /* rounding under Wine is slightly different */
+       (rc.left == 560 && rc.top == 1120 && rc.right == 1093 && rc.bottom == 2187) /* Wine */,
+       "expected 560,1120-1094,2187, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
+    status = GdipTransformRegion(region100x100, matrix);
+    expect(Ok, status);
+
+    status = GdipGetRegionBounds(region100x100, graphics, &rect);
+    expect(Ok, status);
+    expectf(210.0, rect.X);
+    expectf(420.0, rect.Y);
+    expectf(200.0, rect.Width);
+    expectf(400.0, rect.Height);
+
+    status = GdipGetRegionHRgn(region100x100, NULL, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok(rc.left == 210 && rc.top == 420 && rc.right == 410 && rc.bottom == 820,
+       "expected 210,420-410,820, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
+    status = GdipGetRegionHRgn(region100x100, graphics, &hrgn);
+    expect(Ok, status);
+    ret = GetRgnBox(hrgn, &rc);
+    ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
+    ok((rc.left == 1147 && rc.top == 4534 && rc.right == 2214 && rc.bottom == 8800) ||
+       /* rounding under Wine is slightly different */
+       (rc.left == 1147 && rc.top == 4533 && rc.right == 2213 && rc.bottom == 8800) /* Wine */,
+       "expected 1147,4534-2214,8800, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
+    DeleteObject(hrgn);
+
     GdipDeleteMatrix(matrix);
     GdipDeleteRegion(region);
+    GdipDeleteRegion(region100x100);
     GdipDeleteGraphics(graphics);
     DeleteDC(hdc);
 }




More information about the wine-cvs mailing list