]> git.tdb.fi Git - libs/gl.git/blobdiff - source/programdata.cpp
Allow setting uniform values using a Uniform object
[libs/gl.git] / source / programdata.cpp
index b69d7b062dd61af65164f94b65fc6fc41cceb90b..9a531be2fecefb28dfb38de3375b8dc00c7f6249 100644 (file)
@@ -104,6 +104,11 @@ void ProgramData::uniform(const string &name, Uniform *uni)
        }
 }
 
+void ProgramData::uniform(const string &name, const Uniform &u)
+{
+       uniform(name, u.clone());
+}
+
 void ProgramData::uniform(const string &name, int v)
 {
        uniform(name, new Uniform1i(v));
@@ -295,6 +300,8 @@ unsigned ProgramData::compute_slot_mask(const Program::UniformBlockInfo &block)
        for(vector<const Program::UniformInfo *>::const_iterator i=block.uniforms.begin(); i!=block.uniforms.end(); ++i)
        {
                SlotMap::const_iterator j = uniform_slots.find((*i)->name);
+               /* TODO issue a warning (or even error?) either here or in update_block
+               if all uniforms for a buffer-backed block are not found */
                if(j!=uniform_slots.end() && j->second<MASK_BITS)
                        mask |= 1<<j->second;
        }