Fixed per-vertex colors (e.g. spritebatch colors) improperly applying gamma correction when the default shader is used and gamma correction is requested but not supported on OpenGL ES.

This commit is contained in:
Alex Szpakowski
2016-03-26 12:01:34 -03:00
parent 829cf5fd06
commit aa88383793
5 changed files with 69 additions and 77 deletions
+4 -2
View File
@@ -317,18 +317,20 @@ bool Graphics::setMode(int width, int height)
pixelSizeStack.reserve(5);
pixelSizeStack.push_back(1);
int gammacorrect = isGammaCorrect() ? 1 : 0;
// We always need a default shader.
if (!Shader::defaultShader)
{
Renderer renderer = GLAD_ES_VERSION_2_0 ? RENDERER_OPENGLES : RENDERER_OPENGL;
Shader::defaultShader = newShader(Shader::defaultCode[renderer]);
Shader::defaultShader = newShader(Shader::defaultCode[renderer][gammacorrect]);
}
// and a default video shader.
if (!Shader::defaultVideoShader)
{
Renderer renderer = GLAD_ES_VERSION_2_0 ? RENDERER_OPENGLES : RENDERER_OPENGL;
Shader::defaultVideoShader = newShader(Shader::defaultVideoCode[renderer]);
Shader::defaultVideoShader = newShader(Shader::defaultVideoCode[renderer][gammacorrect]);
}
// A shader should always be active, but the default shader shouldn't be