From d37472f27b8c91f8d92f3286e5a53ca4c473df83 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 29 May 2009 09:13:20 +0200 Subject: [PATCH] wined3d: Add missing ActivateContext calls to shader_destroy() implementations. --- dlls/wined3d/arb_program_shader.c | 5 ++++- dlls/wined3d/glsl_shader.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 922f62b4da8..5d374409f9d 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -2503,7 +2503,10 @@ static void shader_arb_deselect_depth_blt(IWineD3DDevice *iface) { static void shader_arb_destroy(IWineD3DBaseShader *iface) { IWineD3DBaseShaderImpl *baseShader = (IWineD3DBaseShaderImpl *) iface; - const WineD3D_GL_Info *gl_info = &((IWineD3DDeviceImpl *)baseShader->baseShader.device)->adapter->gl_info; + IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *)baseShader->baseShader.device; + const WineD3D_GL_Info *gl_info = &device->adapter->gl_info; + + ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); if (shader_is_pshader_version(baseShader->baseShader.reg_maps.shader_version.type)) { diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 08bcaa67168..c4b5cca5350 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -4295,6 +4295,8 @@ static void shader_glsl_destroy(IWineD3DBaseShader *iface) { */ char pshader = shader_is_pshader_version(This->baseShader.reg_maps.shader_version.type); + ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); + if(pshader) { struct glsl_pshader_private *shader_data; ps = (IWineD3DPixelShaderImpl *) This; -- 2.11.4.GIT