X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbatch.cpp;h=7100653ea17800cf9ebd6364e6d5fba41443948b;hb=9b2e1d2c6fe27574f10016b154dddad4f511996d;hp=bca33484ce976cc585d8da88187c8ba568baed23;hpb=c233a90fd05f1f5424d7fca94bb6b999f3061271;p=libs%2Fgl.git diff --git a/source/batch.cpp b/source/batch.cpp index bca33484..7100653e 100644 --- a/source/batch.cpp +++ b/source/batch.cpp @@ -246,27 +246,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]);