From: Connor McAdams cmcadams@codeweavers.com
Signed-off-by: Connor McAdams cmcadams@codeweavers.com --- dlls/d3d9/device.c | 6 ++++++ dlls/d3d9/tests/device.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index e5b5463dbba..3af87dcba39 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -1078,6 +1078,12 @@ static HRESULT d3d9_device_reset(struct d3d9_device *device,
wined3d_mutex_lock();
+ if (device->in_scene) + { + wined3d_device_end_scene(device->wined3d_device); + device->in_scene = FALSE; + } + wined3d_streaming_buffer_cleanup(&device->vertex_buffer); wined3d_streaming_buffer_cleanup(&device->index_buffer);
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 0cd290367b5..62f308e0734 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -2724,7 +2724,7 @@ static void test_scene(void)
reset_device(device, NULL); hr = IDirect3DDevice9_EndScene(device); - todo_wine ok(hr == D3DERR_INVALIDCALL, "Got hr %#lx.\n", hr); + ok(hr == D3DERR_INVALIDCALL, "Got hr %#lx.\n", hr);
hr = IDirect3DDevice9_BeginScene(device); ok(hr == S_OK, "Got hr %#lx.\n", hr);