X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Finstancearray.cpp;h=abd9fcd0bd870d14def0192392490b09c702fa2d;hp=91f92084d94a680bde115f938b257bdabe8dbd29;hb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;hpb=cf17331b8ddc0e00c3ba452e0f4dfa183dc8e019 diff --git a/source/instancearray.cpp b/source/instancearray.cpp index 91f92084..abd9fcd0 100644 --- a/source/instancearray.cpp +++ b/source/instancearray.cpp @@ -75,7 +75,16 @@ void InstanceArray::append(ObjectInstance *inst) if(instance_data) { if(instance_data->size()append(); + unsigned req_size = instance_data->get_required_buffer_size(); + if(instance_buffer->get_size()>0 && instance_buffer->get_size()use_buffer(instance_buffer); + } + } update_instance_matrix(instances.size()-1); } } @@ -119,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);