[PATCH 4/5] ddraw/tests: Skip the overlay tests in test_block_formats_creation() if overlays are not supported.
Henri Verbeet
hverbeet at codeweavers.com
Tue Mar 11 12:41:46 CDT 2014
---
dlls/ddraw/tests/ddraw4.c | 11 ++++++++++-
dlls/ddraw/tests/ddraw7.c | 11 ++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 5a2dba1..6bb5a55 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 1218a21..6e87782 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)
--
1.7.10.4
More information about the wine-patches
mailing list