X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fmesh.cpp;h=467f35448382e4d02744cbc3a6ccf36fef657984;hb=f64d903f902ad72596284e9fbd17ad06262b2fc9;hp=ec5bd18cf392e375c36ee49cfcfe9e51050e4d40;hpb=be6ffe96ecb4707599fe1a6f620c348760213d46;p=libs%2Fgl.git diff --git a/source/core/mesh.cpp b/source/core/mesh.cpp index ec5bd18c..467f3544 100644 --- a/source/core/mesh.cpp +++ b/source/core/mesh.cpp @@ -9,8 +9,7 @@ using namespace std; namespace Msp { namespace GL { -Mesh::Mesh(const VertexFormat &f): - Mesh() +Mesh::Mesh(const VertexFormat &f) { storage(f); } @@ -30,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() @@ -48,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 @@ -286,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);