[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