Batch *prev = (batches.empty() ? 0 : &batches.back());
batches.push_back(b);
if(ibuf)
- batches.back().use_index_buffer(ibuf, prev);
+ batches.back().use_buffer(ibuf, prev);
}
}
add("winding", &Loader::winding);
}
-void Mesh::Loader::vertices(VertexFormat f)
+void Mesh::Loader::vertices(const vector<VertexComponent> &c)
{
- obj.vertices.reset(f);
+ if(c.empty())
+ throw invalid_argument("No vertex components");
+
+ VertexFormat fmt;
+ for(vector<VertexComponent>::const_iterator i=c.begin(); i!=c.end(); ++i)
+ fmt = (fmt, *i);
+ obj.vertices.reset(fmt);
load_sub(obj.vertices);
}