1#include "EngineCoreInstance.h"
2#include "Base/CoreBase.h"
4#include "GameObjectMgr.h"
9#include "Render/RenderMgr.h"
12#include "ReflectionMgr.h"
13#include "../Sample/FirstDemoScene.h"
14#include "../Sample/WebDemoScene.h"
15#include "../Util/Loader/SCENE/SSceneLoader.h"
16#include "../Util/AssetsDef.h"
19#include "../Sample/WebDemoScene.h"
23constexpr short ENGINE_COUNT = 10;
25EngineCoreInstance::EngineCoreInstance() =
default;
27EngineCoreInstance::~EngineCoreInstance() =
default;
29void EngineCoreInstance::Init(
unsigned int width,
unsigned int height) {
32 for (
const auto& core : m_cores) {
36 m_oglMgr->ResizeWindow(width, height);
37 static_cast<RenderMgr*
>(m_renderMgr)->SetViewport();
51void EngineCoreInstance::Update(
float elapsedTime) {
52 for (
const auto& core : m_updateCores) {
53 core->Update(elapsedTime);
57void EngineCoreInstance::LateUpdate(
float elapsedTime) {
58 m_gameObjectMgr->DestroyQueuedObject();
61void EngineCoreInstance::Render()
const {
62 for (
const auto& core : m_renderCores) {
67void EngineCoreInstance::Exterminate() {
68 ExterminateWithoutReflectionDefine();
69 CSE::ReflectionMgr::DefineWrapper::ReleaseDefine();
70 CSE::LightMgr::ExterminateGlobalSettings();
73void EngineCoreInstance::ExterminateWithoutReflectionDefine() {
74 if(m_memoryMgr !=
nullptr)
75 m_memoryMgr->ExterminateObjects(
true);
76 for (
auto core : m_cores) {
82void EngineCoreInstance::GenerateCores() {
83 if(m_isGenerated)
return;
85 m_cores = std::vector<CoreBase*>();
86 m_cores.reserve(ENGINE_COUNT);
99 m_cores.push_back(m_reflectionMgr);
100 m_cores.push_back(m_resMgr);
101 m_cores.push_back(m_gameObjectMgr);
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);
111 m_cores.push_back(m_sceneMgr);
112 m_updateCores.push_back(m_sceneMgr);
113 m_cores.push_back(m_memoryMgr);
115 m_cores.push_back(m_scriptMgr);
118void EngineCoreInstance::ResizeWindow(
unsigned int width,
unsigned int height) {
119 m_oglMgr->ResizeWindow(width, height);
120 static_cast<RenderMgr*
>(m_renderMgr)->SetViewport();
123void EngineCoreInstance::SetDeviceBuffer(
unsigned int id) {
124 static_cast<RenderMgr*
>(m_renderMgr)->SetDeviceBuffer(
id);
Class for managing rendering operations.