diff --git a/include/openspace/engine/openspaceengine.h b/include/openspace/engine/openspaceengine.h index 12e17d6a03..7a12cc6e2a 100644 --- a/include/openspace/engine/openspaceengine.h +++ b/include/openspace/engine/openspaceengine.h @@ -74,7 +74,6 @@ public: std::unique_ptr windowWrapper, std::vector& sgctArguments, bool& requestClose); static void destroy(); - static bool isInitialized(); static OpenSpaceEngine& ref(); double runTime(); @@ -104,8 +103,7 @@ public: void toggleShutdownMode(); void runPostInitializationScripts(const std::string& sceneDescription); - - + // Guaranteed to return a valid pointer ConfigurationManager& configurationManager(); LuaConsole& console(); @@ -137,34 +135,7 @@ public: }; // Registers a callback for a specific CallbackOption - void registerModuleCallback(CallbackOption option, std::function function) { - switch (option) { - case CallbackOption::Initialize: - _moduleCallbacks.initialize.push_back(std::move(function)); - break; - case CallbackOption::Deinitialize: - _moduleCallbacks.deinitialize.push_back(std::move(function)); - break; - case CallbackOption::InitializeGL: - _moduleCallbacks.initializeGL.push_back(std::move(function)); - break; - case CallbackOption::DeinitializeGL: - _moduleCallbacks.deinitializeGL.push_back(std::move(function)); - break; - case CallbackOption::PreSync: - _moduleCallbacks.preSync.push_back(std::move(function)); - break; - case CallbackOption::PostSyncPreDraw: - _moduleCallbacks.postSyncPreDraw.push_back(std::move(function)); - break; - case CallbackOption::Render: - _moduleCallbacks.render.push_back(std::move(function)); - break; - case CallbackOption::PostDraw: - _moduleCallbacks.postDraw.push_back(std::move(function)); - break; - } - } + void registerModuleCallback(CallbackOption option, std::function function); // Registers a callback that is called when a new keyboard event is received void registerModuleKeyboardCallback( @@ -192,10 +163,10 @@ public: static scripting::LuaLibrary luaLibrary(); private: - OpenSpaceEngine(std::string programName, std::unique_ptr windowWrapper); + OpenSpaceEngine(std::string programName, + std::unique_ptr windowWrapper); ~OpenSpaceEngine() = default; - void clearAllWindows(); void gatherCommandlineArguments(); void loadFonts(); void runPreInitializationScripts(const std::string& sceneDescription); diff --git a/src/engine/openspaceengine.cpp b/src/engine/openspaceengine.cpp index 9751553fe8..0f8b535d35 100644 --- a/src/engine/openspaceengine.cpp +++ b/src/engine/openspaceengine.cpp @@ -404,7 +404,7 @@ void OpenSpaceEngine::initialize() { // clear the screen so the user don't have to see old buffer contents from the // graphics card LDEBUG("Clearing all Windows"); - clearAllWindows(); + _windowWrapper->clearAllWindows(glm::vec4(0.f, 0.f, 0.f, 1.f)); LDEBUG("Adding system components"); // Detect and log OpenCL and OpenGL versions and available devices @@ -616,14 +616,6 @@ void OpenSpaceEngine::writeDocumentation() { } } -bool OpenSpaceEngine::isInitialized() { - return _engine != nullptr; -} - -void OpenSpaceEngine::clearAllWindows() { - _windowWrapper->clearAllWindows(glm::vec4(0.f, 0.f, 0.f, 1.f)); -} - void OpenSpaceEngine::gatherCommandlineArguments() { commandlineArgumentPlaceholders.configurationName = ""; _commandlineParser->addCommand(std::make_unique>( @@ -1104,7 +1096,40 @@ void OpenSpaceEngine::enableBarrier() { void OpenSpaceEngine::disableBarrier() { _windowWrapper->setBarrier(false); } - + +// Registers a callback for a specific CallbackOption +void OpenSpaceEngine::registerModuleCallback(OpenSpaceEngine::CallbackOption option, + std::function function) +{ + switch (option) { + case CallbackOption::Initialize: + _moduleCallbacks.initialize.push_back(std::move(function)); + break; + case CallbackOption::Deinitialize: + _moduleCallbacks.deinitialize.push_back(std::move(function)); + break; + case CallbackOption::InitializeGL: + _moduleCallbacks.initializeGL.push_back(std::move(function)); + break; + case CallbackOption::DeinitializeGL: + _moduleCallbacks.deinitializeGL.push_back(std::move(function)); + break; + case CallbackOption::PreSync: + _moduleCallbacks.preSync.push_back(std::move(function)); + break; + case CallbackOption::PostSyncPreDraw: + _moduleCallbacks.postSyncPreDraw.push_back(std::move(function)); + break; + case CallbackOption::Render: + _moduleCallbacks.render.push_back(std::move(function)); + break; + case CallbackOption::PostDraw: + _moduleCallbacks.postDraw.push_back(std::move(function)); + break; + default: + ghoul_assert(false, "Missing case label"); + } +} void OpenSpaceEngine::registerModuleKeyboardCallback( std::function function)