diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c index 28ba0fc6500..842a8ca342a 100644 --- a/dlls/gdi32/tests/dib.c +++ b/dlls/gdi32/tests/dib.c @@ -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) );