X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Funiformblock.cpp;h=cc8945cf2093358d7df19ccebfe5e92ee9fffa61;hp=ff8033a0ffdd9d7ddaa270f1699307754b59b9da;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hpb=b59c47a7ed2ed3f69a3349a2d76ef02891f0c685 diff --git a/source/uniformblock.cpp b/source/uniformblock.cpp index ff8033a0..cc8945cf 100644 --- a/source/uniformblock.cpp +++ b/source/uniformblock.cpp @@ -42,21 +42,10 @@ unsigned UniformBlock::get_alignment() const return BufferRange::get_uniform_buffer_alignment(); } -void UniformBlock::offset_changed() +void UniformBlock::location_changed(Buffer *buf, unsigned off, unsigned) const { delete buf_range; - buf_range = 0; -} - -void UniformBlock::upload_data(char *target) const -{ - if(!buf_range) - buf_range = new BufferRange(*get_mutable_buffer(), get_offset(), size); - - if(target) - copy(data.begin(), data.end(), target); - else - buf_range->data(&data[0]); + buf_range = new BufferRange(*buf, off, size); } void UniformBlock::attach(int index, const Uniform &uni) @@ -88,8 +77,7 @@ void UniformBlock::apply(int index) const if(!get_buffer()) throw invalid_operation("UniformBlock::apply"); - if(dirty) - update_buffer(); + refresh(); buf_range->bind_to(UNIFORM_BUFFER, index); } else