Commit: 93c75bf99205504d5cec35829813af23b48d7cb0
Author: Brecht Van Lommel
Date:   Wed Dec 23 20:38:58 2015 +0100
Branches: master
https://developer.blender.org/rB93c75bf99205504d5cec35829813af23b48d7cb0

Fix T47051: cycles viewport textured shadeless draw bug.

===================================================================

M       source/blender/gpu/intern/gpu_basic_shader.c
M       source/blender/gpu/intern/gpu_draw.c

===================================================================

diff --git a/source/blender/gpu/intern/gpu_basic_shader.c 
b/source/blender/gpu/intern/gpu_basic_shader.c
index 6b01ee8..c441a44 100644
--- a/source/blender/gpu/intern/gpu_basic_shader.c
+++ b/source/blender/gpu/intern/gpu_basic_shader.c
@@ -205,10 +205,15 @@ void GPU_basic_shader_bind(int options)
                        glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
                }
 
-               if (options & GPU_SHADER_TEXTURE_2D)
+               if (options & GPU_SHADER_TEXTURE_2D) {
+                       GLint env_mode = (options & 
(GPU_SHADER_USE_COLOR|GPU_SHADER_LIGHTING)) ? GL_MODULATE : GL_REPLACE;
                        glEnable(GL_TEXTURE_2D);
-               else if (bound_options & GPU_SHADER_TEXTURE_2D)
+                       glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 
env_mode);
+               }
+               else if (bound_options & GPU_SHADER_TEXTURE_2D) {
+                       glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, 
GL_MODULATE);
                        glDisable(GL_TEXTURE_2D);
+               }
        }
 
        GPU_MATERIAL_STATE.bound_options = options;
diff --git a/source/blender/gpu/intern/gpu_draw.c 
b/source/blender/gpu/intern/gpu_draw.c
index 05d1154..27e428d 100644
--- a/source/blender/gpu/intern/gpu_draw.c
+++ b/source/blender/gpu/intern/gpu_draw.c
@@ -2113,6 +2113,7 @@ void GPU_state_init(void)
        glDisable(GL_STENCIL_TEST);
        glDisable(GL_TEXTURE_1D);
        glDisable(GL_TEXTURE_2D);
+       glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
 
        /* default disabled, enable should be local per function */
        glDisableClientState(GL_VERTEX_ARRAY);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to