X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Finstancearray.cpp;h=abd9fcd0bd870d14def0192392490b09c702fa2d;hp=8fead4e907fb1e7dff900306ae8dca5367a1f280;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hpb=5f78db03b3285c977760a41da1e3927720e50352 diff --git a/source/instancearray.cpp b/source/instancearray.cpp index 8fead4e9..abd9fcd0 100644 --- a/source/instancearray.cpp +++ b/source/instancearray.cpp @@ -78,9 +78,12 @@ void InstanceArray::append(ObjectInstance *inst) { instance_data->append(); unsigned req_size = instance_data->get_required_buffer_size(); - // XXX Inefficient, but will be rewritten imminently - if(instance_buffer->get_size()data(req_size, 0); + if(instance_buffer->get_size()>0 && instance_buffer->get_size()use_buffer(instance_buffer); + } } update_instance_matrix(instances.size()-1); } @@ -125,6 +128,8 @@ void InstanceArray::render(Renderer &renderer, const Tag &tag) const const Mesh *mesh = object.get_mesh(); mesh->get_vertices().refresh(); + if(instance_buffer->get_size()==0) + instance_buffer->storage(instance_data->get_required_buffer_size()); instance_data->refresh(); Renderer::Push push(renderer);