diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-21 10:00:43 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-21 10:00:43 +0100 |
commit | e7facf23888c38e09128749822c8e7d2b1d7e2fe (patch) | |
tree | b89d956bffd98b3e7bece0399a5090300dc1e19d /src/crepe/api/LoopManager.h | |
parent | e2f085c444a8b37af65816e10bf366e6860d25c2 (diff) | |
parent | 1bc04b371f2cc8740f2ee039f75101922da671d6 (diff) |
Merge branch 'master' into loek/util
Diffstat (limited to 'src/crepe/api/LoopManager.h')
-rw-r--r-- | src/crepe/api/LoopManager.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/crepe/api/LoopManager.h b/src/crepe/api/LoopManager.h index f6904be..13e6dac 100644 --- a/src/crepe/api/LoopManager.h +++ b/src/crepe/api/LoopManager.h @@ -4,14 +4,28 @@ #include "../ComponentManager.h" #include "../system/System.h" +#include "api/SceneManager.h" namespace crepe { +/** + * \brief Main game loop manager + * + * This class is responsible for managing the game loop, including initialization and updating. + */ class LoopManager { public: void start(); LoopManager(); + /** + * \brief Add a new concrete scene to the scene manager + * + * \tparam T Type of concrete scene + */ + template <typename T> + void add_scene(); + private: /** * \brief Setup function for one-time initialization. @@ -53,12 +67,14 @@ 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. * @@ -71,6 +87,8 @@ private: private: //! Component manager instance ComponentManager component_manager{}; + //! Scene manager instance + SceneManager scene_manager{component_manager}; private: /** |