background scene file loading introduces race condition with datamaps
[laserbrain_demo] / src / sceneload.cc
index 11ce1e1..7e9cade 100644 (file)
@@ -17,6 +17,7 @@
 #include "objmesh.h"
 #include "datamap.h"
 #include "logger.h"
+#include "metascene.h"
 
 static bool load_material(Scene *scn, Material *mat, const aiMaterial *aimat);
 static SceneNode *load_node(Scene *scn, const aiScene *aiscn, unsigned int flags, const aiNode *ainode);
@@ -381,7 +382,11 @@ bool SceneSet::load_scene(Scene *scn, const char *fname)
 
 bool SceneSet::done_scene(Scene *scn)
 {
-       return scn->load(0, SCNLOAD_STAGE_GL);
+       bool res = scn->load(0, SCNLOAD_STAGE_GL);
+       if(scn->metascn) {
+               scn->metascn->scene_loaded(scn);
+       }
+       return res;
 }
 
 void SceneSet::free_scene(Scene *scn)