From a64b7918c8171ce208e82ecc2fa909ebc3626037 Mon Sep 17 00:00:00 2001 From: Jonas Wielicki Date: Wed, 29 Aug 2012 15:09:59 +0200 Subject: [PATCH] wined3d: Fix crash in wined3d_device_reset with gdi backend for directdraw. --- dlls/wined3d/device.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 9744265b013..08269574671 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5161,13 +5161,16 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, } stateblock_unbind_resources(device->stateBlock); - if (swapchain->back_buffers && swapchain->back_buffers[0]) - wined3d_device_set_render_target(device, 0, swapchain->back_buffers[0], FALSE); - else - wined3d_device_set_render_target(device, 0, swapchain->front_buffer, FALSE); - for (i = 1; i < device->adapter->gl_info.limits.buffers; ++i) + if (device->fb.render_targets) { - wined3d_device_set_render_target(device, i, NULL, FALSE); + if (swapchain->back_buffers && swapchain->back_buffers[0]) + wined3d_device_set_render_target(device, 0, swapchain->back_buffers[0], FALSE); + else + wined3d_device_set_render_target(device, 0, swapchain->front_buffer, FALSE); + for (i = 1; i < device->adapter->gl_info.limits.buffers; ++i) + { + wined3d_device_set_render_target(device, i, NULL, FALSE); + } } wined3d_device_set_depth_stencil(device, NULL); -- 2.11.4.GIT