Nikolay Sivov : gdiplus: Added test shows that CombineModeReplace actually replaces data.

Alexandre Julliard julliard at winehq.org
Thu Aug 28 07:00:26 CDT 2008


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

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Wed Aug 27 23:31:03 2008 +0400

gdiplus: Added test shows that CombineModeReplace actually replaces data.

---

 dlls/gdiplus/tests/region.c |   39 +++++++++++++++++++++++++++++++++++----
 1 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/dlls/gdiplus/tests/region.c b/dlls/gdiplus/tests/region.c
index 550730a..7e6e3b8 100644
--- a/dlls/gdiplus/tests/region.c
+++ b/dlls/gdiplus/tests/region.c
@@ -35,10 +35,7 @@
 
 #define expect_magic(value) ok(*value == RGNDATA_MAGIC || *value == RGNDATA_MAGIC2, "Expected a known magic value, got %8x\n", *value)
 
-static inline void expect_dword(DWORD *value, DWORD expected)
-{
-    ok(*value == expected, "expected %08x got %08x\n", expected, *value);
-}
+#define expect_dword(value, expected) ok(*(value) == expected, "expected %08x got %08x\n", expected, *(value))
 
 static inline void expect_float(DWORD *value, FLOAT expected)
 {
@@ -553,6 +550,39 @@ static void test_isempty(void)
     ReleaseDC(0, hdc);
 }
 
+static void test_combinereplace(void)
+{
+    GpStatus status;
+    GpRegion *region;
+    GpRectF rectf;
+    UINT needed;
+    DWORD buf[10];
+
+    rectf.X = rectf.Y = 0.0;
+    rectf.Width = rectf.Height = 100.0;
+
+    status = GdipCreateRegionRect(&rectf, &region);
+    expect(Ok, status);
+
+    /* replace with the same rectangle */
+    status = GdipCombineRegionRect(region, &rectf,CombineModeReplace);
+    expect(Ok, status);
+
+    status = GdipGetRegionDataSize(region, &needed);
+    expect(Ok, status);
+    todo_wine expect(36, needed);
+    status = GdipGetRegionData(region, (BYTE*)buf, sizeof(buf), &needed);
+    expect(Ok, status);
+    todo_wine expect(36, needed);
+    todo_wine expect_dword(buf, 28);
+    trace("buf[1] = %08x\n", buf[1]);
+    expect_magic((DWORD*)(buf + 2));
+    todo_wine expect_dword(buf + 3, 0);
+    todo_wine expect_dword(buf + 4, RGNDATA_RECT);
+
+    GdipDeleteRegion(region);
+}
+
 START_TEST(region)
 {
     struct GdiplusStartupInput gdiplusStartupInput;
@@ -568,6 +598,7 @@ START_TEST(region)
     test_getregiondata();
     test_isinfinite();
     test_isempty();
+    test_combinereplace();
 
     GdiplusShutdown(gdiplusToken);
 




More information about the wine-cvs mailing list