namespace GL {
InstanceArray::InstanceArray(const Object &o):
- object(o),
- instance_buffer(0),
- matrix_location(-1),
- matrix_offset(0)
+ object(o)
{
const Technique *tech = object.get_technique();
for(const auto &kvp: tech->get_methods())
return;
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();
+ instance_buffer->storage(instance_data.get_required_buffer_size(), STREAMING);
Renderer::Push push(renderer);
+ renderer.set_pipeline_key(this, tag.id);
method->apply(renderer);
mesh->draw_instanced(renderer, vtx_setup, instances.size());
}