From cb03e216e5a7081c118ad2567e1d6b9f98aafca1 Mon Sep 17 00:00:00 2001 From: Riccardo Bortolato Date: Tue, 22 Dec 2015 22:43:41 +0100 Subject: [PATCH] ddraw: Check for mipmap sublevel through caps in ddraw_surface7_SetColorKey(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enabled some previously failing tests in ddraw/tests/ddraw7.c. Signed-off-by: Riccardo Bortolato Signed-off-by: Stefan Dösinger Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/ddraw/surface.c | 7 +------ dlls/ddraw/tests/ddraw7.c | 8 ++++---- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 8a91d4b8d18..87f5bb04318 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -4726,13 +4726,8 @@ static HRESULT WINAPI ddraw_surface7_SetColorKey(IDirectDrawSurface7 *iface, DWO TRACE("iface %p, flags %#x, color_key %p.\n", iface, flags, color_key); - wined3d_mutex_lock(); - if (!surface->wined3d_texture) - { - wined3d_mutex_unlock(); + if (surface->surface_desc.ddsCaps.dwCaps2 & DDSCAPS2_MIPMAPSUBLEVEL) return DDERR_NOTONMIPMAPSUBLEVEL; - } - wined3d_mutex_unlock(); return ddraw_surface_set_color_key(surface, flags, color_key); } diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c index 0fd69993d14..632dc7d7c7c 100644 --- a/dlls/ddraw/tests/ddraw7.c +++ b/dlls/ddraw/tests/ddraw7.c @@ -1764,15 +1764,15 @@ static void test_ck_complex(void) color_key.dwColorSpaceLowValue = 0x000000ff; color_key.dwColorSpaceHighValue = 0x000000ff; hr = IDirectDrawSurface7_SetColorKey(mipmap, DDCKEY_SRCBLT, &color_key); - todo_wine ok(SUCCEEDED(hr), "Failed to set color key, hr %#x.\n", hr); + ok(SUCCEEDED(hr), "Failed to set color key, hr %#x.\n", hr); color_key.dwColorSpaceLowValue = 0; color_key.dwColorSpaceHighValue = 0; hr = IDirectDrawSurface7_GetColorKey(mipmap, DDCKEY_SRCBLT, &color_key); - todo_wine ok(SUCCEEDED(hr), "Failed to get color key, hr %#x.\n", hr); - todo_wine ok(color_key.dwColorSpaceLowValue == 0x000000ff, "Got unexpected value 0x%08x.\n", + ok(SUCCEEDED(hr), "Failed to get color key, hr %#x.\n", hr); + ok(color_key.dwColorSpaceLowValue == 0x000000ff, "Got unexpected value 0x%08x.\n", color_key.dwColorSpaceLowValue); - todo_wine ok(color_key.dwColorSpaceHighValue == 0x000000ff, "Got unexpected value 0x%08x.\n", + ok(color_key.dwColorSpaceHighValue == 0x000000ff, "Got unexpected value 0x%08x.\n", color_key.dwColorSpaceHighValue); IDirectDrawSurface_AddRef(mipmap);