Henri Verbeet : wined3d: Set the sampler only once in shader_glsl_select_depth_blt().

Alexandre Julliard julliard at winehq.org
Mon Oct 20 08:00:42 CDT 2008


Module: wine
Branch: master
Commit: bf187ed1e02b8fdec8509318538178c18cc35795
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bf187ed1e02b8fdec8509318538178c18cc35795

Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Mon Oct 20 00:15:13 2008 +0200

wined3d: Set the sampler only once in shader_glsl_select_depth_blt().

It (obviously) never changes.

---

 dlls/wined3d/glsl_shader.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index f1225c5..65ec578 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -3458,15 +3458,16 @@ static void shader_glsl_select_depth_blt(IWineD3DDevice *iface) {
     IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
     WineD3D_GL_Info *gl_info = &This->adapter->gl_info;
     struct shader_glsl_priv *priv = (struct shader_glsl_priv *) This->shader_priv;
-    static GLhandleARB loc = -1;
 
     if (!priv->depth_blt_glsl_program_id) {
+        GLhandleARB loc;
         priv->depth_blt_glsl_program_id = create_glsl_blt_shader(gl_info);
         loc = GL_EXTCALL(glGetUniformLocationARB(priv->depth_blt_glsl_program_id, "sampler"));
+        GL_EXTCALL(glUseProgramObjectARB(priv->depth_blt_glsl_program_id));
+        GL_EXTCALL(glUniform1iARB(loc, 0));
+    } else {
+        GL_EXTCALL(glUseProgramObjectARB(priv->depth_blt_glsl_program_id));
     }
-
-    GL_EXTCALL(glUseProgramObjectARB(priv->depth_blt_glsl_program_id));
-    GL_EXTCALL(glUniform1iARB(loc, 0));
 }
 
 static void shader_glsl_deselect_depth_blt(IWineD3DDevice *iface) {




More information about the wine-cvs mailing list