X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Finstancearray.cpp;h=427976129d65b1a4e5f0c82caf725822111a44b7;hb=a04e4054b3001d24a540a0e7b088d270f3e07c07;hp=11279f76262fe60882df087e91d50d84d43a173b;hpb=f1244e29afd2a36aafc2373d485457b4cb0411ff;p=libs%2Fgl.git diff --git a/source/render/instancearray.cpp b/source/render/instancearray.cpp index 11279f76..42797612 100644 --- a/source/render/instancearray.cpp +++ b/source/render/instancearray.cpp @@ -46,15 +46,17 @@ InstanceArray::InstanceArray(const Object &o): { instance_data = new VertexArray((RAW_ATTRIB4,matrix_location, RAW_ATTRIB4,matrix_location+1, RAW_ATTRIB4,matrix_location+2)); const VertexFormat &fmt = instance_data->get_format(); - matrix_offset = fmt.offset(make_indexed_attribute(RAW_ATTRIB4, matrix_location)); + matrix_offset = fmt.offset((RAW_ATTRIB4,matrix_location)); instance_buffer = new Buffer; instance_data->use_buffer(instance_buffer); + const Mesh *mesh = object.get_mesh(); + 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_format_instanced(mesh->get_vertices().get_format(), fmt); + vtx_setup->set_vertex_array(mesh->get_vertices()); + vtx_setup->set_index_buffer(*mesh->get_index_buffer(), mesh->get_batches().front().get_index_type()); vtx_setup->set_instance_array(*instance_data); } else