X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fmesh.cpp;h=467f35448382e4d02744cbc3a6ccf36fef657984;hb=8092f757684a97e338794525b52a1154bd996e0e;hp=e2dd853c448dff6c25259bcb42aa46d6a1433c70;hpb=f853ca0a365ae8b43ba8b2f4d6f21cd1c2bd4bd5;p=libs%2Fgl.git diff --git a/source/core/mesh.cpp b/source/core/mesh.cpp index e2dd853c..467f3544 100644 --- a/source/core/mesh.cpp +++ b/source/core/mesh.cpp @@ -29,6 +29,8 @@ void Mesh::storage(const VertexFormat &fmt) vertices.set_format(fmt); vtx_setup.set_format(fmt); + if(vbuf) + vtx_setup.set_vertex_array(vertices); } void Mesh::clear() @@ -47,7 +49,8 @@ void Mesh::check_buffers(unsigned mask) delete vbuf; vbuf = new Buffer; vertices.use_buffer(vbuf); - vtx_setup.set_vertex_array(vertices); + if(!vertices.get_format().empty()) + vtx_setup.set_vertex_array(vertices); dirty |= VERTEX_BUFFER; #ifdef DEBUG @@ -285,10 +288,7 @@ void Mesh::Loader::batch(PrimitiveType p) Mesh::AsyncLoader::AsyncLoader(Mesh &m, IO::Seekable &i): mesh(m), - io(i), - vertex_updater(0), - index_updater(0), - phase(0) + io(i) { mesh.disallow_rendering = true; mesh.check_buffers(VERTEX_BUFFER|INDEX_BUFFER);