SDEngine
Game Engine
Loading...
Searching...
No Matches
Application.inl
Go to the documentation of this file.
1namespace sd {
2template <typename T, typename ... Args> requires std::is_base_of_v<Layer, T> T& Application::push_view_layer(WindowId id, Args&&... args){
3 auto& windows = window_manager->get_windows();
4 if (!windows.contains(id)) {
5 engine_abort(std::format("Attempted to push layer to invalid window ID: {}",
6 static_cast<uint32_t>(id)));
7 }
8 return windows[id].view_layers.push_layer<T>(std::forward<Args>(args)...);
9}template <typename T, typename ... Args> requires std::is_base_of_v<Layer, T> std::expected<std::reference_wrapper<T>, ViewError> Application::push_layer_to_view(ViewId id, Args&&... args){
10 return view_manager->push_layer<T>(id, std::forward<Args>(args)...);
11}template <typename T, typename ... Args> requires std::is_base_of_v<Layer, T> std::expected<std::reference_wrapper<T>, ViewError> Application::push_layer_to_view(const std::string& name, Args&&... args){
12 auto id_res = view_manager->get_id(name);
13 if (!id_res)
14 return std::unexpected(id_res.error());
15 return view_manager->push_layer<T>(*id_res, std::forward<Args>(args)...);
16}
17}
std::unique_ptr< WindowManager > window_manager
Definition Application.hpp:173
T & push_view_layer(WindowId id, Args &&... args)
Definition Application.inl:2
std::expected< std::reference_wrapper< T >, ViewError > push_layer_to_view(ViewId id, Args &&... args)
Definition Application.inl:9
std::unique_ptr< ViewManager > view_manager
Definition Application.hpp:174
Definition Application.hpp:28
void engine_abort()
Definition base.hpp:46
ViewError
Definition View.hpp:26
Definition id_types.hpp:7
Definition id_types.hpp:28
constexpr T g_type_max
Definition types.hpp:21