aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/LoopManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/api/LoopManager.h')
-rw-r--r--src/crepe/api/LoopManager.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/crepe/api/LoopManager.h b/src/crepe/api/LoopManager.h
index d8910a0..17bddd1 100644
--- a/src/crepe/api/LoopManager.h
+++ b/src/crepe/api/LoopManager.h
@@ -6,11 +6,12 @@
#include "../manager/ComponentManager.h"
#include "../manager/SceneManager.h"
#include "../system/System.h"
+#include "manager/SceneManager.h"
-#include "LoopTimer.h"
+#include "api/Event.h"
+#include "api/LoopTimer.h"
namespace crepe {
-
/**
* \brief Main game loop manager
*
@@ -18,6 +19,12 @@ namespace crepe {
*/
class LoopManager {
public:
+ /**
+ * \brief Start the gameloop
+ *
+ * This is the start of the engine where the setup is called and then the loop keeps running until the game stops running.
+ * Developers need to call this function to run the game.
+ */
void start();
LoopManager();
@@ -70,14 +77,6 @@ private:
* This function updates physics and game logic based on LoopTimer's fixed_delta_time.
*/
void fixed_update();
-
- /**
- * \brief Set game running variable
- *
- * \param running running (false = game shutdown, true = game running)
- */
- void set_running(bool running);
-
/**
* \brief Function for executing render-related systems.
*
@@ -98,15 +97,17 @@ private:
//! SDL context \todo no more singletons!
SDLContext & sdl_context = SDLContext::get_instance();
- //! Loop timer \todo no more singletons!
- LoopTimer & loop_timer = LoopTimer::get_instance();
-
+ //! loop timer instance
+ std::unique_ptr<LoopTimer> loop_timer;
private:
+
+ //! callback function for shutdown event
+ bool on_shutdown(const ShutDownEvent & e);
/**
* \brief Collection of System instances
*
* This map holds System instances indexed by the system's class typeid. It is filled in the
- * constructor of \c LoopManager using LoopManager::load_system.
+ * constructor of LoopManager using LoopManager::load_system.
*/
std::unordered_map<std::type_index, std::unique_ptr<System>> systems;
/**