Huw Davies : gdi32/tests: Add some tests for wide pens.

Alexandre Julliard julliard at winehq.org
Fri Dec 9 14:41:37 CST 2011


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Fri Dec  9 13:47:28 2011 +0000

gdi32/tests: Add some tests for wide pens.

---

 dlls/gdi32/tests/dib.c |   51 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c
index 79a62db..909457d 100644
--- a/dlls/gdi32/tests/dib.c
+++ b/dlls/gdi32/tests/dib.c
@@ -135,6 +135,7 @@ static const char *sha1_graphics_a8r8g8b8[] =
     "0cdf6fee6721d60d5d5ed26b1989eacddc16b14e",
     "e462052a03dbe4ec3814db7700e166d00d4d686f",
     "a27917d4db49ce77989fae246015aeb2a28520ee",
+    "657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
     NULL
 };
 
@@ -196,6 +197,7 @@ static const char *sha1_graphics_a8r8g8b8_bitfields[] =
     "0cdf6fee6721d60d5d5ed26b1989eacddc16b14e",
     "0cda6b3297003b3ccd6d5baa17e1ca9bb7c56f08",
     "b2c8e1ebb9435031fe068442f479d1304096e79f",
+    "657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
     NULL
 };
 
@@ -257,6 +259,7 @@ static const char *sha1_graphics_a8b8g8r8[] =
     "9c8f3063504a81bbbfa8558e111c63d8bc36dbbf",
     "87f57a31253a38dbf3dc3070473328fa04b68a48",
     "db64cc4d830fc35ed170b53943e722b2342954d4",
+    "9988ceca44dafbee247aece1f027c06c27c01652",
     NULL
 };
 
@@ -318,6 +321,7 @@ static const char *sha1_graphics_r10g10b10[] =
     "3a81fe558c69ca0aea7e7191771ed86cf4321a5a",
     "8ea5d7e4bebc40a1d91b04b12e1c11a42c188095",
     "317521e576801acaea62c76fe16813cdfe20f4ad",
+    "ce0fc29bb0281d6c955d64e239254ef9e6dbc06d",
     NULL
 };
 
@@ -379,6 +383,7 @@ static const char *sha1_graphics_r6g6b6[] =
     "796fd861474aa7861bd0384127df755458757ec3",
     "aecb242c31f31a90f071b6455ea7d808d4ea22e3",
     "77ea86e51a94b11a8081b29696cb4115687843e3",
+    "d67b897cad72d31e75359094007b1346fd8806ea",
     NULL
 };
 
@@ -440,6 +445,7 @@ static const char *sha1_graphics_24[] =
     "826de85271b67a11e7bd1a6596b58a045a96b69e",
     "354b92008a8409c62d0fa1dff1532c5943aa37a2",
     "8dc9cb7deae5c24d1eae004d53893fa6caf4723c",
+    "cf311a96d41bd98fdbdfb5dfaac4ba1ba9b7d6da",
     NULL
 };
 
@@ -505,6 +511,7 @@ static const char *sha1_graphics_r5g5b5[] =
     "517e32a8c0312b5676d498583ea092b0f198f2bc",
     "295ec16530126046790fb734e99f86f5b3b74ed8",
     "d98b0561010606b55a1b9b85fbc93640f681d256",
+    "1c1499051860b7caa25173b328ca9c862f01dd1a",
     NULL
 };
 
@@ -565,6 +572,7 @@ static const char *sha1_graphics_r4g4b4[] =
     "d8ba2e556fd64c9c2f1746496e6e7dd7a487cd6d",
     "7587a9c87cab1eca827807f351bb67ca184d1ac5",
     "b53ef0b5c674822e784903a9dbdd3b386d9f2350",
+    "5505d2ed20dc61ffe48832ecf5329162a5ceb734",
     NULL
 };
 
@@ -631,6 +639,7 @@ static const char *sha1_graphics_8_color[] =
     "1f9a21eba2f2ce87768a5618d9cfefa7e48fb386",
     "e58d9c0acf0219d0839e1dbd162e08a765ed7f0f",
     "34ca0f9660e1889f9f2c0deb80535d3c4f349fa4",
+    "2c07272462c68cf5944b03e2aa049475b99143c5",
     NULL
 };
 
@@ -702,6 +711,7 @@ static const char *sha1_graphics_8_grayscale[] =
     "d908c86b7301666a8d7999b831841115a4938181",
     "0ca8775d9a61ccc251d1e6f2e3cfd26a24ae24a2",
     "17ae603c199a5d6695d198a7f36e6d7263990951",
+    "1918a33f59d3500204ffc573318a39e9ff754221",
     NULL
 };
 
@@ -766,6 +776,7 @@ static const char *sha1_graphics_8[] =
     "ba49de83c4668fb08956221f465b93e7dd6a3383",
     "bd28d77cd85b20a2384d6b25082cfd884bba683e",
     "7e591ec8ae9bb61c3a443c93f071cab2b8978394",
+    "f81c70b6ee2d4690f9f7c797c66582b176f8dcef",
     NULL
 };
 
@@ -826,6 +837,7 @@ static const char *sha1_graphics_4[] =
     "38a3b6edcba2a1fba6064f0b4d771aedae7f4673",
     "28a6b9f7927e99e53cf46f0333d29168cb10e920",
     "029552113292cc110fd6b7888e766628950aaeef",
+    "297f6ad15200bffbf15198324ee8f27a61a6f2d4",
     NULL
 };
 
@@ -886,6 +898,7 @@ static const char *sha1_graphics_4_grayscale[] =
     "2e4dc1e859350289575ffc2a47cd0033efca6c32",
     "ada3b7c34946e584dcdf4203e07cfa3dad02bc63",
     "c2f61571b067a44b30f56b4658c9606f0edfc0f3",
+    "58f400c9bb78e49a879276fb049edfc9c981740a",
     NULL
 };
 
@@ -961,6 +974,7 @@ static const char *sha1_graphics_1[] =
     "6c4640b17e072efc682044c499e5a4f3481b7c87",
     "781d8c5cbc28591fd48fce06f984c502fdc6b363",
     "df510792a7790cc699532b1420d43c6d4da2ae2f",
+    "55c26d22f11d80b73383fa57d0fac552d705b092",
     NULL
 };
 
@@ -1114,6 +1128,18 @@ static const RECT line_clips[] =
     {199, 142, 210, 143}  /* start pt just inside r edge */
 };
 
+static const RECT wide_lines[] =
+{
+    {100,  10, 200,  10},
+    {100,  21, 200,  21},
+    {200,  40, 100,  40},
+    {200,  61, 100,  61},
+    { 10, 100,  10, 200},
+    { 21, 100,  21, 200},
+    { 40, 200,  40, 100},
+    { 61, 200,  61, 100},
+};
+
 static const RECT patblt_clips[] =
 {
     {120, 120, 140, 126}, /* unclipped */
@@ -1181,7 +1207,7 @@ static inline void solid_patblt( HDC hdc, int x, int y, int width, int height, C
 static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sha1)
 {
     DWORD dib_size = get_dib_size(bmi);
-    HPEN solid_pen, dashed_pen, orig_pen;
+    HPEN solid_pen, dashed_pen, wide_pen, orig_pen;
     HBRUSH solid_brush, dib_brush, hatch_brush, orig_brush;
     HBITMAP bmp;
     INT i, x, y, hatch_style;
@@ -2168,14 +2194,33 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh
             compare_hash(bmi, bits, sha1, "GdiGradientFill" );
         memset(bits, 0xcc, dib_size);
     }
-    else win_skip( "GdiGradientFill not supported\n" );
+    else
+    {
+        win_skip( "GdiGradientFill not supported\n" );
+        *sha1 += 2;
+    }
+
+    /* wide pen */
+
+    wide_pen = CreatePen( PS_SOLID, 7, RGB( 0xff, 0, 0 ) );
+    SelectObject( hdc, wide_pen );
+
+    for (i = 0; i < sizeof( wide_lines ) / sizeof( wide_lines[0] ); i++)
+    {
+        MoveToEx( hdc, wide_lines[i].left, wide_lines[i].top, NULL );
+        LineTo( hdc, wide_lines[i].right, wide_lines[i].bottom );
+    }
+
+    compare_hash(bmi, bits, sha1, "wide pen" );
+    memset(bits, 0xcc, dib_size);
 
     SelectObject(hdc, orig_brush);
     SelectObject(hdc, orig_pen);
     DeleteObject(hrgn);
     DeleteObject(dib_brush);
-    DeleteObject(dashed_pen);
     DeleteObject(solid_brush);
+    DeleteObject(wide_pen);
+    DeleteObject(dashed_pen);
     DeleteObject(solid_pen);
 }
 




More information about the wine-cvs mailing list