wined3d: arbfp_set_shader_blit should handle ENTER_GL/LEAVE_GL instead of the caller.
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index c457b32..2727124 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -3662,8 +3662,10 @@
glDesc->conversion_group != WINED3DFMT_YV12) {
TRACE("Format: %s\n", debug_d3dformat(glDesc->conversion_group));
/* Don't bother setting up a shader for unconverted formats */
+ ENTER_GL();
glEnable(textype);
checkGLcall("glEnable(textype)");
+ LEAVE_GL();
return WINED3D_OK;
}
@@ -3691,12 +3693,14 @@
shader = gen_yuv_shader(device, glDesc->conversion_group, textype);
}
+ ENTER_GL();
glEnable(GL_FRAGMENT_PROGRAM_ARB);
checkGLcall("glEnable(GL_FRAGMENT_PROGRAM_ARB)");
GL_EXTCALL(glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, shader));
checkGLcall("glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, shader)");
GL_EXTCALL(glProgramLocalParameter4fvARB(GL_FRAGMENT_PROGRAM_ARB, 0, size));
checkGLcall("glProgramLocalParameter4fvARB");
+ LEAVE_GL();
return WINED3D_OK;
}
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 7a42e5a..53392a5 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3485,10 +3485,11 @@
rect.y1 += This->currentDesc.Height - h; rect.y2 += This->currentDesc.Height - h;
}
- ENTER_GL();
myDevice->blitter->set_shader((IWineD3DDevice *) myDevice, Src->resource.format,
Src->glDescription.target, Src->pow2Width, Src->pow2Height);
+ ENTER_GL();
+
/* Bind the texture */
glBindTexture(Src->glDescription.target, Src->glDescription.textureName);
checkGLcall("glBindTexture");