diff --git a/include/openspace/engine/openspaceengine.h b/include/openspace/engine/openspaceengine.h index ae92241bf0..ab451bfbbc 100644 --- a/include/openspace/engine/openspaceengine.h +++ b/include/openspace/engine/openspaceengine.h @@ -87,6 +87,9 @@ public: void encode(); void decode(); + void enableBarrier(); + void disableBarrier(); + void runSettingsScripts(); private: diff --git a/src/engine/openspaceengine.cpp b/src/engine/openspaceengine.cpp index 49d9be6a09..0657429fcb 100644 --- a/src/engine/openspaceengine.cpp +++ b/src/engine/openspaceengine.cpp @@ -714,4 +714,12 @@ void OpenSpaceEngine::externalControlCallback(const char* receivedChars, } } +void OpenSpaceEngine::enableBarrier() { + sgct::SGCTWindow::setBarrier(true); +} + +void OpenSpaceEngine::disableBarrier() { + sgct::SGCTWindow::setBarrier(false); +} + } // namespace openspace diff --git a/src/scenegraph/scenegraph.cpp b/src/scenegraph/scenegraph.cpp index d0b82fb6d8..12ec56f69b 100644 --- a/src/scenegraph/scenegraph.cpp +++ b/src/scenegraph/scenegraph.cpp @@ -329,6 +329,8 @@ bool SceneGraph::loadSceneInternal(const std::string& sceneDescriptionFilePath) return false; } + OsEng.disableBarrier(); + // initialize the root node _root = new SceneGraphNode(); _root->setName(SceneGraphNode::RootNodeName); @@ -358,6 +360,7 @@ bool SceneGraph::loadSceneInternal(const std::string& sceneDescriptionFilePath) else { LFATAL("The '" << constants::scenegraph::keyPathScene << "' pointed to a " "path '" << moduleDirectory << "' that did not exist"); + OsEng.enableBarrier(); return false; } @@ -501,6 +504,8 @@ bool SceneGraph::loadSceneInternal(const std::string& sceneDescriptionFilePath) OsEng.runSettingsScripts(); + OsEng.enableBarrier(); + return true; }