void Shader::setParameter(const std::string& name, float x) { if (m_shaderProgram) { ensureGlContext(); // Enable program GLEXT_GLhandle program; glCheck(program = GLEXT_glGetHandle(GLEXT_GL_PROGRAM_OBJECT)); glCheck(GLEXT_glUseProgramObject(castToGlHandle(m_shaderProgram))); // Get parameter location and assign it new values GLint location = getParamLocation(name); if (location != -1) { glCheck(GLEXT_glUniform1f(location, x)); } // Disable program glCheck(GLEXT_glUseProgramObject(program)); } }
void Shader::setUniform(const std::string& name, float x) { UniformBinder binder(*this, name); if (binder.location != -1) glCheck(GLEXT_glUniform1f(binder.location, x)); }