CSEngine
Loading...
Searching...
No Matches
CSE::EngineCoreInstance Class Reference
Inheritance diagram for CSE::EngineCoreInstance:
CSE::EngineCore

Public Member Functions

 GET_CORE_FUNCTION (ResMgr, m_resMgr)
 
 GET_CORE_FUNCTION (GameObjectMgr, m_gameObjectMgr)
 
 GET_CORE_FUNCTION (RenderMgr, m_renderMgr)
 
 GET_CORE_FUNCTION (CameraMgr, m_cameraMgr)
 
 GET_CORE_FUNCTION (LightMgr, m_lightMgr)
 
 GET_CORE_FUNCTION (SceneMgr, m_sceneMgr)
 
 GET_CORE_FUNCTION (MemoryMgr, m_memoryMgr)
 
 GET_CORE_FUNCTION (ScriptMgr, m_scriptMgr)
 
 GET_CORE_FUNCTION (ReflectionMgr, m_reflectionMgr)
 
void Init (unsigned int width, unsigned int height)
 
void Update (float elapsedTime)
 
void LateUpdate (float elapsedTime)
 
void Render () const
 
void Exterminate ()
 
void ExterminateWithoutReflectionDefine ()
 
void ResizeWindow (unsigned int width, unsigned int height)
 
void SetDeviceBuffer (unsigned int id)
 
virtual void GenerateCores ()
 
bool IsReady () const
 

Protected Attributes

std::vector< CoreBase * > m_cores
 
std::list< RenderCoreBase * > m_renderCores
 
std::list< CoreBase * > m_updateCores
 
ResMgrm_resMgr = nullptr
 
GameObjectMgrm_gameObjectMgr = nullptr
 
RenderMgrm_renderMgr = nullptr
 
CameraMgrm_cameraMgr = nullptr
 
LightMgrm_lightMgr = nullptr
 
SceneMgrm_sceneMgr = nullptr
 
MemoryMgrm_memoryMgr = nullptr
 
ScriptMgrm_scriptMgr = nullptr
 
ReflectionMgrm_reflectionMgr = nullptr
 
OGLMgrm_oglMgr = nullptr
 
bool m_isGenerated = false
 
bool m_isReady = false
 

Detailed Description

Definition at line 31 of file EngineCoreInstance.h.

Member Function Documentation

◆ Exterminate()

void EngineCoreInstance::Exterminate ( )

Definition at line 67 of file EngineCoreInstance.cpp.

67 {
68 ExterminateWithoutReflectionDefine();
69 CSE::ReflectionMgr::DefineWrapper::ReleaseDefine();
70 CSE::LightMgr::ExterminateGlobalSettings();
71}

◆ ExterminateWithoutReflectionDefine()

void EngineCoreInstance::ExterminateWithoutReflectionDefine ( )

Definition at line 73 of file EngineCoreInstance.cpp.

73 {
74 if(m_memoryMgr != nullptr)
75 m_memoryMgr->ExterminateObjects(true);
76 for (auto core : m_cores) {
77 SAFE_DELETE(core);
78 }
79 m_cores.clear();
80}

◆ GenerateCores()

void EngineCoreInstance::GenerateCores ( )
virtual

Definition at line 82 of file EngineCoreInstance.cpp.

82 {
83 if(m_isGenerated) return;
84 m_isGenerated = true;
85 m_cores = std::vector<CoreBase*>();
86 m_cores.reserve(ENGINE_COUNT);
87
88 m_reflectionMgr = new ReflectionMgr();
89 m_resMgr = new ResMgr();
90 m_gameObjectMgr = new GameObjectMgr();
91 m_oglMgr = new OGLMgr();
92 m_renderMgr = new RenderMgr();
93 m_cameraMgr = new CameraMgr();
94 m_lightMgr = new LightMgr();
95 m_sceneMgr = new SceneMgr();
96 m_memoryMgr = new MemoryMgr();
97 m_scriptMgr = new ScriptMgr();
98
99 m_cores.push_back(m_reflectionMgr);
100 m_cores.push_back(m_resMgr);
101 m_cores.push_back(m_gameObjectMgr);
102// m_updateCores.push_back(m_gameObjectMgr);
103
104 m_cores.push_back(m_oglMgr);
105 m_renderCores.push_back(m_oglMgr);
106 m_cores.push_back(m_renderMgr);
107 m_renderCores.push_back(dynamic_cast<RenderCoreBase* const>(m_renderMgr));
108 m_cores.push_back(m_cameraMgr);
109 m_cores.push_back(m_lightMgr);
110
111 m_cores.push_back(m_sceneMgr);
112 m_updateCores.push_back(m_sceneMgr);
113 m_cores.push_back(m_memoryMgr);
114
115 m_cores.push_back(m_scriptMgr);
116}
Class for managing rendering operations.
Definition RenderMgr.h:24

◆ Init()

void EngineCoreInstance::Init ( unsigned int width,
unsigned int height )

Definition at line 29 of file EngineCoreInstance.cpp.

29 {
30 GenerateCores();
31
32 for (const auto& core : m_cores) {
33 core->Init();
34 }
35
36 m_oglMgr->ResizeWindow(width, height);
37 static_cast<RenderMgr*>(m_renderMgr)->SetViewport();
38
39
40#ifdef __EMSCRIPTEN__
41 static_cast<SceneMgr*>(m_sceneMgr)->SetLegacyScene(new WebDemoScene());
42#else
43// static_cast<SceneMgr*>(m_sceneMgr)->SetLegacyScene(new FirstDemoScene());
44// SScene* scene = SSceneLoader::LoadScene(CSE::AssetsPath() + "Scene/jack.scene");
46// m_sceneMgr->SetScene(scene);
47#endif
48 m_isReady = true;
49}

◆ IsReady()

bool CSE::EngineCoreInstance::IsReady ( ) const
inline

Definition at line 57 of file EngineCoreInstance.h.

57 {
58 return m_isReady;
59 }

◆ LateUpdate()

void EngineCoreInstance::LateUpdate ( float elapsedTime)

Definition at line 57 of file EngineCoreInstance.cpp.

57 {
58 m_gameObjectMgr->DestroyQueuedObject();
59}

◆ Render()

void EngineCoreInstance::Render ( ) const

Definition at line 61 of file EngineCoreInstance.cpp.

61 {
62 for (const auto& core : m_renderCores) {
63 core->Render();
64 }
65}

◆ ResizeWindow()

void EngineCoreInstance::ResizeWindow ( unsigned int width,
unsigned int height )

Definition at line 118 of file EngineCoreInstance.cpp.

118 {
119 m_oglMgr->ResizeWindow(width, height);
120 static_cast<RenderMgr*>(m_renderMgr)->SetViewport();
121}

◆ SetDeviceBuffer()

void EngineCoreInstance::SetDeviceBuffer ( unsigned int id)

Definition at line 123 of file EngineCoreInstance.cpp.

123 {
124 static_cast<RenderMgr*>(m_renderMgr)->SetDeviceBuffer(id);
125}

◆ Update()

void EngineCoreInstance::Update ( float elapsedTime)

Definition at line 51 of file EngineCoreInstance.cpp.

51 {
52 for (const auto& core : m_updateCores) {
53 core->Update(elapsedTime);
54 }
55}

Member Data Documentation

◆ m_cameraMgr

CameraMgr* CSE::EngineCoreInstance::m_cameraMgr = nullptr
protected

Definition at line 70 of file EngineCoreInstance.h.

◆ m_cores

std::vector<CoreBase*> CSE::EngineCoreInstance::m_cores
protected

Definition at line 62 of file EngineCoreInstance.h.

◆ m_gameObjectMgr

GameObjectMgr* CSE::EngineCoreInstance::m_gameObjectMgr = nullptr
protected

Definition at line 68 of file EngineCoreInstance.h.

◆ m_isGenerated

bool CSE::EngineCoreInstance::m_isGenerated = false
protected

Definition at line 79 of file EngineCoreInstance.h.

◆ m_isReady

bool CSE::EngineCoreInstance::m_isReady = false
protected

Definition at line 80 of file EngineCoreInstance.h.

◆ m_lightMgr

LightMgr* CSE::EngineCoreInstance::m_lightMgr = nullptr
protected

Definition at line 71 of file EngineCoreInstance.h.

◆ m_memoryMgr

MemoryMgr* CSE::EngineCoreInstance::m_memoryMgr = nullptr
protected

Definition at line 73 of file EngineCoreInstance.h.

◆ m_oglMgr

OGLMgr* CSE::EngineCoreInstance::m_oglMgr = nullptr
protected

Definition at line 77 of file EngineCoreInstance.h.

◆ m_reflectionMgr

ReflectionMgr* CSE::EngineCoreInstance::m_reflectionMgr = nullptr
protected

Definition at line 75 of file EngineCoreInstance.h.

◆ m_renderCores

std::list<RenderCoreBase*> CSE::EngineCoreInstance::m_renderCores
protected

Definition at line 63 of file EngineCoreInstance.h.

◆ m_renderMgr

RenderMgr* CSE::EngineCoreInstance::m_renderMgr = nullptr
protected

Definition at line 69 of file EngineCoreInstance.h.

◆ m_resMgr

ResMgr* CSE::EngineCoreInstance::m_resMgr = nullptr
protected

Definition at line 67 of file EngineCoreInstance.h.

◆ m_sceneMgr

SceneMgr* CSE::EngineCoreInstance::m_sceneMgr = nullptr
protected

Definition at line 72 of file EngineCoreInstance.h.

◆ m_scriptMgr

ScriptMgr* CSE::EngineCoreInstance::m_scriptMgr = nullptr
protected

Definition at line 74 of file EngineCoreInstance.h.

◆ m_updateCores

std::list<CoreBase*> CSE::EngineCoreInstance::m_updateCores
protected

Definition at line 64 of file EngineCoreInstance.h.


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