[PATCH] arbfp_set_shader_blit should handle ENTER_GL/LEAVE_GL instead of the caller.

Roderick Colenbrander thunderbird2k at gmx.net
Sat Oct 18 12:33:15 CDT 2008


---
 dlls/wined3d/arb_program_shader.c |    4 ++++
 dlls/wined3d/surface.c            |    3 ++-
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 3258e3e..3dbed28 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -3662,8 +3662,10 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, WINED3DFORMAT fmt, GLenum t
        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 @@ static HRESULT arbfp_blit_set(IWineD3DDevice *iface, WINED3DFORMAT fmt, GLenum t
         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 c73c398..a90f2c7 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -3486,10 +3486,11 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
             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");
-- 
1.5.3.8


--========GMX148571224361337160703--



More information about the wine-patches mailing list