[PATCH 2/5] wined3d: Only recreate GL contexts when we're using GL for rendering in wined3d_device_reset().

Henri Verbeet hverbeet at codeweavers.com
Sun Dec 4 08:50:13 CST 2011


---
 dlls/wined3d/device.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e96e3c4..515ff06 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -5604,7 +5604,8 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
         }
     }
 
-    delete_opengl_contexts(device, swapchain);
+    if (device->d3d_initialized)
+        delete_opengl_contexts(device, swapchain);
 
     if (!swapchain_desc->windowed != !swapchain->desc.windowed
             || DisplayModeChanged)
@@ -5678,7 +5679,8 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
     swapchain_update_render_to_fbo(swapchain);
     swapchain_update_draw_bindings(swapchain);
 
-    hr = create_primary_opengl_context(device, swapchain);
+    if (device->d3d_initialized)
+        hr = create_primary_opengl_context(device, swapchain);
     wined3d_swapchain_decref(swapchain);
 
     /* All done. There is no need to reload resources or shaders, this will happen automatically on the
-- 
1.7.3.4




More information about the wine-patches mailing list