gdi32/tests: Add more tests for arbitrary 32-bpp bitfields as destination.
This commit is contained in:
parent
1af12ff9b5
commit
5500e97d19
|
@ -174,6 +174,106 @@ static const char *sha1_graphics_a8b8g8r8[] =
|
|||
NULL
|
||||
};
|
||||
|
||||
static const char *sha1_graphics_r10g10b10[] =
|
||||
{
|
||||
"a3cadd34d95d3d5cc23344f69aab1c2e55935fcf",
|
||||
"b340b5d4750dd3dcd95d73c41b2c3a17f799210b",
|
||||
"b1db68f35022c5fd43519ec8e98047e16bc4fff8",
|
||||
"6e1902eb24865e74066fa9f2a7a49e6f9154f62f",
|
||||
"35df9f4b0965fedf7bca36aa4f17b0fa20e2cd03",
|
||||
"5652e1feb7d4f22c8a2721fd141157e0b9ef965e",
|
||||
"22d89d5933f8b9bd60e9b22e42e7f5659269b63d",
|
||||
"0ad27de0c916c073d0d18484fff899bbdb258db7",
|
||||
"7c05ee5a01dad1e187537701a95382f0a3ec28dc",
|
||||
"b00f0b4448be722d1a19ffe33aaaac4df848d397",
|
||||
"7e5ce5c05a54e83890f022ba4e9853e4b254bf0c",
|
||||
"2986b431a0022153e5f875da77cc792e3825ebd5",
|
||||
"ca4b25a5459885ce1e0a36844612087893d425b1",
|
||||
"181bd4616796d89174cedc0332fb320b65aeb0e2",
|
||||
"6c417b1798ee319eeb404efe4aa136ed7ed37966",
|
||||
"9a9f83e2035aa591d18101c919d1fd5b3456b46c",
|
||||
"74ce9f5658cd8aeae4601fe72fcef07d9f75ec26",
|
||||
"536eaaa901d652805a8977ecb2dc73f651094c5b",
|
||||
"b8b1ac11bcc7174c5b23c18cc7919d09a04255c2",
|
||||
"92cddcabf5365eef1e037f488af52b31669d987f",
|
||||
"2c9c4f27bade080a2cd6f9160422762e267c2f5f",
|
||||
"c7ce29d189dc06ba57e64f0cc32202f5a25ba48d",
|
||||
"7ac4cb547c8f4ce5079c95afad9d0e2b0cd76a0e",
|
||||
"d578210815e27fe210eb678a71e6d22ba4b4c196",
|
||||
"c7a027c7079dfcc831ca8bc134a509958273073c",
|
||||
"19cf978596195b848df8709aaf637f83f92b8336",
|
||||
"798a835fe50156eeb478c0a6085b088f53409d52",
|
||||
"86ddf268d854f37e5b478c48792b551b57635db6",
|
||||
"8259d388e02542207b6a08d65d553871ce1c4a09",
|
||||
"faea73ff9436223f8c4ee76ac9861a6609ac4ae4",
|
||||
"66f8d78d4971934794478afee28b3a50e97f1b82",
|
||||
"b8f16334bdced439e1c6fc69704bc95f7b46b147",
|
||||
"63798fb175afef78fa8fe8133d9de97a0cc80651",
|
||||
"5f629ab51719dd0ca5a67d880eb2631f5b598a7b",
|
||||
"1ceb85697f649a62b1753438daa14944af7f450c",
|
||||
"98ce4dbc04eb48fa0f96ef813db5b4dfa1b2dd39",
|
||||
"3addb9ccd8f56fc0825f61b1b5af67d3297f4ded",
|
||||
"ada202d2f526f6995f83412479891c1764b66e5a",
|
||||
"68348e8f54883f4fe295354b024e291c85f1038f",
|
||||
"07f55f85a5bb70de5841ea4f62a9af3d29d3d94b",
|
||||
"d39315a1399639f6d4305a342c9ccf02a463b0dd",
|
||||
"46196f50297260df2863e2fa76d2dfcf72006c23",
|
||||
"0790585dfaef94f912b1ee81477d4ac448708708",
|
||||
"43d67bc61ef54014b022891e5c024fc24b1fe797",
|
||||
"e8783644428b637adbe80bcd084a33428cb69983",
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char *sha1_graphics_r6g6b6[] =
|
||||
{
|
||||
"a3cadd34d95d3d5cc23344f69aab1c2e55935fcf",
|
||||
"a1adb32e70188a00f82fe58156b4da74f3ef7a0a",
|
||||
"5b9dab3d8411afb25fbbeba0313db526815ac189",
|
||||
"6415f551e28e1b38b2d721f0a9e003b7d215f6b2",
|
||||
"2028d1b0d1acef35dc07027135023f35fb9746b9",
|
||||
"378713720dcb5aadb730435ad0989a68ab189114",
|
||||
"084152773feb01a85df6006f2f4f288a1442d37a",
|
||||
"97b824953f60fc9a91028045baacbe7b7dc82b14",
|
||||
"f33b1931f392bd09b3494efc23cf7d0ed3071014",
|
||||
"287d755448e72e29e4812193e2b6f8098a214d82",
|
||||
"4059d295aa05ace77853d7ee3d74305cdcbec9f5",
|
||||
"2557ebd4fdacc0e5bcce3dae88a46dd247654ea1",
|
||||
"e51bcf80211cd06e7d10225534b7a79b5454be27",
|
||||
"9bf91a547f47b29bf370e9b60eae7cd6ce987617",
|
||||
"0b94e0a5b739ab0020130646522e53da35a149ad",
|
||||
"eab6e532845dfd5dc2701ef90669a5f7b63e9539",
|
||||
"90deb2e2502186b3c62a58ec9b1c9d2b7b4089c1",
|
||||
"a4e451f76a77bbc3e224a41e9b4fa78cb841a8af",
|
||||
"084607a5c99a84140d93db57d1b0f3a0f51afdac",
|
||||
"2128157e601ef0d6b3636b7387d3b28e876de728",
|
||||
"8bdcdcd463f0052279d070ac763757f4db975483",
|
||||
"9ea0ad22d7b61598fe36e9c942242e8e07e32edb",
|
||||
"c39a25a61c4eade48dea62a97c9fb8714c06a8af",
|
||||
"66b130f83381957cfc4763558c5f5cddf2e3b564",
|
||||
"d548135ce2320499277ce12b80bc35004f8a9787",
|
||||
"85a4f3f1b4b0a170198f1bb5d225fcf77887665e",
|
||||
"1906ddfd829e735af49245171f8eb7673295d399",
|
||||
"971a0b786d5bccb1bfb9cbb054740e4eb36f9b7a",
|
||||
"e2896035f178b3d20e4f4d1accb1b3d1b4028865",
|
||||
"defd95a10d44cad6e736542920b74efd53e9e7eb",
|
||||
"eaccd012c0fc46e79cae1997ef101979e5654d8d",
|
||||
"3f11a735e52030aa3d0f024d83803698293d10e5",
|
||||
"82f45c5a34fbb9e36d947a876834d33a1f69719c",
|
||||
"3d27002f4fe3c943468b7e3ef6985962c41ac8dc",
|
||||
"3231c4d87faefb7ec5bd377613969c05b70343fc",
|
||||
"00394e438e9edde978e88602c9ad2a572e965bf6",
|
||||
"e760be69cb37c7be35d5968d7a294e1fd49d4f66",
|
||||
"c1250ff2b67e6d2a8baccc5c93f8f5ad933c5c4f",
|
||||
"3d6cf3753390a05504b1f50302f767df443f0f40",
|
||||
"b7cf1bafe002673ae58ff50feea61ee32a1ae10a",
|
||||
"0a613357e1e8ec8ff1ad956e46e527a05cab8500",
|
||||
"bdd8ed3ca3ad107b43731ec253ecaa34750a10de",
|
||||
"47499ad13b719de18c59c2bc9b38ed578db50b95",
|
||||
"cd01f2c0a63b2229d4467d2f874d58edca32b3d4",
|
||||
"94b54f1da5212b3f3a1195eda5ea927e160bc89d",
|
||||
NULL
|
||||
};
|
||||
|
||||
static const char *sha1_graphics_24[] =
|
||||
{
|
||||
"e993b15c9bd14fb45a15310450b7083c44e42665",
|
||||
|
@ -488,6 +588,8 @@ static const char *sha1_graphics_1[] =
|
|||
NULL
|
||||
};
|
||||
|
||||
static const char *dst_format;
|
||||
|
||||
static inline DWORD get_stride(BITMAPINFO *bmi)
|
||||
{
|
||||
return ((bmi->bmiHeader.biBitCount * bmi->bmiHeader.biWidth + 31) >> 3) & ~3;
|
||||
|
@ -559,11 +661,11 @@ static void compare_hash_broken_todo(BITMAPINFO *bmi, BYTE *bits, const char ***
|
|||
ok_cond = ok_cond || broken( !strcmp(hash, (*sha1)[i]) );
|
||||
|
||||
if(todo)
|
||||
todo_wine ok( ok_cond, "%d: %s: expected hash %s got %s\n",
|
||||
bmi->bmiHeader.biBitCount, info, **sha1, hash );
|
||||
todo_wine ok( ok_cond, "%s: %s: expected hash %s got %s\n",
|
||||
dst_format, info, **sha1, hash );
|
||||
else
|
||||
ok( ok_cond, "%d: %s: expected hash %s got %s\n",
|
||||
bmi->bmiHeader.biBitCount, info, **sha1, hash );
|
||||
ok( ok_cond, "%s: %s: expected hash %s got %s\n",
|
||||
dst_format, info, **sha1, hash );
|
||||
|
||||
*sha1 += num_broken + 1;
|
||||
|
||||
|
@ -1432,6 +1534,7 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "8888";
|
||||
sha1 = sha1_graphics_a8r8g8b8;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
@ -1456,14 +1559,15 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "8888 - bitfields";
|
||||
sha1 = sha1_graphics_a8r8g8b8;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
SelectObject(mem_dc, orig_bm);
|
||||
DeleteObject(dib);
|
||||
|
||||
/* a8b8g8r8 - bitfields. */
|
||||
trace("a8b8g8r8 - bitfields\n");
|
||||
/* a8b8g8r8. */
|
||||
trace("a8b8g8r8\n");
|
||||
bmi->bmiHeader.biBitCount = 32;
|
||||
bmi->bmiHeader.biCompression = BI_BITFIELDS;
|
||||
bit_fields[0] = 0x0000ff;
|
||||
|
@ -1480,12 +1584,63 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "a8b8g8r8";
|
||||
sha1 = sha1_graphics_a8b8g8r8;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
SelectObject(mem_dc, orig_bm);
|
||||
DeleteObject(dib);
|
||||
|
||||
/* r10g10b10. */
|
||||
trace("r10g10b10\n");
|
||||
bmi->bmiHeader.biBitCount = 32;
|
||||
bmi->bmiHeader.biCompression = BI_BITFIELDS;
|
||||
bit_fields[0] = 0x3ff00000;
|
||||
bit_fields[1] = 0x000ffc00;
|
||||
bit_fields[2] = 0x000003ff;
|
||||
|
||||
dib = CreateDIBSection(mem_dc, bmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
||||
ok(dib != NULL, "ret NULL\n");
|
||||
ok(GetObjectW( dib, sizeof(ds), &ds ), "GetObject failed\n");
|
||||
ok(ds.dsBitfields[0] == 0x3ff00000, "got %08x\n", ds.dsBitfields[0]);
|
||||
ok(ds.dsBitfields[1] == 0x000ffc00, "got %08x\n", ds.dsBitfields[1]);
|
||||
ok(ds.dsBitfields[2] == 0x000003ff, "got %08x\n", ds.dsBitfields[2]);
|
||||
ok(ds.dsBmih.biCompression == BI_BITFIELDS, "got %x\n", ds.dsBmih.biCompression);
|
||||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "r10g10b10";
|
||||
sha1 = sha1_graphics_r10g10b10;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
SelectObject(mem_dc, orig_bm);
|
||||
DeleteObject(dib);
|
||||
|
||||
/* r6g6b6. */
|
||||
trace("r6g6b6\n");
|
||||
bmi->bmiHeader.biBitCount = 32;
|
||||
bmi->bmiHeader.biCompression = BI_BITFIELDS;
|
||||
bit_fields[0] = 0x0003f000;
|
||||
bit_fields[1] = 0x00000fc0;
|
||||
bit_fields[2] = 0x0000003f;
|
||||
|
||||
dib = CreateDIBSection(mem_dc, bmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
||||
ok(dib != NULL, "ret NULL\n");
|
||||
ok(GetObjectW( dib, sizeof(ds), &ds ), "GetObject failed\n");
|
||||
ok(ds.dsBitfields[0] == 0x0003f000, "got %08x\n", ds.dsBitfields[0]);
|
||||
ok(ds.dsBitfields[1] == 0x00000fc0, "got %08x\n", ds.dsBitfields[1]);
|
||||
ok(ds.dsBitfields[2] == 0x0000003f, "got %08x\n", ds.dsBitfields[2]);
|
||||
ok(ds.dsBmih.biCompression == BI_BITFIELDS, "got %x\n", ds.dsBmih.biCompression);
|
||||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "r6g6b6";
|
||||
sha1 = sha1_graphics_r6g6b6;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
SelectObject(mem_dc, orig_bm);
|
||||
DeleteObject(dib);
|
||||
|
||||
/* 24 */
|
||||
trace("24\n");
|
||||
bmi->bmiHeader.biBitCount = 24;
|
||||
|
@ -1495,6 +1650,7 @@ static void test_simple_graphics(void)
|
|||
ok(dib != NULL, "ret NULL\n");
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "24";
|
||||
sha1 = sha1_graphics_24;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
@ -1516,6 +1672,7 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "r5g5b5";
|
||||
sha1 = sha1_graphics_r5g5b5;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
@ -1539,6 +1696,7 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "r4g4b4";
|
||||
sha1 = sha1_graphics_r4g4b4;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
@ -1571,6 +1729,7 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "8";
|
||||
sha1 = sha1_graphics_8;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
@ -1586,6 +1745,7 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "4";
|
||||
sha1 = sha1_graphics_4;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
@ -1609,6 +1769,7 @@ static void test_simple_graphics(void)
|
|||
|
||||
orig_bm = SelectObject(mem_dc, dib);
|
||||
|
||||
dst_format = "1";
|
||||
sha1 = sha1_graphics_1;
|
||||
draw_graphics(mem_dc, bmi, bits, &sha1);
|
||||
|
||||
|
|
Loading…
Reference in New Issue