aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics/opengl
diff options
context:
space:
mode:
Diffstat (limited to 'backends/graphics/opengl')
-rw-r--r--backends/graphics/opengl/shader.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/backends/graphics/opengl/shader.cpp b/backends/graphics/opengl/shader.cpp
index 652da57dfa..27981f25dc 100644
--- a/backends/graphics/opengl/shader.cpp
+++ b/backends/graphics/opengl/shader.cpp
@@ -231,8 +231,14 @@ bool Shader::setUniform(const Common::String &name, ShaderUniformValue *value) {
Uniform *uniform;
if (uniformIter == _uniforms.end()) {
+ const GLint location = getUniformLocation(name.c_str());
+ if (location == -1) {
+ delete value;
+ return false;
+ }
+
uniform = &_uniforms[name];
- uniform->location = getUniformLocation(name.c_str());
+ uniform->location = location;
} else {
uniform = &uniformIter->_value;
}
@@ -242,7 +248,8 @@ bool Shader::setUniform(const Common::String &name, ShaderUniformValue *value) {
if (_isActive) {
uniform->set();
}
- return uniform->location != -1;
+
+ return true;
}
GLshader Shader::compileShader(const char *source, GLenum shaderType) {