Jonas Wielicki : wined3d: Fix crash in wined3d_device_reset with gdi backend for directdraw.

Alexandre Julliard julliard at winehq.org
Wed Aug 29 15:01:38 CDT 2012


Module: wine
Branch: master
Commit: a64b7918c8171ce208e82ecc2fa909ebc3626037
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a64b7918c8171ce208e82ecc2fa909ebc3626037

Author: Jonas Wielicki <wine-patches at 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);
 




More information about the wine-cvs mailing list