[Bf-blender-cvs] [93c75bf] master: Fix T47051: cycles viewport textured shadeless draw bug.
Brecht Van Lommel
noreply at git.blender.org
Wed Dec 23 21:31:45 CET 2015
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);
More information about the Bf-blender-cvs
mailing list