Module: wine Branch: master Commit: 964778fda557c0e6227f26645e8d8037a66d12eb URL: http://source.winehq.org/git/wine.git/?a=commit;h=964778fda557c0e6227f26645e...
Author: Dmitry Timoshkov dmitry@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(®ion100x100); + 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); }