X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbatch.cpp;h=1b0c47bf976dd212aa4270a962d7f98a40f34761;hb=0687d51f638169ffe55ad27e71ae99508ef3c38c;hp=bca33484ce976cc585d8da88187c8ba568baed23;hpb=c233a90fd05f1f5424d7fca94bb6b999f3061271;p=libs%2Fgl.git diff --git a/source/batch.cpp b/source/batch.cpp index bca33484..1b0c47bf 100644 --- a/source/batch.cpp +++ b/source/batch.cpp @@ -196,11 +196,6 @@ void Batch::append_index(unsigned i) data.push_back(i); } -void Batch::upload_data() const -{ - get_buffer()->sub_data(get_offset(), data.size(), &data[0]); -} - unsigned Batch::get_index_size() const { if(data_type==UNSIGNED_SHORT) @@ -246,27 +241,14 @@ void Batch::draw() const restart_index = 0; } - if(Buffer *ibuf = get_buffer()) + Buffer *ibuf = get_buffer(); + BindRestore _bind_ibuf(ibuf, ELEMENT_ARRAY_BUFFER); + if(ibuf) { - bool have_vao = Mesh::current(); - const Buffer *old_ibuf = 0; - if(!have_vao) - { - old_ibuf = Buffer::current(ELEMENT_ARRAY_BUFFER); - ibuf->bind_to(ELEMENT_ARRAY_BUFFER); - } - if(dirty) update_buffer(); glDrawRangeElements(prim_type, min_index, max_index, size(), data_type, reinterpret_cast(get_offset())); - if(!have_vao) - { - if(old_ibuf) - old_ibuf->bind_to(ELEMENT_ARRAY_BUFFER); - else - Buffer::unbind_from(ELEMENT_ARRAY_BUFFER); - } } else glDrawRangeElements(prim_type, min_index, max_index, size(), data_type, &data[0]);