]> git.tdb.fi Git - libs/gl.git/blobdiff - source/mesh.cpp
Remove the deprecated ProgramBuilder class
[libs/gl.git] / source / mesh.cpp
index 72936e66fb535a2e0020a896040221df2c60b777..dba8a9915489aede7906f8a684b9d59e288428b5 100644 (file)
@@ -40,6 +40,7 @@ void Mesh::init(ResourceManager *rm)
 Mesh::~Mesh()
 {
        set_manager(0);
+       batches.clear();
        delete vbuf;
        delete ibuf;
 }
@@ -208,8 +209,9 @@ void Mesh::unload()
 }
 
 
-Mesh::Loader::Loader(Mesh &m):
-       DataFile::ObjectLoader<Mesh>(m)
+Mesh::Loader::Loader(Mesh &m, bool g):
+       DataFile::ObjectLoader<Mesh>(m),
+       allow_gl_calls(g)
 {
        add("batch",    &Loader::batch);
        add("vertices", &Loader::vertices);
@@ -226,7 +228,11 @@ void Mesh::Loader::vertices(const vector<VertexComponent> &c)
                fmt = (fmt, *i);
        obj.vertices.reset(fmt);
        load_sub(obj.vertices);
-       obj.check_buffers(VERTEX_BUFFER);
+       if(allow_gl_calls)
+       {
+               obj.check_buffers(VERTEX_BUFFER);
+               obj.vtx_setup.refresh();
+       }
 }
 
 void Mesh::Loader::batch(PrimitiveType p)
@@ -274,12 +280,13 @@ bool Mesh::AsyncLoader::process()
        {
                // TODO use correct filename
                DataFile::Parser parser(io, "async");
-               Loader loader(mesh);
+               Loader loader(mesh, false);
                loader.load(parser);
        }
        else if(phase==1)
        {
                mesh.resize_buffers();
+               mesh.vtx_setup.refresh();
                vertex_updater = mesh.vertices.refresh_async();
                if(!mesh.batches.empty())
                        index_updater = mesh.batches.front().refresh_async();