SDEngine
Game Engine
Loading...
Searching...
No Matches
Application.inl
Go to the documentation of this file.
1namespace sd {
2template<typename T, typename... Args>
3 requires std::is_base_of_v<Layer, T>
6 if (!windows.contains(id)) {
7 log::engine::critical("Attempted to push layer to invalid window ID: {}",
8 static_cast<uint32_t>(id));
9 }
10 auto& layer = windows[id].view_layers.push_layer<T>(std::forward<Args>(args)...);
11 layer.app = this;
12 return layer;
13}
14template<typename T, typename... Args>
15 requires std::is_base_of_v<Layer, T>
16std::expected<std::reference_wrapper<T>, ViewError>
18 return view_manager->push_layer<T>(id, std::forward<Args>(args)...);
19}
20template<typename T, typename... Args>
21 requires std::is_base_of_v<Layer, T>
22std::expected<std::reference_wrapper<T>, ViewError>
23Application::push_layer_to_view(const std::string& name, Args&&... args) {
24 auto id_res = view_manager->get_id(name);
25 if (!id_res)
26 return std::unexpected(id_res.error());
27 return view_manager->push_layer<T>(*id_res, std::forward<Args>(args)...);
28}
29} // namespace sd
Definition Application.hpp:22
ViewError
Definition View.hpp:27
ViewManager * view_manager
Definition Application.hpp:154
T & push_window_layer(WindowId id, Args &&... args)
Definition Application.inl:4
WindowManager * window_manager
Definition Application.hpp:153
std::expected< std::reference_wrapper< T >, ViewError > push_layer_to_view(ViewId id, Args &&... args)
Definition Application.inl:17
Definition id_types.hpp:7
std::expected< ViewId, ViewError > get_id(const std::string &name) const
Definition ViewManager.cpp:29
std::expected< std::reference_wrapper< T >, ViewError > push_layer(ViewId id, Args &&... args)
Definition ViewManager.hpp:52
Definition id_types.hpp:29
auto & get_windows()
Definition WindowManager.hpp:62
consteval U64 type_id_of()
Definition type_id.hpp:6