]> git.sesse.net Git - movit/blobdiff - effect_util.h
Split out some private utilities into effect_util.cpp, so we do not need to include...
[movit] / effect_util.h
diff --git a/effect_util.h b/effect_util.h
new file mode 100644 (file)
index 0000000..13a7754
--- /dev/null
@@ -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 <GL/glew.h>
+#include <assert.h>
+#include <stddef.h>
+#include <Eigen/Core>
+#include <map>
+#include <string>
+#include <vector>
+
+#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)