]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programdata.cpp
Store block pointer in uniform info
[libs/gl.git] / source / programdata.cpp
index 43767bf9526a4449cde0a6d5d3f076bba0460b4b..5bfbd68fe25ece5ef5a016cf61de253b6c31c790 100644 (file)
@@ -120,6 +120,31 @@ void ProgramData::uniform_matrix4(const string &name, const Matrix &m)
        uniform_matrix4(name, v);
 }
 
+void ProgramData::uniform1_array(const string &name, unsigned n, const float *v)
+{
+       uniform(name, new UniformArray<Uniform1f>(n, v));
+}
+
+void ProgramData::uniform2_array(const string &name, unsigned n, const float *v)
+{
+       uniform(name, new UniformArray<Uniform2f>(n, v));
+}
+
+void ProgramData::uniform3_array(const string &name, unsigned n, const float *v)
+{
+       uniform(name, new UniformArray<Uniform3f>(n, v));
+}
+
+void ProgramData::uniform4_array(const string &name, unsigned n, const float *v)
+{
+       uniform(name, new UniformArray<Uniform4f>(n, v));
+}
+
+void ProgramData::uniform_matrix4_array(const string &name, unsigned n, const float *v)
+{
+       uniform(name, new UniformArray<UniformMatrix4x4f>(n, v));
+}
+
 const UniformBlock &ProgramData::get_block(const Program &prog) const
 {
        if(modified)
@@ -145,7 +170,7 @@ const UniformBlock &ProgramData::get_block(const Program &prog) const
                {
                        int loc = prog.get_uniform_location(j->first);
                        if(loc>=0)
-                               block.uniform(loc, *j->second);
+                               block.attach(loc, *j->second);
                }
                i->second.dirty = false;
        }