gdi32/tests: Add some tests for brushed and dashed wide pens.

This commit is contained in:
Alexandre Julliard 2012-01-04 18:17:05 +01:00
parent d858041a19
commit 4b524f91e2
1 changed files with 111 additions and 0 deletions

View File

@ -139,6 +139,10 @@ static const char *sha1_graphics_a8r8g8b8[] =
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
"5e0549fdcf0fc7c50054dccc51d37fc734ab8134",
"eca1998a4d79fb81b2a4103f79e3b846a864eaaf",
"2b3198bd5c0a87db5dab13df8bbe14363d02acec",
"f115ef8392ba82d8cd6e7a039320edcd812c1d28",
"aebb1b3baa4fd5213bf80a5ad7a50d54de8fdba4",
"f451a05f699ac3bbe155d059e7871a2636887b5f",
"5dca709c60e0cd50fa85274a2836aec9eb6168e3",
"dccaef62738ff90da4554a85d8cb846d6436799e",
NULL
@ -206,6 +210,10 @@ static const char *sha1_graphics_a8r8g8b8_bitfields[] =
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
"5e0549fdcf0fc7c50054dccc51d37fc734ab8134",
"eca1998a4d79fb81b2a4103f79e3b846a864eaaf",
"e4f110504dd3e4e34f960a39ba91a91c67bf26af",
"f115ef8392ba82d8cd6e7a039320edcd812c1d28",
"aebb1b3baa4fd5213bf80a5ad7a50d54de8fdba4",
"f451a05f699ac3bbe155d059e7871a2636887b5f",
"5dca709c60e0cd50fa85274a2836aec9eb6168e3",
"dccaef62738ff90da4554a85d8cb846d6436799e",
NULL
@ -273,6 +281,10 @@ static const char *sha1_graphics_a8b8g8r8[] =
"9988ceca44dafbee247aece1f027c06c27c01652",
"d80d45a97bc877b50ba2c3f720d5197f2f1c5fc5",
"b76e0724496e471b01ef8b34f8beba69f5bde261",
"693f5c5fbaeaadb5928d34b035499626fecb8394",
"8a9aa84c42dedc3e681191a1229846887ed262ec",
"66041875232f64dbfd2d18353aa28e43e8ccb6b5",
"707bc44fc9fed68ff1f537f0473e0cd825dd660f",
"f19f5d8e2c96328f06f3985d02ff474fa37b1ea8",
"175a7bcb73c74eceecc000657a0100bccf158ff4",
NULL
@ -340,6 +352,10 @@ static const char *sha1_graphics_r10g10b10[] =
"ce0fc29bb0281d6c955d64e239254ef9e6dbc06d",
"5ab49e7b61eddd3bab4182f362a38e1ab6a5a3b7",
"555b6f04ba8dec9e2a60693dcaac594227052727",
"4238fe9d296b5c72b0a8745cc761f308605b2094",
"943dc6033ab335a6a63e666f70a6bb3a0677e157",
"88b6427cf71a6b9a26bfd6026103d50f721651a9",
"88cfa7b7c1487f8eda05fce92b622942c9fb7ca4",
"64cf929548bc5324fb14b053077bf5bc4be3e15c",
"ad91dde8566dceaadc3523cdc8149cd7415a1b70",
NULL
@ -407,6 +423,10 @@ static const char *sha1_graphics_r6g6b6[] =
"d67b897cad72d31e75359094007b1346fd8806ea",
"442bcf4d94a649c9406c3b0bf2f00cb7c6a4d1d4",
"3d0853f4f7580d7cd5148c21c34d878ecf39a5f3",
"481337fbedf181d4324bf7f8299b0327197ff468",
"9ab957870fa4e17aec6a79bc1a4fdb42a5ffcc30",
"b4b9f0bf127ef11f510f25684ae21d692609c85e",
"8e32ea3614c3b20899d748db48258761c7158d2b",
"5da35bad12e3e9b26a0444d30820099481281e45",
"94f004e98ae8035af948611770a4a2dd6643f510",
NULL
@ -474,6 +494,10 @@ static const char *sha1_graphics_24[] =
"cf311a96d41bd98fdbdfb5dfaac4ba1ba9b7d6da",
"bf5ec23456efe00e1e0931c17de9040ab2092858",
"0bbdf0a0489428f96e3c1d3e5305f9a893820852",
"8f7a0af421101952e674f37154c1e8c4646ea2d2",
"e96b79bf88988b5694a04dfc3bd0029361b39801",
"d12284f58daabbd173dfae6c7e55fd5d822d89b4",
"09cb4ab070083144bed4271c0a2a34ccb6ed13c0",
"cc5ed4c9e925f0a457a7437fbb8054528cdd9469",
"c95afd0a020e68a76982fe8663b5d64113987233",
NULL
@ -545,6 +569,10 @@ static const char *sha1_graphics_r5g5b5[] =
"1c1499051860b7caa25173b328ca9c862f01dd1a",
"a655512753bc90e6d4eb3848f69e96db1ad348e5",
"2230f36f12d4becb242e2962fa1b3694db2496ca",
"0de013c2c6aba9f99cbcf5f8cfd3212ded7ae72a",
"5950f7d00cd8692872377df0e869a7d5ea5e4420",
"fedc67d1b0797be5f40cd45280844f2b61d29b0a",
"7de23c68ca224818fdf127c5e96729dcd0de2b8b",
"a848b1b0293b05b3f9358a3ffcb21a2e5fdecf05",
"1a0fd0df17fa4c455a4a91cad30b5242f77fd233",
NULL
@ -611,6 +639,10 @@ static const char *sha1_graphics_r4g4b4[] =
"5505d2ed20dc61ffe48832ecf5329162a5ceb734",
"9f72be4467219a345b1164205d1fbfda2d64271e",
"13d1634e03bc49cfe14a32278d9b1f5ddbb9be10",
"b0182002cb1f4fba9df3c21a4d046ab41ce7e9be",
"3830cd728c1e72837310940bcdac4e294d6c9843",
"f571c7c4aac92491017963032194690c0fa06b42",
"6fd751b7328c02954bce98bed94b3ce3c73db118",
"91d50b5a604d6c38aa0d08b9af995490f8ec246b",
"8585783d0373e9696b508776b6e6b18a80b09888",
NULL
@ -683,6 +715,10 @@ static const char *sha1_graphics_8_color[] =
"2c07272462c68cf5944b03e2aa049475b99143c5",
"07ca369fb875d37b9cf855045f528af1827edec4",
"5e9e3e71b06c5efe20f93b3838e745b40b878471",
"488341e88810d737de0b26de4e4d4fa0e78eb482",
"bd1e7f40e3971e2ff6c5561286901193a1557527",
"5a42b7eeff8198e7b005e4afa4282e6ffb939906",
"d7ffa3893c6fa937569791cf49986518a4a4d96e",
"26bc25a011e2b60961ee9d6c6141d928ae24389b",
"8771d5ff7b93b9dd9d077e672b342235dfb28472",
NULL
@ -760,6 +796,10 @@ static const char *sha1_graphics_8_grayscale[] =
"1918a33f59d3500204ffc573318a39e9ff754221",
"5449d1aef0d2d6af9ac3fd7adb32c23ddc9be1e2",
"55d302ece31a9b7fc4be4a07a53767ba210273e7",
"3494a23633405e46af96cb57715617fef1ac252e",
"5a3ae1da30d83cc157e6a4a5617c85598309f4ac",
"edc1ad2704452354aa6f79fac244a55b6f509c2e",
"87eab8f81fb2a036080e099760f628037f9306e7",
"a3eac75d30f681b3898ee469d368960529634d7d",
"cd5caeabdb71241766d24f038cfc5f1e91e11256",
NULL
@ -830,6 +870,10 @@ static const char *sha1_graphics_8[] =
"f81c70b6ee2d4690f9f7c797c66582b176f8dcef",
"d3f359cac7318ce09e0531d51c8c2b316cf3a23b",
"293c41a7ed923a4617560481ae8815cebf83701a",
"750c923785ba2afb9ce597516c072f90f014bf95",
"80089132f8a11d86e8038f2f8e12dfba46624ee5",
"bde5a62a065c027561226fbec5155e938ba7f6b3",
"a6311d74fc058079a327abb536e69353be719925",
"fbaa8848a1d3896469c37fd43ab44233f5b875a3",
"0000000000000000000000000000000000000000",
NULL
@ -896,6 +940,10 @@ static const char *sha1_graphics_4[] =
"297f6ad15200bffbf15198324ee8f27a61a6f2d4",
"70cfa427a1a0d6f2232b1fd544905d48af69cb98",
"287ea7db721e641439888cb9f4bac3a5f16124eb",
"42466aab11852741d937c1ff6f3bb711e58415a6",
"0663cf6330591fcf744aba96664e05d90243d07a",
"3024fa38333f83a639b0f0e6ac6d4b9868231157",
"6fe7d0d17b892032cfd171c3d7c365f030b5be38",
"7ae780dcc7cf04dda50648bfc07cc6a7a2f2189e",
"0000000000000000000000000000000000000000",
NULL
@ -962,6 +1010,10 @@ static const char *sha1_graphics_4_grayscale[] =
"58f400c9bb78e49a879276fb049edfc9c981740a",
"cb3794f676d6e9502f27172ac7d79a12ca2ba32c",
"aa89612798fbc4e11a73b6233c0ac4832e6af2f9",
"68bee638d59a373f33f308751471b3ef41849582",
"be0501175cc3cbb61217fca76356f761117fb40f",
"8fa37e26cdae406c2d1c81b1175dcf0311cf60c9",
"3efe128a5bf250f2c460664e8f543f5ec54d5dc2",
"2d5123e757cf00e423a89160d7dc4997c3688829",
"0000000000000000000000000000000000000000",
NULL
@ -1046,6 +1098,12 @@ static const char *sha1_graphics_1[] =
"55c26d22f11d80b73383fa57d0fac552d705b092",
"14443b33a9879bf829ed3b06e1aef0d7dcf662cc",
"53ab1fcccd09fa5cbff77497f36a70a3b3cb8b81",
"cc76db6da5ba1776f20240a5ad97a26a9cdf96b0",
"014f477664a7f4ce4a948d6359a2707119afc8e2",
"1ee4e951743efc8764249fbc7adecefbfec0428e",
"9ab50a663b74577b656e9849484a909d7ac52eeb",
"128eefd2ee043d59dc37918065f687e378e5ca95",
"c642abc651f525332d9d635049646d309e877839",
"8d34215487088b5d4ef63062270ce25c2862643d",
"3dc3075b0c87fdcaabbbae8928303fb2358c15c2",
"bbae6f0659e095a42b420082079663f937065813",
@ -2368,6 +2426,59 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh
compare_hash(bmi, bits, sha1, "wide pen - square caps, bevelled" );
memset(bits, 0xcc, dib_size);
SelectObject( hdc, orig_pen );
DeleteObject( wide_pen );
/* brushed wide pen */
old_text = GetTextColor( hdc );
old_bkgnd = GetBkColor( hdc );
bmp = CreateBitmap( 16, 16, 1, 1, ddb_brush_bits );
log_brush.lbStyle = BS_PATTERN;
log_brush.lbColor = 0;
log_brush.lbHatch = (ULONG_PTR)bmp;
wide_pen = ExtCreatePen( PS_GEOMETRIC | PS_ENDCAP_FLAT | PS_JOIN_BEVEL | PS_SOLID,
12, &log_brush, 0, NULL );
ok( wide_pen != 0, "failed to create pen\n" );
SelectObject( hdc, wide_pen );
Polyline( hdc, poly_lines, sizeof(poly_lines) / sizeof(poly_lines[0]) );
for (i = 1; i < 20; i++)
{
wide_pen = ExtCreatePen( PS_GEOMETRIC | PS_ENDCAP_FLAT | PS_JOIN_BEVEL | PS_SOLID,
i, &log_brush, 0, NULL );
ok( wide_pen != 0, "failed to create pen\n" );
DeleteObject( SelectObject( hdc, wide_pen ));
SetTextColor(hdc, RGB( 2*i, i, 255 - i ) );
SetBkColor(hdc, RGB( 255 - i, i, i / 3 ) );
MoveToEx( hdc, 10 * i, 10, NULL );
LineTo( hdc, 10 * i, 200 + i );
LineTo( hdc, 20 * i, 200 + i );
}
/* NT4 broken for all cases, W2K for 1 bpp only */
compare_hash_broken_todo( bmi, bits, sha1, "wide brushed pen", 1 + dib_is_1bpp, dib_is_1bpp );
memset(bits, 0xcc, dib_size);
for (i = 1; i < 20; i++)
{
wide_pen = ExtCreatePen( PS_GEOMETRIC | PS_ENDCAP_FLAT | PS_JOIN_BEVEL | (i % 5),
i, &log_brush, 0, NULL );
DeleteObject( SelectObject( hdc, wide_pen ));
SetTextColor(hdc, RGB( 2*i, i, 255 - i ) );
SetBkColor(hdc, RGB( i, 255 - i, i / 3 ) );
MoveToEx( hdc, 10 * i, 10, NULL );
LineTo( hdc, 10 * i, 200 + i );
LineTo( hdc, 20 * i, 200 + i );
}
/* NT4 broken for all cases, W2K for 1 bpp only */
compare_hash_broken_todo( bmi, bits, sha1, "dashed wide brushed pen", 1 + dib_is_1bpp, dib_is_1bpp );
memset(bits, 0xcc, dib_size);
DeleteObject(bmp);
SetTextColor(hdc, old_text);
SetBkColor(hdc, old_bkgnd);
SelectObject( hdc, orig_pen );
/* PALETTEINDEX */
solid_brush = CreateSolidBrush( PALETTEINDEX(3) );