X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbufferable.cpp;h=d07f57cc4e430f5d337c67cd7ebd47917eb3a456;hb=47bfbdc8cf844aa079995fca34a3b906b49a4f66;hp=6124f7616660bc62507928f1965c83947adb1ec6;hpb=5f78db03b3285c977760a41da1e3927720e50352;p=libs%2Fgl.git diff --git a/source/bufferable.cpp b/source/bufferable.cpp index 6124f761..d07f57cc 100644 --- a/source/bufferable.cpp +++ b/source/bufferable.cpp @@ -48,15 +48,17 @@ void Bufferable::use_buffer(Buffer *buf, Bufferable *prev) update_offset(); } -void Bufferable::buffer_resized() +void Bufferable::change_buffer(Buffer *buf) { for(Bufferable *b=this; b; b=b->next_in_buffer) { + b->buffer = buf; b->location_dirty = true; b->dirty = true; } for(Bufferable *b=prev_in_buffer; b; b=b->prev_in_buffer) { + b->buffer = buf; b->location_dirty = true; b->dirty = true; } @@ -86,6 +88,7 @@ void Bufferable::unlink_from_buffer() prev_in_buffer = 0; next_in_buffer = 0; buffer = 0; + offset = 0; } void Bufferable::update_offset() @@ -138,7 +141,7 @@ Bufferable::AsyncUpdater::AsyncUpdater(const Bufferable &b): bufferable(b) { bufferable.buffer->require_size(bufferable.get_required_buffer_size()); - mapped_address = reinterpret_cast(bufferable.buffer->map(WRITE_ONLY)); + mapped_address = reinterpret_cast(bufferable.buffer->map()); } Bufferable::AsyncUpdater::~AsyncUpdater()