Henri Verbeet : ddraw/tests: Skip the overlay tests in test_block_formats_creation() if overlays are not supported.

Alexandre Julliard julliard at winehq.org
Tue Mar 11 14:45:41 CDT 2014


Module: wine
Branch: master
Commit: 82780d6ba62f105e06a96fa5c0328a65078ca047
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=82780d6ba62f105e06a96fa5c0328a65078ca047

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Mar 11 18:41:46 2014 +0100

ddraw/tests: Skip the overlay tests in test_block_formats_creation() if overlays are not supported.

---

 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 3b1f8d4..bb725e7 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 b4570af..15e89a1 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)




More information about the wine-cvs mailing list