Currently it creates a new vertex buffer at each call. It also allocates in `.collect()` when converting from a flat array to the buffer.