2
3
4
5
9#include "Render/FrameInfo.h"
10#include "Core/Library/ClassLibrary.h"
11#include "Core/Container/LinkedUnorderedMap.h"
16
17
21
22
23
29
30
34
35
39
40
41
45
46
47
48
52
53
54
55
59
60
64
65
69
70
71
76
77
78
79
80 template<
typename T,
typename ... Args>
88
89
90 if (m_Identities.has_key(rendererName))
93 ss << rendererName <<
" has been pushed ";
95 SPICES_CORE_ERROR(ss.str());
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();
103
104
105 std::stringstream ss;
106 ss << rendererName <<
" pushed ";
107 SPICES_CORE_INFO(ss.str());
109 return *m_RendererManager;
113
114
115
121
122
123 if (!m_Identities.has_key(rendererName))
125 std::stringstream ss;
126 ss << rendererName <<
" has been popped ";
128 SPICES_CORE_ERROR(ss.str())
132
133
134 std::stringstream ss;
135 ss << rendererName <<
" popped ";
137 SPICES_CORE_INFO(ss.str());
139 m_Identities.erase(rendererName);
141 return *m_RendererManager;
149
150
154
155
164 m_Identities.for_each(fn);
#define SPICES_PROFILE_ZONE
static std::string GetClassString(ClassType t)
Get Class Name as string.
Class Static Function Library.
FrameInfo Class. This class defines the FrameInfo data.
RendererManager()=default
Constructor Function.
virtual ~RendererManager()=default
Destructor Function.
static std::shared_ptr< Renderer > GetRenderer(const std::string &name)
static void OnSlateResize()
Event Called on Slate resize.
static std::unique_ptr< RendererManager > m_RendererManager
Static RendererManager.
static void OnWindowResizeOver()
This function is called on swapchain resized or out of data. Recreate all renderer render pass,...
static void Run(TimeStep &ts, FrameInfo &frameInfo)
All renderer Start to Render.
static RendererManager & Get()
Get Static RendererManager.
static RendererManager & Pop(const std::string &rendererName)
Pop a renderer from this manager, and destroy it.
static void OnMeshAddedWorld()
Event Called on world mark querier.
RendererManager & Push(Args &&... args)
Push a renderer to this manager, and initialize it.
static scl::linked_unordered_map< std::string, std::shared_ptr< Renderer > > m_Identities
A container contains all renderer.
static void IterRenderer(T &&fn)
Iter all Renderer.
RendererManager Class. This class Manages all renderer.
Renderer Class. This class defines the basic behaves of renderer. When we add an new Renderer,...
This Class handles our engine time step during frames. Global Unique.
The container combines hashmap and list together. Used in the case that we want iter a hashmap in ord...