Module: wine Branch: master Commit: d37472f27b8c91f8d92f3286e5a53ca4c473df83 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d37472f27b8c91f8d92f3286e5...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri May 29 09:13:20 2009 +0200
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 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 922f62b..5d37440 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 08bcaa6..c4b5cca 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;