SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::ViewManager Class Reference

#include <ViewManager.hpp>

+ Collaboration diagram for sd::ViewManager:

Public Types

using ViewResult = std::expected< std::reference_wrapper< View >, ViewError >
 

Public Member Functions

 ViewManager ()
 
 ~ViewManager ()
 
template<typename T , typename... Args>
requires std::is_base_of_v<View, T>
T & create (std::string name, Args &&... args)
 
ViewResult get (ViewId id)
 
ViewResult get (const std::string &name)
 
std::expected< ViewId, ViewErrorget_id (const std::string &name) const
 
ViewError remove (ViewId id)
 
ViewError remove (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 (ViewId id, Args &&... args)
 
const std::unordered_map< ViewId, std::unique_ptr< View > > & get_views () const
 
autoget_views ()
 
template<typename F >
void for_each (F &&fn)
 
template<typename F >
void for_each (F &&fn) const
 
std::vector< Scene * > get_scenes ()
 
void update_views (float dt)
 
void render_views (vk::CommandBuffer cmd)
 
void cleanup_closed_views ()
 
void clear ()
 

Private Attributes

std::unordered_map< ViewId, std::unique_ptr< View > > m_views_by_id
 
std::unordered_map< std::string, ViewIdm_view_name_to_id
 
ViewId m_next_view_id
 

Member Typedef Documentation

◆ ViewResult

using sd::ViewManager::ViewResult = std::expected<std::reference_wrapper<View>, ViewError>

Constructor & Destructor Documentation

◆ ViewManager()

sd::ViewManager::ViewManager ( )
default

◆ ~ViewManager()

sd::ViewManager::~ViewManager ( )
default

Member Function Documentation

◆ cleanup_closed_views()

void sd::ViewManager::cleanup_closed_views ( )

◆ clear()

void sd::ViewManager::clear ( )

◆ create()

template<typename T , typename... Args>
requires std::is_base_of_v<View, T>
T & sd::ViewManager::create ( std::string  name,
Args &&...  args 
)
inline

◆ for_each() [1/2]

template<typename F >
void sd::ViewManager::for_each ( F &&  fn)
inline

◆ for_each() [2/2]

template<typename F >
void sd::ViewManager::for_each ( F &&  fn) const
inline

◆ get() [1/2]

ViewManager::ViewResult sd::ViewManager::get ( const std::string &  name)

◆ get() [2/2]

ViewManager::ViewResult sd::ViewManager::get ( ViewId  id)

◆ get_id()

std::expected< ViewId, ViewError > sd::ViewManager::get_id ( const std::string &  name) const

◆ get_scenes()

std::vector< Scene * > sd::ViewManager::get_scenes ( )

◆ get_views() [1/2]

auto & sd::ViewManager::get_views ( )
inline

◆ get_views() [2/2]

const std::unordered_map< ViewId, std::unique_ptr< View > > & sd::ViewManager::get_views ( ) const
inline

◆ push_layer()

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

◆ remove() [1/2]

ViewError sd::ViewManager::remove ( const std::string &  name)

◆ remove() [2/2]

ViewError sd::ViewManager::remove ( ViewId  id)

◆ render_views()

void sd::ViewManager::render_views ( vk::CommandBuffer  cmd)

◆ update_views()

void sd::ViewManager::update_views ( float  dt)

Member Data Documentation

◆ m_next_view_id

ViewId sd::ViewManager::m_next_view_id
private

◆ m_view_name_to_id

std::unordered_map<std::string, ViewId> sd::ViewManager::m_view_name_to_id
private

◆ m_views_by_id

std::unordered_map<ViewId, std::unique_ptr<View> > sd::ViewManager::m_views_by_id
private

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