]> git.tdb.fi Git - libs/gl.git/blobdiff - source/uniform.cpp
Remove the deprecated ProgramBuilder class
[libs/gl.git] / source / uniform.cpp
index 8aba365be5e5cd2238a0934eb639d6585c453d8e..c18fc360674a056315d62bb64d188b6a023a4508 100644 (file)
@@ -1,4 +1,5 @@
-#include "arb_shader_objects.h"
+#include <msp/gl/extensions/arb_shader_objects.h>
+#include <msp/gl/extensions/nv_non_square_matrices.h>
 #include "uniform.h"
 
 namespace Msp {
@@ -17,18 +18,36 @@ void UniformScalar<float>::apply(int index, unsigned size, const float *value)
 }
 
 
+template<>
+void UniformVector<int, 2>::apply(int index, unsigned size, const int *value)
+{
+       glUniform2iv(index, size, value);
+}
+
 template<>
 void UniformVector<float, 2>::apply(int index, unsigned size, const float *value)
 {
        glUniform2fv(index, size, value);
 }
 
+template<>
+void UniformVector<int, 3>::apply(int index, unsigned size, const int *value)
+{
+       glUniform3iv(index, size, value);
+}
+
 template<>
 void UniformVector<float, 3>::apply(int index, unsigned size, const float *value)
 {
        glUniform3fv(index, size, value);
 }
 
+template<>
+void UniformVector<int, 4>::apply(int index, unsigned size, const int *value)
+{
+       glUniform4iv(index, size, value);
+}
+
 template<>
 void UniformVector<float, 4>::apply(int index, unsigned size, const float *value)
 {
@@ -42,10 +61,46 @@ void UniformMatrix<float, 2, 2>::apply(int index, unsigned size, const float *va
        glUniformMatrix2fv(index, size, false, value);
 }
 
+template<>
+void UniformMatrix<float, 2, 3>::apply(int index, unsigned size, const float *value)
+{
+       glUniformMatrix3x2fv(index, size, false, value);
+}
+
+template<>
+void UniformMatrix<float, 2, 4>::apply(int index, unsigned size, const float *value)
+{
+       glUniformMatrix4x2fv(index, size, false, value);
+}
+
+template<>
+void UniformMatrix<float, 3, 2>::apply(int index, unsigned size, const float *value)
+{
+       glUniformMatrix2x3fv(index, size, false, value);
+}
+
 template<>
 void UniformMatrix<float, 3, 3>::apply(int index, unsigned size, const float *value)
 {
-       glUniformMatrix2fv(index, size, false, value);
+       glUniformMatrix3fv(index, size, false, value);
+}
+
+template<>
+void UniformMatrix<float, 3, 4>::apply(int index, unsigned size, const float *value)
+{
+       glUniformMatrix4x3fv(index, size, false, value);
+}
+
+template<>
+void UniformMatrix<float, 4, 2>::apply(int index, unsigned size, const float *value)
+{
+       glUniformMatrix2x4fv(index, size, false, value);
+}
+
+template<>
+void UniformMatrix<float, 4, 3>::apply(int index, unsigned size, const float *value)
+{
+       glUniformMatrix3x4fv(index, size, false, value);
 }
 
 template<>