[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