]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programdata.cpp
Compatibility fixes
[libs/gl.git] / source / programdata.cpp
index f3f498f3e948966d9e1dd3524175b1d0ddc5060e..ded9f8a7bb242c38f5606b9cc1dce7bef67d4b2a 100644 (file)
@@ -1,7 +1,7 @@
+#include "arb_shader_objects.h"
 #include "buffer.h"
 #include "color.h"
 #include "error.h"
-#include "extension.h"
 #include "matrix.h"
 #include "program.h"
 #include "programdata.h"
@@ -19,7 +19,7 @@ ProgramData::ProgramData():
        buffer(0),
        changes(NO_CHANGES)
 {
-       static RequireExtension _ext("GL_ARB_shader_objects");
+       static Require _req(ARB_shader_objects);
 }
 
 // Blocks are intentionally left uncopied
@@ -119,18 +119,28 @@ void ProgramData::uniform4(const string &name, const float *v)
        uniform(name, new Uniform4f(v));
 }
 
-void ProgramData::uniform_matrix4(const string &name, const float *v)
+void ProgramData::uniform_matrix2(const string &name, const float *v)
 {
-       uniform(name, new UniformMatrix4x4f(v));
+       uniform(name, new UniformMatrix2x2f(v));
+}
+
+void ProgramData::uniform_matrix3(const string &name, const float *v)
+{
+       uniform(name, new UniformMatrix3x3f(v));
 }
 
-void ProgramData::uniform_matrix4(const string &name, const Matrix &m)
+void ProgramData::uniform(const string &name, const Matrix &m)
 {
        float v[16];
        copy(m.data(), m.data()+16, v);
        uniform_matrix4(name, v);
 }
 
+void ProgramData::uniform_matrix4(const string &name, const float *v)
+{
+       uniform(name, new UniformMatrix4x4f(v));
+}
+
 void ProgramData::uniform1_array(const string &name, unsigned n, const float *v)
 {
        uniform(name, new UniformArray<Uniform1f>(n, v));