]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/instancearray.cpp
Only allow VertexArray's format to be set once
[libs/gl.git] / source / render / instancearray.cpp
index bef6ec1772228984b7b09fed7fe1aeec9c693598..5854906fe9229de3a59e46f13f27e8f3521c2d20 100644 (file)
@@ -52,9 +52,10 @@ InstanceArray::InstanceArray(const Object &o):
                instance_data->use_buffer(instance_buffer);
 
                vtx_setup = new VertexSetup;
+               vtx_setup->set_format_instanced(object.get_mesh()->get_vertices().get_format(), fmt);
                vtx_setup->set_vertex_array(object.get_mesh()->get_vertices());
                vtx_setup->set_index_buffer(*object.get_mesh()->get_index_buffer());
-               vtx_setup->set_instance_array(instance_data);
+               vtx_setup->set_instance_array(*instance_data);
        }
        else
                static Require req(ARB_vertex_shader);
@@ -62,7 +63,7 @@ InstanceArray::InstanceArray(const Object &o):
 
 InstanceArray::~InstanceArray()
 {
-       for(std::vector<ObjectInstance *>::iterator i=instances.begin(); i!=instances.end(); ++i)
+       for(vector<ObjectInstance *>::iterator i=instances.begin(); i!=instances.end(); ++i)
                delete *i;
        delete vtx_setup;
        delete instance_data;
@@ -112,7 +113,7 @@ void InstanceArray::update_instance_matrix(unsigned index)
                d[matrix_offset+i] = m(i/4, i%4);
 }
 
-void InstanceArray::render(Renderer &renderer, const Tag &tag) const
+void InstanceArray::render(Renderer &renderer, Tag tag) const
 {
        if(instances.empty())
                return;