From f3b5b1094a730d01de0a77205a3545e7fada4469 Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Fri, 16 Oct 2009 00:32:28 +0200 Subject: wined3d: IDirect3DTexture{8,9}_UnLockRect shouldn't fail trying to unlock a rectangle that wasn't locked # modified: dlls/d3d8/tests/visual.c --- dlls/d3d8/tests/visual.c | 2 +- dlls/d3d9/tests/surface.c | 2 +- dlls/wined3d/texture.c | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c index be274fb..a7f984b 100644 --- a/dlls/d3d8/tests/visual.c +++ b/dlls/d3d8/tests/visual.c @@ -1215,7 +1215,7 @@ static void texop_test(IDirect3DDevice8 *device) hr = IDirect3DTexture8_UnlockRect(texture, 0); ok(SUCCEEDED(hr), "UnLockRect failed with 0x%08x\n", hr); hr = IDirect3DTexture8_UnlockRect(texture, 0); - todo_wine ok(SUCCEEDED(hr), "Double UnLockRect failed with 0x%08x\n", hr); + ok(SUCCEEDED(hr), "Double UnLockRect failed with 0x%08x\n", hr); hr = IDirect3DDevice8_SetTexture(device, 0, (IDirect3DBaseTexture8 *)texture); ok(SUCCEEDED(hr), "SetTexture failed with 0x%08x\n", hr); diff --git a/dlls/d3d9/tests/surface.c b/dlls/d3d9/tests/surface.c index 3de9f5a..5a247b3 100644 --- a/dlls/d3d9/tests/surface.c +++ b/dlls/d3d9/tests/surface.c @@ -169,7 +169,7 @@ static void test_surface_alignment(IDirect3DDevice9 *device_ptr) hr = IDirect3DTexture9_UnlockRect(pTexture, j); ok(SUCCEEDED(hr), "IDirect3DTexture9_UnLockRect: %08x\n", hr); hr = IDirect3DTexture9_UnlockRect(pTexture, j); -todo_wine ok(SUCCEEDED(hr), "Double IDirect3DTexture9_UnLockRect failed with %08x\n", hr); + ok(SUCCEEDED(hr), "Double IDirect3DTexture9_UnLockRect failed with %08x\n", hr); pitch = ((descr.Width + 3) >> 2) << 3; if (i > 0) pitch <<= 1; diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 36d8316..81b0754 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -387,7 +387,12 @@ static HRESULT WINAPI IWineD3DTextureImpl_UnlockRect(IWineD3DTexture *iface, UIN } else { WARN("(%p) level(%d) overflow Levels(%d)\n", This, Level, This->baseTexture.levels); } - return hr; + + switch(hr) + { + case WINEDDERR_NOTLOCKED: return WINED3D_OK; + default: return hr; + } } static HRESULT WINAPI IWineD3DTextureImpl_AddDirtyRect(IWineD3DTexture *iface, CONST RECT* pDirtyRect) { -- 1.6.0.4