Split out some private utilities into effect_util.cpp, so we do not need to include...
[movit] / effect_util.h
1 #ifndef _EFFECT_UTIL_H
2 #define _EFFECT_UTIL_H 1
3
4 // Utilities that are often useful for implementing Effect instances,
5 // but don't need to be included from effect.h.
6
7 #include <GL/glew.h>
8 #include <assert.h>
9 #include <stddef.h>
10 #include <Eigen/Core>
11 #include <map>
12 #include <string>
13 #include <vector>
14
15 #include "util.h"
16
17 class EffectChain;
18 class Node;
19
20 // Convenience functions that deal with prepending the prefix.
21 GLint get_uniform_location(GLuint glsl_program_num, const std::string &prefix, const std::string &key);
22 void set_uniform_int(GLuint glsl_program_num, const std::string &prefix, const std::string &key, int value);
23 void set_uniform_float(GLuint glsl_program_num, const std::string &prefix, const std::string &key, float value);
24 void set_uniform_vec2(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values);
25 void set_uniform_vec3(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values);
26 void set_uniform_vec4(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values);
27 void set_uniform_vec4_array(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const float *values, size_t num_values);
28 void set_uniform_mat3(GLuint glsl_program_num, const std::string &prefix, const std::string &key, const Eigen::Matrix3d &matrix);
29
30 #endif // !defined(_EFFECT_UTIL_H)