diff --git a/glow/src/quad.rs b/glow/src/quad.rs index 16bfb25b..fd1deb97 100644 --- a/glow/src/quad.rs +++ b/glow/src/quad.rs @@ -150,19 +150,14 @@ impl Pipeline { unsafe { tagged_instances.clear(); - tagged_instances.extend( - instances[i..end] - .iter() - .map(|v| { - [ - QuadWithQPos(*v, pos_map[0]), - QuadWithQPos(*v, pos_map[1]), - QuadWithQPos(*v, pos_map[2]), - QuadWithQPos(*v, pos_map[3]), - ] - }) - .flatten(), - ); + tagged_instances.reserve((end - i) * 4); + + for quad in instances[i..end].iter() { + tagged_instances.push(QuadWithQPos(*quad, pos_map[0])); + tagged_instances.push(QuadWithQPos(*quad, pos_map[1])); + tagged_instances.push(QuadWithQPos(*quad, pos_map[2])); + tagged_instances.push(QuadWithQPos(*quad, pos_map[3])); + } gl.buffer_sub_data_u8_slice( glow::ARRAY_BUFFER,