From bac0a9ad316424a9ab5fff4eaccec2a89bb6149d Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Tue, 24 Feb 2015 19:13:50 +0100 Subject: [PATCH] Disable the swap barrier before the scene load (and reactivating it afterwards) --- include/openspace/engine/openspaceengine.h | 3 +++ src/engine/openspaceengine.cpp | 8 ++++++++ src/scenegraph/scenegraph.cpp | 5 +++++ 3 files changed, 16 insertions(+) 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; }