]> git.tdb.fi Git - libs/gl.git/blobdiff - source/mesh.cpp
Copy ProgramData::uniform_slots in copy constructor and operator=
[libs/gl.git] / source / mesh.cpp
index 055345faed1f17586de0c9c93d204f4c7956e985..d1cb77f143c7a1ede2e5873fc1a21bb6c331d568 100644 (file)
@@ -31,6 +31,7 @@ void Mesh::init(ResourceManager *rm)
        vao_id = 0;
        defer_buffers = true;
        dirty = true;
+       disallow_rendering = false;
        winding = 0;
 
        if(rm)
@@ -183,7 +184,7 @@ void Mesh::bind() const
        if(!vao_id)
        {
                unbind();
-               vertices.apply();
+               vertices.apply(false);
        }
        else if(set_current(this))
        {
@@ -283,6 +284,8 @@ Mesh::AsyncLoader::AsyncLoader(Mesh &m, IO::Seekable &i):
 Mesh::AsyncLoader::~AsyncLoader()
 {
        mesh.disallow_rendering = false;
+       delete vertex_updater;
+       delete index_updater;
 }
 
 bool Mesh::AsyncLoader::needs_sync() const
@@ -315,7 +318,9 @@ bool Mesh::AsyncLoader::process()
        else if(phase==3)
        {
                delete vertex_updater;
+               vertex_updater = 0;
                delete index_updater;
+               index_updater = 0;
        }
 
        ++phase;