X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=effect_util.h;fp=effect_util.h;h=13a775401b88652149421717158e680071fdd088;hp=0000000000000000000000000000000000000000;hb=ad66f9714e4a36008c341355700272a52484a785;hpb=37f56fcbe571b2322243f6de59494bf9e0cbb37a diff --git a/effect_util.h b/effect_util.h new file mode 100644 index 0000000..13a7754 --- /dev/null +++ b/effect_util.h @@ -0,0 +1,30 @@ +#ifndef _EFFECT_UTIL_H +#define _EFFECT_UTIL_H 1 + +// Utilities that are often useful for implementing Effect instances, +// but don't need to be included from effect.h. + +#include +#include +#include +#include +#include +#include +#include + +#include "util.h" + +class EffectChain; +class Node; + +// Convenience functions that deal with prepending the prefix. +GLint get_uniform_location(GLuint glsl_program_num, const std::string &prefix, const std::string &key); +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); +void set_uniform_vec3(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values); +void set_uniform_vec4(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values); +void set_uniform_vec4_array(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values, size_t num_values); +void set_uniform_mat3(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const Eigen::Matrix3d &matrix); + +#endif // !defined(_EFFECT_UTIL_H)