This->depth_blt_texture = 0;
}
This->shader_backend->shader_destroy_depth_blt(iface);
+ This->shader_backend->shader_free_private(iface);
for (i = 0; i < GL_LIMITS(textures); i++) {
/* Textures are recreated below */
&swapchain->presentParms);
swapchain->num_contexts = 1;
This->activeContext = swapchain->context[0];
+ IWineD3DSwapChain_Release((IWineD3DSwapChain *) swapchain);
hr = IWineD3DStateBlock_InitStartupStateBlock((IWineD3DStateBlock *) This->stateBlock);
if(FAILED(hr)) {
}
create_dummy_textures(This);
+
+ hr = This->shader_backend->shader_alloc_private(iface);
+ if(FAILED(hr)) {
+ ERR("Failed to recreate shader private data\n");
+ return hr;
+ }
+
/* All done. There is no need to reload resources or shaders, this will happen automatically on the
* first use
*/
-
- IWineD3DSwapChain_Release((IWineD3DSwapChain *) swapchain);
return WINED3D_OK;
}
static void shader_glsl_free(IWineD3DDevice *iface) {
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
HeapFree(GetProcessHeap(), 0, This->shader_priv);
+ This->shader_priv = NULL;
}
static BOOL shader_glsl_dirty_const(IWineD3DDevice *iface) {