wined3d: Properly reset the stateblock.
Henri Verbeet
hverbeet at codeweavers.com
Fri Dec 19 12:21:55 CST 2008
---
dlls/wined3d/device.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index f4554eb..36fbcba 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -7125,6 +7125,17 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Reset(IWineD3DDevice* iface, WINED3DPRE
This->exStyle = exStyle;
}
+ TRACE("Resetting stateblock\n");
+ IWineD3DStateBlock_Release((IWineD3DStateBlock *)This->updateStateBlock);
+ IWineD3DStateBlock_Release((IWineD3DStateBlock *)This->stateBlock);
+
+ /* Note: No parent needed for initial internal stateblock */
+ hr = IWineD3DDevice_CreateStateBlock(iface, WINED3DSBT_INIT, (IWineD3DStateBlock **)&This->stateBlock, NULL);
+ if (FAILED(hr)) ERR("Resetting the stateblock failed with error 0x%08x\n", hr);
+ else TRACE("Created stateblock %p\n", This->stateBlock);
+ This->updateStateBlock = This->stateBlock;
+ IWineD3DStateBlock_AddRef((IWineD3DStateBlock *)This->updateStateBlock);
+
hr = IWineD3DStateBlock_InitStartupStateBlock((IWineD3DStateBlock *) This->stateBlock);
if(FAILED(hr)) {
ERR("Resetting the stateblock failed with error 0x%08x\n", hr);
--
1.5.6.4
--------------070609080508010409010103--
More information about the wine-patches
mailing list