SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::Application Struct Reference

#include <Application.hpp>

+ Collaboration diagram for sd::Application:

Public Types

using ViewResult = ViewManager::ViewResult
 

Public Member Functions

 Application (const ApplicationSpecification &spec, RuntimeStateManager *state_manager=nullptr)
 
 ~Application ()
 
void run (const std::atomic< bool > *external_stop)
 
void frame ()
 
void close ()
 
void on_app_event (EventVariant &e)
 
template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
T & push_layer (Args &&... args)
 
WindowId create_window (const WindowProps &props)
 
Windowget_window (const WindowId id) const
 
VulkanWindowget_render_window (const WindowId id) const
 
template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
T & push_window_layer (WindowId id, Args &&... args)
 
template<typename T , typename... Args>
requires std::is_base_of_v<View, T>
T & create_view (Arena *arena, std::string name, Args &&... args)
 
ViewResult get_view (const ViewId id) const
 
ViewResult get_view (const std::string &name) const
 
std::expected< ViewId, ViewErrorget_view_id (const std::string &name) const
 
ViewError remove_view (ViewId id)
 
ViewError remove_view (const std::string &name)
 
template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
std::expected< std::reference_wrapper< T >, ViewErrorpush_layer_to_view (ViewId id, Args &&... args)
 
template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
std::expected< std::reference_wrapper< T >, ViewErrorpush_layer_to_view (const std::string &name, Args &&... args)
 
Scenecreate_scene (Arena *arena, const std::string &name)
 
Sceneget_scene (const std::string &name) const
 
void clear_game_layers ()
 
void request_restart ()
 
bool consume_restart_request ()
 
void request_shader_reload ()
 
bool consume_shader_reload_request ()
 
void dispatch_shader_reload ()
 
EngineServices services () const
 
ApplicationRuntime runtime ()
 
Arenaframe_arena () const
 

Public Attributes

bool is_running
 
bool hot_reload_enabled
 
bool game_code_reload_paused
 
ApplicationSpecification app_spec
 
WindowManagerwindow_manager
 
ViewManagerview_manager
 
LayoutManagerlayout_manager
 
SceneManager scene_manager
 
LayerList global_layers
 
EventManager app_event_manager
 
RuntimeStateManagerstate_manager
 
FrameTimer timer
 
Arenaengine_arena
 
Arenam_frame_arena
 
std::atomic< boolm_restart_requested
 
std::atomic< boolm_shader_reload_requested
 
GlfwContextm_glfw_ctx
 
VulkanContextm_vulkan_ctx
 
VulkanRendererm_renderer
 
SDImGuiContextm_imgui_ctx
 

Member Typedef Documentation

◆ ViewResult

Constructor & Destructor Documentation

◆ Application()

sd::Application::Application ( const ApplicationSpecification spec,
RuntimeStateManager state_manager = nullptr 
)

◆ ~Application()

sd::Application::~Application ( )

Member Function Documentation

◆ clear_game_layers()

void sd::Application::clear_game_layers ( )

◆ close()

void sd::Application::close ( )
inline

◆ consume_restart_request()

bool sd::Application::consume_restart_request ( )
inline

◆ consume_shader_reload_request()

bool sd::Application::consume_shader_reload_request ( )
inline

◆ create_scene()

Scene * sd::Application::create_scene ( Arena arena,
const std::string &  name 
)
inline

◆ create_view()

template<typename T , typename... Args>
requires std::is_base_of_v<View, T>
T & sd::Application::create_view ( Arena arena,
std::string  name,
Args &&...  args 
)
inline

◆ create_window()

WindowId sd::Application::create_window ( const WindowProps props)
inline

◆ dispatch_shader_reload()

void sd::Application::dispatch_shader_reload ( )

◆ frame()

void sd::Application::frame ( )

◆ frame_arena()

Arena * sd::Application::frame_arena ( ) const
inline

◆ get_render_window()

VulkanWindow & sd::Application::get_render_window ( const WindowId  id) const
inline

◆ get_scene()

Scene * sd::Application::get_scene ( const std::string &  name) const
inline

◆ get_view() [1/2]

ViewResult sd::Application::get_view ( const std::string &  name) const
inline

◆ get_view() [2/2]

ViewResult sd::Application::get_view ( const ViewId  id) const
inline

◆ get_view_id()

std::expected< ViewId, ViewError > sd::Application::get_view_id ( const std::string &  name) const
inline

◆ get_window()

Window & sd::Application::get_window ( const WindowId  id) const
inline

◆ on_app_event()

void sd::Application::on_app_event ( EventVariant e)

◆ push_layer()

template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
T & sd::Application::push_layer ( Args &&...  args)
inline

◆ push_layer_to_view() [1/2]

template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
std::expected< std::reference_wrapper< T >, ViewError > sd::Application::push_layer_to_view ( const std::string &  name,
Args &&...  args 
)

◆ push_layer_to_view() [2/2]

template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
std::expected< std::reference_wrapper< T >, ViewError > sd::Application::push_layer_to_view ( ViewId  id,
Args &&...  args 
)

◆ push_window_layer()

template<typename T , typename... Args>
requires std::is_base_of_v<Layer, T>
T & sd::Application::push_window_layer ( WindowId  id,
Args &&...  args 
)

◆ remove_view() [1/2]

ViewError sd::Application::remove_view ( const std::string &  name)
inline

◆ remove_view() [2/2]

ViewError sd::Application::remove_view ( ViewId  id)
inline

◆ request_restart()

void sd::Application::request_restart ( )
inline

◆ request_shader_reload()

void sd::Application::request_shader_reload ( )
inline

◆ run()

void sd::Application::run ( const std::atomic< bool > *  external_stop)

◆ runtime()

ApplicationRuntime sd::Application::runtime ( )
inline

◆ services()

EngineServices sd::Application::services ( ) const
inline

Member Data Documentation

◆ app_event_manager

EventManager sd::Application::app_event_manager

◆ app_spec

ApplicationSpecification sd::Application::app_spec

◆ engine_arena

Arena* sd::Application::engine_arena

◆ game_code_reload_paused

bool sd::Application::game_code_reload_paused

◆ global_layers

LayerList sd::Application::global_layers

◆ hot_reload_enabled

bool sd::Application::hot_reload_enabled

◆ is_running

bool sd::Application::is_running

◆ layout_manager

LayoutManager* sd::Application::layout_manager

◆ m_frame_arena

Arena* sd::Application::m_frame_arena

◆ m_glfw_ctx

GlfwContext* sd::Application::m_glfw_ctx

◆ m_imgui_ctx

SDImGuiContext* sd::Application::m_imgui_ctx

◆ m_renderer

VulkanRenderer* sd::Application::m_renderer

◆ m_restart_requested

std::atomic<bool> sd::Application::m_restart_requested

◆ m_shader_reload_requested

std::atomic<bool> sd::Application::m_shader_reload_requested

◆ m_vulkan_ctx

VulkanContext* sd::Application::m_vulkan_ctx

◆ scene_manager

SceneManager sd::Application::scene_manager

◆ state_manager

RuntimeStateManager* sd::Application::state_manager

◆ timer

FrameTimer sd::Application::timer

◆ view_manager

ViewManager* sd::Application::view_manager

◆ window_manager

WindowManager* sd::Application::window_manager

The documentation for this struct was generated from the following files: