summaryrefslogtreecommitdiff
path: root/src/wx/gl_util.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-08-19 20:48:01 +0200
committerCarl Hetherington <cth@carlh.net>2025-08-25 08:44:48 +0200
commit5932d16a8a9e265ce13408128f4434c6912be292 (patch)
tree612436d02bf2ea6cabccbbac822d682b26d85ba2 /src/wx/gl_util.cc
parentc1e7425cc3cb55dd0c9ddb15d00b6c2eb2faef0f (diff)
Cleanup: wrap glUniform* calls.
Diffstat (limited to 'src/wx/gl_util.cc')
-rw-r--r--src/wx/gl_util.cc66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/wx/gl_util.cc b/src/wx/gl_util.cc
index ea0673db5..c4b85068b 100644
--- a/src/wx/gl_util.cc
+++ b/src/wx/gl_util.cc
@@ -19,6 +19,10 @@
*/
+#ifdef DCPOMATIC_WINDOWS
+#include <GL/glew.h>
+#endif
+
#include "gl_util.h"
#include "lib/dcpomatic_assert.h"
@@ -56,5 +60,67 @@ dcpomatic::gl::check_error(char const * last)
}
+Uniform::Uniform(int program, char const* name)
+{
+ setup(program, name);
+}
+
+
+void
+Uniform::setup(int program, char const* name)
+{
+ _location = glGetUniformLocation(program, name);
+ check_error("glGetUniformLocation");
+}
+
+
+UniformVec4f::UniformVec4f(int program, char const* name)
+ : Uniform(program, name)
+{
+
+}
+
+
+void
+UniformVec4f::set(float a, float b, float c, float d)
+{
+ DCPOMATIC_ASSERT(_location != -1);
+ glUniform4f(_location, a, b, c, d);
+ check_error("glUniform4f");
+}
+
+
+Uniform1i::Uniform1i(int program, char const* name)
+ : Uniform(program, name)
+{
+
+}
+
+
+void
+Uniform1i::set(int v)
+{
+ DCPOMATIC_ASSERT(_location != -1);
+ glUniform1i(_location, v);
+ check_error("glUniform1i");
+}
+
+
+UniformMatrix4fv::UniformMatrix4fv(int program, char const* name)
+ : Uniform(program, name)
+{
+
+}
+
+
+void
+UniformMatrix4fv::set(float const* matrix)
+{
+ DCPOMATIC_ASSERT(_location != -1);
+ glUniformMatrix4fv(_location, 1, GL_TRUE, matrix);
+ check_error("glUniformMatrix4fv");
+}
+
+
#endif