|
| template<typename TInitialScene > |
| | SceneManager (TDependency &dependency, std::in_place_type_t< TInitialScene >) |
| | Constructs the initial scene without entering it.
|
| |
| void | start (EngineContext &context) |
| | Calls onEnter() on the active scene.
|
| |
| void | update (EngineContext &context, const TInput &input, float dt) |
| | Updates the active scene and switches if it asks to.
|
| |
| void | stop (EngineContext &context) |
| | Calls onExit() on the active scene.
|
| |
template<typename TScene >
requires (std::same_as<TScene, TScenes> || ...) |
| TScene * | get () noexcept |
| | Returns the active scene if it has the given type.
|
| |
template<typename TScene >
requires (std::same_as<TScene, TScenes> || ...) |
| const TScene * | get () const noexcept |
| | Returns the active scene if it has the given type.
|
| |
template<SceneIdentifier TSceneId, typename TDependency, typename TInput, typename... TScenes>
requires ((Scene<TScenes, TSceneId, TInput> && ...) && (std::constructible_from<TScenes, TDependency &> && ...))
class rtk::SceneManager< TSceneId, TDependency, TInput, TScenes >
Holds the active scene and switches between a fixed set of scenes.
Scenes are stored in a std::variant, so the set is checked at compile time and only the active scene is alive.
- Template Parameters
-
| TSceneId | Enum identifying the scenes. |
| TDependency | Object passed to every scene constructor. |
| TInput | Input state passed to onUpdate(). |
| TScenes | Every scene type, each satisfying rtk::Scene. |
template<SceneIdentifier TSceneId, typename TDependency , typename TInput , typename... TScenes>
template<typename TScene >
requires (std::same_as<TScene, TScenes> || ...)
Returns the active scene if it has the given type.
- Template Parameters
-
| TScene | Scene type to look for. |
- Returns
- The scene, or nullptr if another scene is active.
template<SceneIdentifier TSceneId, typename TDependency , typename TInput , typename... TScenes>
template<typename TScene >
requires (std::same_as<TScene, TScenes> || ...)
| const TScene * rtk::SceneManager< TSceneId, TDependency, TInput, TScenes >::get |
( |
| ) |
const |
|
inlinenodiscardnoexcept |
Returns the active scene if it has the given type.
- Template Parameters
-
| TScene | Scene type to look for. |
- Returns
- The scene, or nullptr if another scene is active.