X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Finstancearray.cpp;h=039a50ecde32a7500850ca107f040169fe0b5692;hb=cd5f37b066352119cf92d53d0001af7ff99be437;hp=5854906fe9229de3a59e46f13f27e8f3521c2d20;hpb=d40673bd28c4b4524d3642b949d9d109dc6f9f24;p=libs%2Fgl.git diff --git a/source/render/instancearray.cpp b/source/render/instancearray.cpp index 5854906f..039a50ec 100644 --- a/source/render/instancearray.cpp +++ b/source/render/instancearray.cpp @@ -48,13 +48,15 @@ InstanceArray::InstanceArray(const Object &o): const VertexFormat &fmt = instance_data->get_format(); matrix_offset = fmt.offset(make_indexed_attribute(RAW_ATTRIB4, matrix_location)); - instance_buffer = new Buffer(ARRAY_BUFFER); + 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 @@ -82,7 +84,7 @@ void InstanceArray::append(ObjectInstance *inst) if(instance_buffer->get_size()>0 && instance_buffer->get_size()use_buffer(instance_buffer); } }