diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c index 3b1f8d453d6..bb725e712df 100644 --- a/dlls/ddraw/tests/ddraw4.c +++ b/dlls/ddraw/tests/ddraw4.c @@ -4043,6 +4043,8 @@ static void test_block_formats_creation(void) DWORD supported_fmts = 0, supported_overlay_fmts = 0; DWORD num_fourcc_codes = 0, *fourcc_codes; DDSURFACEDESC2 ddsd; + DDCAPS hal_caps; + static const struct { DWORD fourcc; @@ -4132,12 +4134,19 @@ static void test_block_formats_creation(void) } HeapFree(GetProcessHeap(), 0, fourcc_codes); + memset(&hal_caps, 0, sizeof(hal_caps)); + hal_caps.dwSize = sizeof(hal_caps); + hr = IDirectDraw4_GetCaps(ddraw, &hal_caps, NULL); + ok(SUCCEEDED(hr), "Failed to get caps, hr %#x.\n", hr); + for (i = 0; i < sizeof(formats) / sizeof(*formats); i++) { for (j = 0; j < sizeof(types) / sizeof(*types); j++) { BOOL support; - if (formats[i].overlay != types[j].overlay) + + if (formats[i].overlay != types[j].overlay + || (types[j].overlay && !(hal_caps.dwCaps & DDCAPS_OVERLAY))) continue; if (formats[i].overlay) diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index b4570af4814..15e89a18f01 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -3850,6 +3850,8 @@ static void test_block_formats_creation(void) DWORD supported_fmts = 0, supported_overlay_fmts = 0; DWORD num_fourcc_codes = 0, *fourcc_codes; DDSURFACEDESC2 ddsd; + DDCAPS hal_caps; + static const struct { DWORD fourcc; @@ -3939,12 +3941,19 @@ static void test_block_formats_creation(void) } HeapFree(GetProcessHeap(), 0, fourcc_codes); + memset(&hal_caps, 0, sizeof(hal_caps)); + hal_caps.dwSize = sizeof(hal_caps); + hr = IDirectDraw7_GetCaps(ddraw, &hal_caps, NULL); + ok(SUCCEEDED(hr), "Failed to get caps, hr %#x.\n", hr); + for (i = 0; i < sizeof(formats) / sizeof(*formats); i++) { for (j = 0; j < sizeof(types) / sizeof(*types); j++) { BOOL support; - if (formats[i].overlay != types[j].overlay) + + if (formats[i].overlay != types[j].overlay + || (types[j].overlay && !(hal_caps.dwCaps & DDCAPS_OVERLAY))) continue; if (formats[i].overlay)