Fix T47051: cycles viewport textured shadeless draw bug.

This commit is contained in:
Brecht Van Lommel 2015-12-23 20:38:58 +01:00
parent eb6a8e4321
commit 93c75bf992
Notes: blender-bot 2024-03-22 15:57:27 +01:00
Referenced by issue #47051, Cycles viewport textured shadeless issue
2 changed files with 8 additions and 2 deletions

View File

@ -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;

View File

@ -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);