Module: wine Branch: master Commit: a64b7918c8171ce208e82ecc2fa909ebc3626037 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a64b7918c8171ce208e82ecc2f...
Author: Jonas Wielicki wine-patches@sotecware.net Date: Wed Aug 29 15:09:59 2012 +0200
wined3d: Fix crash in wined3d_device_reset with gdi backend for directdraw.
---
dlls/wined3d/device.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 9744265..0826957 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);