class Node;
// Convenience functions that deal with prepending the prefix.
+// Note that using EffectChain::register_uniform_*() is more efficient
+// than calling these from set_gl_state().
GLint get_uniform_location(GLuint glsl_program_num, const std::string &prefix, const std::string &key);
+void get_uniform_offset_and_size(GLuint glsl_program_num, const std::string &prefix, const std::string &key, GLint *offset, GLint *size);
void set_uniform_int(GLuint glsl_program_num, const std::string &prefix, const std::string &key, int value);
void set_uniform_float(GLuint glsl_program_num, const std::string &prefix, const std::string &key, float value);
void set_uniform_vec2(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values);