X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbatch.cpp;h=7100653ea17800cf9ebd6364e6d5fba41443948b;hb=61ff840cd211f10d45dca8c4dad2cca5f68aaa42;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]);