Henri Verbeet : wined3d: Reset the auto depth stencil.

Alexandre Julliard julliard at winehq.org
Wed Sep 10 06:01:50 CDT 2008


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Wed Sep 10 11:08:58 2008 +0200

wined3d: Reset the auto depth stencil.

---

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

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 3cfc606..9e0cf4f 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -7356,10 +7356,17 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRE
         pPresentationParameters->hDeviceWindow != swapchain->presentParms.hDeviceWindow) {
         ERR("Cannot change the device window yet\n");
     }
-    if(pPresentationParameters->EnableAutoDepthStencil != swapchain->presentParms.EnableAutoDepthStencil) {
-        ERR("What do do about a changed auto depth stencil parameter?\n");
+    if (pPresentationParameters->EnableAutoDepthStencil && !This->auto_depth_stencil_buffer) {
+        WARN("Auto depth stencil enabled, but no auto depth stencil present, returning WINED3DERR_INVALIDCALL\n");
+        return WINED3DERR_INVALIDCALL;
     }
 
+    /* Reset the depth stencil */
+    if (pPresentationParameters->EnableAutoDepthStencil)
+        IWineD3DDevice_SetDepthStencilSurface(iface, This->auto_depth_stencil_buffer);
+    else
+        IWineD3DDevice_SetDepthStencilSurface(iface, NULL);
+
     delete_opengl_contexts(iface, (IWineD3DSwapChain *) swapchain);
 
     if(pPresentationParameters->Windowed) {




More information about the wine-cvs mailing list