]> git.tdb.fi Git - libs/gl.git/blobdiff - source/uniformblock.cpp
Add an asynchronous update interface to Bufferable
[libs/gl.git] / source / uniformblock.cpp
index 498973f91de39dccf64512a00e0eceb1b3b2d63b..09060eb7622ce36d9ddf158339411d89e9445d86 100644 (file)
@@ -44,11 +44,15 @@ void UniformBlock::offset_changed()
        buf_range = 0;
 }
 
-void UniformBlock::upload_data() const
+void UniformBlock::upload_data(char *target) const
 {
        if(!buf_range)
                buf_range = new BufferRange(*get_buffer(), get_offset(), size);
-       buf_range->data(&data[0]);
+
+       if(target)
+               copy(data.begin(), data.end(), target);
+       else
+               buf_range->data(&data[0]);
 }
 
 void UniformBlock::attach(int index, const Uniform &uni)