[GDI+: 8/10] GdipDrawRectangleI test

Evan Stade estade at gmail.com
Mon Jun 11 15:00:14 CDT 2007


Hi,

Changelog:
*added GdipDrawRectangleI test

 dlls/gdiplus/tests/graphics.c |   64 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

-Evan Stade
-------------- next part --------------
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index e5ebba1..807290d 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -113,6 +113,36 @@ static const INT drawline_bmp2[192] =
  0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
  0xffffffff,0xffffffff,0xffffffff};
 
+static const INT drawrect_bmp1[192] =
+{0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xddffffff,0xccddbbcc,0xbbccddbb,0xddbbccdd,0xffffbbcc,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xddffffff,0xccddbbcc,0xbbccddbb,0xddbbccdd,0xffffbbcc,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xddffffff,0xccddbbcc,
+ 0xffffffbb,0xddbbccdd,0xffffbbcc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xddffffff,0xccddbbcc,0xffffffbb,0xddbbccdd,
+ 0xffffbbcc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xddffffff,0xccddbbcc,0xffffffbb,0xddbbccdd,0xffffbbcc,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xddffffff,
+ 0xccddbbcc,0xbbccddbb,0xddbbccdd,0xffffbbcc,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xddffffff,0xccddbbcc,0xbbccddbb,
+ 0xddbbccdd,0xffffbbcc,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,0xffffffff,
+ 0xffffffff,0xffffffff,0xffffffff};
+
 static INT smart_GetDIBits(HDC hdc, HBITMAP hbm, BYTE** buff, INT *bytes,
     INT bitcount, INT compression, INT imagesize)
 {
@@ -238,8 +268,35 @@ static void drawline(HWND hwnd, HDC hdc)
     GdipDeletePen(eraser);
 }
 
+static void drawrect(HWND hwnd, HDC hdc)
+{
+    GpStatus stat;
+    GpPen *pen;
+    GpGraphics *graphics;
+
+    INT height = 0, num_bytes = 0;
+    BYTE* buff;
+
+    stat = GdipCreateFromHDC(hdc, &graphics);
+    expect(stat, Ok);
+    stat = GdipCreatePen1((ARGB)0xffbbccdd, 2.0f, UnitPixel, &pen);
+    expect(stat, Ok);
+    stat = GdipDrawRectangleI(graphics, pen, 6, 6, 3, 5);
+    expect(stat, Ok);
+
+    height = capture_dc(hdc, &buff, &num_bytes);
+    assert(height == WND_SZ);
+
+    ok(!memcmp(buff, drawrect_bmp1, num_bytes), "Expected different bitmap\n");
+
+    HeapFree(GetProcessHeap(), 0, buff);
+    GdipDeleteGraphics(graphics);
+    GdipDeletePen(pen);
+}
+
 SIMPLE_WINDOW_PROC(constructor)
 SIMPLE_WINDOW_PROC(drawline)
+SIMPLE_WINDOW_PROC(drawrect)
 
 static BOOL RegisterHelper(WNDPROC x, LPCTSTR ClassName)
 {
@@ -268,6 +325,7 @@ static BOOL RegisterWindowClasses(void)
 
     ret = RegisterHelper(constructor_window_proc, TEXT("Constructor"));
     ret = ret && RegisterHelper(drawline_window_proc, TEXT("DrawLine"));
+    ret = ret && RegisterHelper(drawrect_window_proc, TEXT("DrawRect"));
 
     return ret;
 }
@@ -300,6 +358,11 @@ static void test_drawline(void)
     window_test_runner(TEXT("DrawLine"), TEXT("Draw line test"));
 }
 
+static void test_drawrect(void)
+{
+    window_test_runner(TEXT("DrawRect"), TEXT("Draw rect test"));
+}
+
 START_TEST(graphics)
 {
     struct GdiplusStartupInput gdiplusStartupInput;
@@ -316,6 +379,7 @@ START_TEST(graphics)
 
     test_constructor_destructor();
     test_drawline();
+    test_drawrect();
 
     GdiplusShutdown(gdiplusToken);
 }
-- 
1.4.1


More information about the wine-patches mailing list