[PATCH] WineD3D: Restore the gamma when destroying the swapchain=0A=

Stefan Doesinger stefan at codeweavers.com
Tue Jul 1 11:17:38 CDT 2008


=0A=
---=0A=
 dlls/wined3d/device.c          |    2 ++=0A=
 dlls/wined3d/swapchain.c       |    4 ++++=0A=
 dlls/wined3d/wined3d_private.h |    1 +=0A=
 3 files changed, 7 insertions(+), 0 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c=0A=
index 59bf06f..a2c976b 100644=0A=
--- a/dlls/wined3d/device.c=0A=
+++ b/dlls/wined3d/device.c=0A=
@@ -1599,6 +1599,8 @@ static HRESULT WINAPI =
IWineD3DDeviceImpl_CreateAdditionalSwapChain(IWineD3DDevic=0A=
         object->wantsDepthStencilBuffer =3D FALSE;=0A=
     }=0A=
 =0A=
+    IWineD3DSwapChain_GetGammaRamp((IWineD3DSwapChain *) object, =
&object->orig_gamma);=0A=
+=0A=
     TRACE("Created swapchain %p\n", object);=0A=
     TRACE("FrontBuf @ %p, BackBuf @ %p, DepthStencil =
%d\n",object->frontBuffer, object->backBuffer ? object->backBuffer[0] : =
NULL, object->wantsDepthStencilBuffer);=0A=
     return WINED3D_OK;=0A=
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c=0A=
index 5cc1c59..3efdc8a 100644=0A=
--- a/dlls/wined3d/swapchain.c=0A=
+++ b/dlls/wined3d/swapchain.c=0A=
@@ -86,7 +86,11 @@ static HRESULT WINAPI =
IWineD3DSwapChainImpl_GetParent(IWineD3DSwapChain *iface,=0A=
 static void WINAPI IWineD3DSwapChainImpl_Destroy(IWineD3DSwapChain =
*iface, D3DCB_DESTROYSURFACEFN D3DCB_DestroyRenderTarget) {=0A=
     IWineD3DSwapChainImpl *This =3D (IWineD3DSwapChainImpl *)iface;=0A=
     WINED3DDISPLAYMODE mode;=0A=
+    WINED3DGAMMARAMP gamma;=0A=
     int i;=0A=
+    TRACE("Destroying swapchain %p\n", iface);=0A=
+=0A=
+    IWineD3DSwapChain_SetGammaRamp(iface, 0, &This->orig_gamma);=0A=
 =0A=
     /* release the ref to the front and back buffer parents */=0A=
     if(This->frontBuffer) {=0A=
diff --git a/dlls/wined3d/wined3d_private.h =
b/dlls/wined3d/wined3d_private.h=0A=
index ae36ad1..83955b9 100644=0A=
--- a/dlls/wined3d/wined3d_private.h=0A=
+++ b/dlls/wined3d/wined3d_private.h=0A=
@@ -1698,6 +1698,7 @@ typedef struct IWineD3DSwapChainImpl=0A=
     WINED3DPRESENT_PARAMETERS presentParms;=0A=
     DWORD                     orig_width, orig_height;=0A=
     WINED3DFORMAT             orig_fmt;=0A=
+    WINED3DGAMMARAMP          orig_gamma;=0A=
 =0A=
     long prev_time, frames;   /* Performance tracking */=0A=
     unsigned int vSyncCounter;=0A=
-- =0A=
1.5.4.5=0A=
=0A=

------=_NextPart_000_0010_01C8DB84.AA8C3320--




More information about the wine-patches mailing list