galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
SceneManager.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_SCENE_SCENEMANAGER_HPP_
9#define GALAXY_SCENE_SCENEMANAGER_HPP_
10
15
16namespace galaxy
17{
21 class SceneManager final : public StateMachine<Scene>
22 {
23 public:
27 SceneManager() noexcept;
28
33
38
42 virtual ~SceneManager();
43
49 void on_event(SDL_Event& event);
50
54 void update();
55
59 void render();
60
64 void clear();
65
66 private:
70 SceneManager(const SceneManager&) = delete;
71
76
77 private:
82 };
83} // namespace galaxy
84
85/*
93 void load_app(const std::string& appdata_file);
94
100 void save_app(const std::string& file);
101
107 [[nodiscard]]
108 nlohmann::json serialize() override;
109
115 void deserialize(const nlohmann::json& json) override;
116*/
117
118#endif
Class for making creating and managing entities easier.
State machine for managing scenes.
void update()
Process events and updates.
SceneManager(const SceneManager &)=delete
Copy constructor.
void on_event(SDL_Event &event)
Handle an event for a scene.
virtual ~SceneManager()
Destructor.
void clear()
Removes all data.
SceneManager & operator=(const SceneManager &)=delete
Copy assignment operator.
EntityManager m_entity_manager
Entities belonging to all scenes.
SceneManager & operator=(SceneManager &&)
Move assignment operator.
void render()
Render scenes.
SceneManager() noexcept
Constructor.
A finite state machine.
Application.hpp galaxy.