wined3d: arbfp_blit_unset should call ENTER_GL/LEAVE_GL instead of the caller.

This commit is contained in:
Roderick Colenbrander 2008-10-18 17:35:45 +00:00 committed by Alexandre Julliard
parent 8a002b09c1
commit 5163a360e0
2 changed files with 6 additions and 2 deletions

View File

@ -3707,6 +3707,8 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, WINED3DFORMAT fmt, GLenum t
static void arbfp_blit_unset(IWineD3DDevice *iface) { static void arbfp_blit_unset(IWineD3DDevice *iface) {
IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *) iface; IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *) iface;
ENTER_GL();
glDisable(GL_FRAGMENT_PROGRAM_ARB); glDisable(GL_FRAGMENT_PROGRAM_ARB);
checkGLcall("glDisable(GL_FRAGMENT_PROGRAM_ARB)"); checkGLcall("glDisable(GL_FRAGMENT_PROGRAM_ARB)");
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
@ -3719,6 +3721,7 @@ static void arbfp_blit_unset(IWineD3DDevice *iface) {
glDisable(GL_TEXTURE_RECTANGLE_ARB); glDisable(GL_TEXTURE_RECTANGLE_ARB);
checkGLcall("glDisable(GL_TEXTURE_RECTANGLE_ARB)"); checkGLcall("glDisable(GL_TEXTURE_RECTANGLE_ARB)");
} }
LEAVE_GL();
} }
static BOOL arbfp_blit_conv_supported(WINED3DFORMAT fmt) { static BOOL arbfp_blit_conv_supported(WINED3DFORMAT fmt) {

View File

@ -3556,8 +3556,6 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
glBindTexture(Src->glDescription.target, 0); glBindTexture(Src->glDescription.target, 0);
checkGLcall("glBindTexture(Src->glDescription.target, 0)"); checkGLcall("glBindTexture(Src->glDescription.target, 0)");
/* Leave the opengl state valid for blitting */
myDevice->blitter->unset_shader((IWineD3DDevice *) myDevice);
/* Restore the color key parameters */ /* Restore the color key parameters */
Src->CKeyFlags = oldCKeyFlags; Src->CKeyFlags = oldCKeyFlags;
@ -3569,6 +3567,9 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
LEAVE_GL(); LEAVE_GL();
/* Leave the opengl state valid for blitting */
myDevice->blitter->unset_shader((IWineD3DDevice *) myDevice);
/* Flush in case the drawable is used by multiple GL contexts */ /* Flush in case the drawable is used by multiple GL contexts */
if(dstSwapchain && (This == (IWineD3DSurfaceImpl *) dstSwapchain->frontBuffer || dstSwapchain->num_contexts >= 2)) if(dstSwapchain && (This == (IWineD3DSurfaceImpl *) dstSwapchain->frontBuffer || dstSwapchain->num_contexts >= 2))
glFlush(); glFlush();