SpiecsEngine
 
Loading...
Searching...
No Matches

◆ Register()

template<typename T , typename ... Args>
std::shared_ptr< T > Spices::SlateRegister::Register ( bool isPrimary,
const std::string & panelName,
Args &&... args )
inline

This function registry slate instance.

Template Parameters
TSlate specific type.
Parameters
[in]isPrimaryIs this slate's render function is called by register or owner.
[in]panelNameThe slate name.
Returns
Returns the shared pointer of T.

Not allow registy repeat.

@breif Instance T and store it.

Definition at line 115 of file SlateRegister.h.

116 {
118
122 if (m_SlatesEventContainer.find(panelName) != m_SlatesEventContainer.end())
123 {
124 std::stringstream ss;
125 ss << panelName << " Slate already register, please check your code again.";
126
127 SPICES_CORE_ERROR(ss.str());
128 }
129
133 std::shared_ptr<T> _T = std::make_shared<T>(panelName, FrameInfo::Get(), std::forward<Args>(args)...);
134 m_SlatesEventContainer[panelName] = _T;
135
136 if(isPrimary) m_SlatesRenderContainer[panelName] = _T;
137
138 return _T;
139 }
#define SPICES_PROFILE_ZONE
static FrameInfo & Get()
Get FrameInfo.
Definition FrameInfo.cpp:14
std::unordered_map< std::string, std::shared_ptr< ImguiSlate > > m_SlatesRenderContainer
The container of all slate handle.
std::unordered_map< std::string, std::shared_ptr< ImguiSlate > > m_SlatesEventContainer
The container of all slate handle.

References Spices::FrameInfo::Get().