void Shader::setParameter(const std::string& name, float x, float y) { 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_glUniform2f(location, x, y)); } // Disable program glCheck(GLEXT_glUseProgramObject(program)); } }
void Shader::setUniform(const std::string& name, const Glsl::Vec2& v) { UniformBinder binder(*this, name); if (binder.location != -1) glCheck(GLEXT_glUniform2f(binder.location, v.x, v.y)); }