Scene saving/loading, creation, changing and loading.
More...
#include <SceneManager.hpp>
|
| SceneManager () |
| Constructor.
|
|
virtual | ~SceneManager () |
| Destructor.
|
|
Scene * | add (const std::string &name) |
| Add a new scene.
|
|
template<std::derived_from< Scene > Custom> |
Custom * | add_custom (const std::string &name) |
| Add a custom scene.
|
|
Scene * | get (const std::string &name) |
| Get a specific scene.
|
|
void | remove (const std::string &name) |
| Remove a specific scene.
|
|
bool | has (const std::string &name) |
| Does a scene exist.
|
|
void | set_scene (const std::string &name) |
| Scene to set to currently active.
|
|
template<meta::is_system System, typename... Args> |
void | create_system (Args &&... args) |
| Add a system to the manager.
|
|
void | load_app (const std::string &appdata_file) |
| Load app data file into scene manager.
|
|
void | save_app (const std::string &file) |
| Save all active scenes and sub data within those scenes.
|
|
void | update () |
| Handle events and update logic.
|
|
void | only_update_rendering () |
| Only update rendering.
|
|
void | render () |
| Handle rendering.
|
|
void | clear () |
| Deletes all scene data.
|
|
scene::Scene * | current () const |
| Get current scene.
|
|
const Map & | map () const |
| Get all scenes.
|
|
bool | empty () const |
| Are there any scenes.
|
|
nlohmann::json | serialize () override |
| Serializes object.
|
|
void | deserialize (const nlohmann::json &json) override |
| Deserializes from object.
|
|
| SceneManager () noexcept |
| Constructor.
|
|
virtual | ~SceneManager () noexcept |
| Destructor.
|
|
std::shared_ptr< Scene > | create (const std::string &scene) |
| Create scene in engine.
|
|
void | set (const std::string &scene) |
| Clears all from stack and sets as active.
|
|
void | push (const std::string &scene) |
| Push a scene onto the top of stack.
|
|
void | pop () |
| Remove scene on top of stack.
|
|
void | pop_all () |
| Pop all scenes.
|
|
std::shared_ptr< Scene > | top () noexcept |
| Get top scene.
|
|
void | update () |
| Process events and updates.
|
|
void | render () |
| Render scenes.
|
|
void | load_app (const std::string &appdata_file) |
| Load app data file into scene manager.
|
|
void | save_app (const std::string &file) |
| Save all active scenes and sub data within those scenes.
|
|
void | clear () |
| Deletes all scene data.
|
|
bool | empty () const noexcept |
| Are there any scenes.
|
|
nlohmann::json | serialize () override |
| Serializes object.
|
|
void | deserialize (const nlohmann::json &json) override |
| Deserializes from object.
|
|
Scene saving/loading, creation, changing and loading.
Scene saving/loading, pushing, popping, creating. Also manages entities.
Definition at line 21 of file SceneManager.hpp.
◆ Map
◆ SystemContainer
◆ SceneManager() [1/2]
galaxy::scene::SceneManager::SceneManager |
( |
| ) |
|
|
noexcept |
◆ ~SceneManager() [1/2]
galaxy::scene::SceneManager::~SceneManager |
( |
| ) |
|
|
virtualnoexcept |
◆ SceneManager() [2/2]
galaxy::scene::SceneManager::SceneManager |
( |
| ) |
|
|
noexcept |
◆ ~SceneManager() [2/2]
virtual galaxy::scene::SceneManager::~SceneManager |
( |
| ) |
|
|
virtualnoexcept |
◆ add()
Scene * galaxy::scene::SceneManager::add |
( |
const std::string & | name | ) |
|
Add a new scene.
- Parameters
-
name | Scene name to assign. |
- Returns
- Pointer to added scene.
Definition at line 40 of file SceneManager.cpp.
◆ add_custom()
template<std::derived_from<
Scene > Custom>
Custom * galaxy::scene::SceneManager::add_custom |
( |
const std::string & | name | ) |
|
|
inline |
Add a custom scene.
- Template Parameters
-
type | Derived type of custom scene. |
- Parameters
-
name | Scene name to assign. |
Definition at line 199 of file SceneManager.hpp.
◆ get()
Scene * galaxy::scene::SceneManager::get |
( |
const std::string & | name | ) |
|
|
nodiscard |
Get a specific scene.
- Parameters
-
- Returns
- Reference to requested scene.
Definition at line 56 of file SceneManager.cpp.
◆ remove()
void galaxy::scene::SceneManager::remove |
( |
const std::string & | name | ) |
|
Remove a specific scene.
Preserves insertion order.
- Parameters
-
Definition at line 71 of file SceneManager.cpp.
◆ has()
bool galaxy::scene::SceneManager::has |
( |
const std::string & | name | ) |
|
|
nodiscard |
Does a scene exist.
- Parameters
-
- Returns
- True if exists.
Definition at line 76 of file SceneManager.cpp.
◆ set_scene()
void galaxy::scene::SceneManager::set_scene |
( |
const std::string & | name | ) |
|
◆ create_system()
template<meta::is_system System, typename... Args>
void galaxy::scene::SceneManager::create_system |
( |
Args &&... | args | ) |
|
|
inline |
Add a system to the manager.
- Template Parameters
-
System | Type of system to create. |
Args | Constructor arguments for system. |
Systems will be updated in the order in which they are created.
- Parameters
-
args | Constructor arguments for system. |
Definition at line 216 of file SceneManager.hpp.
◆ load_app() [1/2]
void galaxy::scene::SceneManager::load_app |
( |
const std::string & | appdata_file | ) |
|
Load app data file into scene manager.
Will remove any other loaded scenes and adjust the currently loaded scene.
- Parameters
-
appdata_file | Zlib + Base64 encoded json data file. Should have .galaxy extension. |
Definition at line 90 of file SceneManager.cpp.
◆ save_app() [1/2]
void galaxy::scene::SceneManager::save_app |
( |
const std::string & | file | ) |
|
Save all active scenes and sub data within those scenes.
- Parameters
-
file | File to save data to. |
Definition at line 129 of file SceneManager.cpp.
◆ update() [1/2]
void galaxy::scene::SceneManager::update |
( |
| ) |
|
◆ only_update_rendering()
void galaxy::scene::SceneManager::only_update_rendering |
( |
| ) |
|
◆ render() [1/2]
void galaxy::scene::SceneManager::render |
( |
| ) |
|
◆ clear() [1/2]
void galaxy::scene::SceneManager::clear |
( |
| ) |
|
◆ current()
scene::Scene * galaxy::scene::SceneManager::current |
( |
| ) |
const |
|
nodiscard |
Get current scene.
- Returns
- Pointer to current scene, nullptr if no scene.
Definition at line 184 of file SceneManager.cpp.
◆ map()
Get all scenes.
- Returns
- Reference to scene object.
Definition at line 189 of file SceneManager.cpp.
◆ empty() [1/2]
bool galaxy::scene::SceneManager::empty |
( |
| ) |
const |
|
nodiscardnoexcept |
Are there any scenes.
- Returns
- True if no scenes.
Definition at line 194 of file SceneManager.cpp.
◆ serialize() [1/2]
nlohmann::json galaxy::scene::SceneManager::serialize |
( |
| ) |
|
|
nodiscardoverride |
Serializes object.
- Returns
- JSON object containing data to write out.
Definition at line 199 of file SceneManager.cpp.
◆ deserialize() [1/2]
void galaxy::scene::SceneManager::deserialize |
( |
const nlohmann::json & | json | ) |
|
|
override |
Deserializes from object.
- Parameters
-
json | Json object to retrieve data from. |
Definition at line 216 of file SceneManager.cpp.
◆ create()
std::shared_ptr< Scene > galaxy::scene::SceneManager::create |
( |
const std::string & | scene | ) |
|
Create scene in engine.
- Parameters
-
- Returns
- Shared pointer to created scene, or nullptr on failure.
Definition at line 36 of file SceneManager.cpp.
◆ set()
void galaxy::scene::SceneManager::set |
( |
const std::string & | scene | ) |
|
Clears all from stack and sets as active.
- Parameters
-
Definition at line 51 of file SceneManager.cpp.
◆ push()
void galaxy::scene::SceneManager::push |
( |
const std::string & | scene | ) |
|
Push a scene onto the top of stack.
- Parameters
-
Definition at line 57 of file SceneManager.cpp.
◆ pop()
void galaxy::scene::SceneManager::pop |
( |
| ) |
|
◆ pop_all()
void galaxy::scene::SceneManager::pop_all |
( |
| ) |
|
◆ top()
std::shared_ptr< Scene > galaxy::scene::SceneManager::top |
( |
| ) |
|
|
nodiscardnoexcept |
◆ update() [2/2]
void galaxy::scene::SceneManager::update |
( |
| ) |
|
Process events and updates.
◆ render() [2/2]
void galaxy::scene::SceneManager::render |
( |
| ) |
|
◆ load_app() [2/2]
void galaxy::scene::SceneManager::load_app |
( |
const std::string & | appdata_file | ) |
|
Load app data file into scene manager.
Will remove any other loaded scenes and adjust the currently loaded scene.
- Parameters
-
appdata_file | Zlib + Base64 encoded json data file. Should have .galaxy extension. |
◆ save_app() [2/2]
void galaxy::scene::SceneManager::save_app |
( |
const std::string & | file | ) |
|
Save all active scenes and sub data within those scenes.
- Parameters
-
file | File to save data to. |
◆ clear() [2/2]
void galaxy::scene::SceneManager::clear |
( |
| ) |
|
◆ empty() [2/2]
bool galaxy::scene::SceneManager::empty |
( |
| ) |
const |
|
nodiscardnoexcept |
Are there any scenes.
- Returns
- True if no scenes.
◆ serialize() [2/2]
nlohmann::json galaxy::scene::SceneManager::serialize |
( |
| ) |
|
|
nodiscardoverride |
Serializes object.
- Returns
- JSON object containing data to write out.
◆ deserialize() [2/2]
void galaxy::scene::SceneManager::deserialize |
( |
const nlohmann::json & | json | ) |
|
|
override |
Deserializes from object.
- Parameters
-
json | Json object to retrieve data from. |
◆ m_scenes [1/2]
Map galaxy::scene::SceneManager::m_scenes |
|
private |
◆ m_current
◆ m_systems
◆ m_rendersystem_index
std::size_t galaxy::scene::SceneManager::m_rendersystem_index |
|
private |
◆ m_scenes [2/2]
ankerl::unordered_dense::map<std::uint64_t, std::shared_ptr<Scene> > galaxy::scene::SceneManager::m_scenes |
|
private |
◆ m_stack
std::vector<std::shared_ptr<Scene> > galaxy::scene::SceneManager::m_stack |
|
private |
◆ m_registry
The documentation for this class was generated from the following files: