Stefan Dösinger : wined3d: Restore the gamma when destroying the swapchain.

Alexandre Julliard julliard at winehq.org
Wed Jul 2 06:03:42 CDT 2008


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Jul  1 11:17:38 2008 -0500

wined3d: Restore the gamma when destroying the swapchain.

---

 dlls/wined3d/device.c          |    2 ++
 dlls/wined3d/swapchain.c       |    4 ++++
 dlls/wined3d/wined3d_private.h |    1 +
 3 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 7754e50..d7e157d 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1599,6 +1599,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateAdditionalSwapChain(IWineD3DDevic
         object->wantsDepthStencilBuffer = FALSE;
     }
 
+    IWineD3DSwapChain_GetGammaRamp((IWineD3DSwapChain *) object, &object->orig_gamma);
+
     TRACE("Created swapchain %p\n", object);
     TRACE("FrontBuf @ %p, BackBuf @ %p, DepthStencil %d\n",object->frontBuffer, object->backBuffer ? object->backBuffer[0] : NULL, object->wantsDepthStencilBuffer);
     return WINED3D_OK;
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 5cc1c59..e564a81 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -88,6 +88,10 @@ static void WINAPI IWineD3DSwapChainImpl_Destroy(IWineD3DSwapChain *iface, D3DCB
     WINED3DDISPLAYMODE mode;
     int i;
 
+    TRACE("Destroying swapchain %p\n", iface);
+
+    IWineD3DSwapChain_SetGammaRamp(iface, 0, &This->orig_gamma);
+
     /* release the ref to the front and back buffer parents */
     if(This->frontBuffer) {
         IWineD3DSurface_SetContainer(This->frontBuffer, 0);
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index ae36ad1..83955b9 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1698,6 +1698,7 @@ typedef struct IWineD3DSwapChainImpl
     WINED3DPRESENT_PARAMETERS presentParms;
     DWORD                     orig_width, orig_height;
     WINED3DFORMAT             orig_fmt;
+    WINED3DGAMMARAMP          orig_gamma;
 
     long prev_time, frames;   /* Performance tracking */
     unsigned int vSyncCounter;




More information about the wine-cvs mailing list