Zebediah Figura : ddraw: Reset the stateblock state before calling wined3d_device_reset().

Alexandre Julliard julliard at winehq.org
Mon Oct 28 16:43:36 CDT 2019


Module: wine
Branch: master
Commit: 6c51a93b6378ed1ab0a8bcbc044d4f87bdfdac0b
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=6c51a93b6378ed1ab0a8bcbc044d4f87bdfdac0b

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Thu Oct 24 13:43:06 2019 -0500

ddraw: Reset the stateblock state before calling wined3d_device_reset().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ddraw/surface.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 769b5a7576..89e5024c0e 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -6068,14 +6068,6 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
             swapchain_desc.backbuffer_height = mode.height;
             swapchain_desc.backbuffer_format = mode.format_id;
 
-            if (FAILED(hr = wined3d_device_reset(ddraw->wined3d_device,
-                    &swapchain_desc, NULL, ddraw_reset_enum_callback, TRUE)))
-            {
-                ERR("Failed to reset device.\n");
-                heap_free(texture);
-                return hr_ddraw_from_wined3d(hr);
-            }
-
             if (ddraw->d3ddevice)
             {
                 if (ddraw->d3ddevice->recording)
@@ -6083,6 +6075,15 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
                 ddraw->d3ddevice->recording = NULL;
                 ddraw->d3ddevice->update_state = ddraw->d3ddevice->state;
             }
+            wined3d_stateblock_reset(ddraw->state);
+
+            if (FAILED(hr = wined3d_device_reset(ddraw->wined3d_device,
+                    &swapchain_desc, NULL, ddraw_reset_enum_callback, TRUE)))
+            {
+                ERR("Failed to reset device.\n");
+                heap_free(texture);
+                return hr_ddraw_from_wined3d(hr);
+            }
 
             wined3d_device_set_render_state(ddraw->wined3d_device, WINED3D_RS_ZENABLE,
                     !!swapchain_desc.enable_auto_depth_stencil);




More information about the wine-cvs mailing list