Fixed love.graphics.getShader() to return nil when no shader is set, fixed a potential (harmless) OpenGL error when OpenGL ES is used.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2015-01-24 03:21:33 -04:00
parent d58505012b
commit b4bacb38a6
+8 -3
View File
@@ -226,7 +226,9 @@ bool Graphics::setMode(int width, int height, bool &sRGB)
glHint(GL_GENERATE_MIPMAP_HINT, GL_NICEST);
// Enable textures
glEnable(GL_TEXTURE_2D);
if (!GLAD_ES_VERSION_2_0)
glEnable(GL_TEXTURE_2D);
gl.setTextureUnit(0);
// Set pixel row alignment
@@ -279,8 +281,10 @@ bool Graphics::setMode(int width, int height, bool &sRGB)
Shader::defaultShader = newShader(Shader::defaultCode[renderer]);
}
if (!getShader())
setShader(Shader::defaultShader);
// A shader should always be active, but the default shader shouldn't be
// returned by getShader(), so we don't do setShader(defaultShader).
if (!Shader::current)
Shader::defaultShader->attach();
return true;
}
@@ -737,6 +741,7 @@ void Graphics::setShader()
{
DisplayState &state = states.back();
// This will activate the default shader.
Shader::detach();
state.shader.set(nullptr);