SpiecsEngine
 
Loading...
Searching...
No Matches

◆ Push()

template<typename T , typename ... Args>
RendererManager & Spices::RendererManager::Push ( Args &&... args)
inline

Push a renderer to this manager, and initialize it.

Template Parameters
TSpecific Renderer Class.
Parameters
[in]argsArgs.

Push system to map

System init

Definition at line 81 of file RendererManager.h.

82 {
84
85 std::string rendererName = ClassLibrary::GetClassString(typeid(T));
86
90 if (m_Identities.has_key(rendererName))
91 {
92 std::stringstream ss;
93 ss << rendererName << " has been pushed ";
94
95 SPICES_CORE_ERROR(ss.str());
96 }
97
98 m_Identities.push_back(rendererName, std::make_shared<T>(rendererName, std::forward<Args>(args)...));
99 const auto ptr = *m_Identities.find_value(rendererName);
100 ptr->OnSystemInitialize();
101
105 std::stringstream ss;
106 ss << rendererName << " pushed ";
107 SPICES_CORE_INFO(ss.str());
108
109 return *m_RendererManager;
110 }
#define SPICES_PROFILE_ZONE
static std::string GetClassString(ClassType t)
Get Class Name as string.
static std::unique_ptr< RendererManager > m_RendererManager
Static RendererManager.
static scl::linked_unordered_map< std::string, std::shared_ptr< Renderer > > m_Identities
A container contains all renderer.

References Spices::ClassLibrary::GetClassString().