Added Awake, Start, Update, LateUpdate, OnDestroy calls via SystemRoutines
This commit is contained in:
parent
0f63ee10d0
commit
c83a5a379e
|
@ -34,11 +34,19 @@ namespace Sandbox
|
||||||
|
|
||||||
SDL_Init(SDL_INIT_VIDEO);
|
SDL_Init(SDL_INIT_VIDEO);
|
||||||
window.Create(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
|
window.Create(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
|
||||||
|
|
||||||
|
// Create Systems
|
||||||
SHADE::SHSystemManager::CreateSystem<SHADE::SHGraphicsSystem>();
|
SHADE::SHSystemManager::CreateSystem<SHADE::SHGraphicsSystem>();
|
||||||
SHADE::SHGraphicsSystem* graphicsSystem = static_cast<SHADE::SHGraphicsSystem*>(SHADE::SHSystemManager::GetSystem<SHADE::SHGraphicsSystem>());
|
|
||||||
SHADE::SHSystemManager::RegisterRoutine<SHADE::SHGraphicsSystem, SHADE::SHGraphicsSystem::SHGraphicsSystemRoutine>(1);
|
|
||||||
SHADE::SHSystemManager::CreateSystem<SHADE::SHScriptEngine>();
|
SHADE::SHSystemManager::CreateSystem<SHADE::SHScriptEngine>();
|
||||||
|
|
||||||
|
// Create Routines
|
||||||
|
SHADE::SHSystemManager::RegisterRoutine<SHADE::SHScriptEngine, SHADE::SHScriptEngine::FrameSetUpRoutine>();
|
||||||
|
SHADE::SHSystemManager::RegisterRoutine<SHADE::SHScriptEngine, SHADE::SHScriptEngine::UpdateRoutine>();
|
||||||
|
SHADE::SHSystemManager::RegisterRoutine<SHADE::SHScriptEngine, SHADE::SHScriptEngine::LateUpdateRoutine>();
|
||||||
|
SHADE::SHSystemManager::RegisterRoutine<SHADE::SHGraphicsSystem, SHADE::SHGraphicsSystem::SHGraphicsSystemRoutine>(1);
|
||||||
|
SHADE::SHSystemManager::RegisterRoutine<SHADE::SHScriptEngine, SHADE::SHScriptEngine::FrameCleanUpRoutine>();
|
||||||
|
|
||||||
|
SHADE::SHGraphicsSystem* graphicsSystem = static_cast<SHADE::SHGraphicsSystem*>(SHADE::SHSystemManager::GetSystem<SHADE::SHGraphicsSystem>());
|
||||||
graphicsSystem->SetWindow(&window);
|
graphicsSystem->SetWindow(&window);
|
||||||
SDL_CreateWindowFrom(window.GetHWND());
|
SDL_CreateWindowFrom(window.GetHWND());
|
||||||
|
|
||||||
|
|
|
@ -11,13 +11,14 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../SHECSMacros.h"
|
#include "../SHECSMacros.h"
|
||||||
|
#include "SH_API.h"
|
||||||
|
|
||||||
namespace SHADE
|
namespace SHADE
|
||||||
{
|
{
|
||||||
|
|
||||||
class SHSystemManager;
|
class SHSystemManager;
|
||||||
|
|
||||||
class SHSystem
|
class SH_API SHSystem
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
SystemID systemID;
|
SystemID systemID;
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "SHRoutineStats.h"
|
#include "SHRoutineStats.h"
|
||||||
#include "SHSystem.h"
|
#include "SHSystem.h"
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "SH_API.h"
|
||||||
|
|
||||||
|
|
||||||
namespace SHADE
|
namespace SHADE
|
||||||
|
@ -15,7 +16,7 @@ namespace SHADE
|
||||||
class SHSystemManager;
|
class SHSystemManager;
|
||||||
|
|
||||||
|
|
||||||
class SHSystemRoutine
|
class SH_API SHSystemRoutine
|
||||||
{
|
{
|
||||||
friend class SHSystemManager;
|
friend class SHSystemManager;
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -483,5 +483,4 @@ namespace SHADE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ of DigiPen Institute of Technology is prohibited.
|
||||||
#include "ECS_Base/SHECSMacros.h"
|
#include "ECS_Base/SHECSMacros.h"
|
||||||
#include "ECS_Base/Entity/SHEntity.h"
|
#include "ECS_Base/Entity/SHEntity.h"
|
||||||
#include "ECS_Base/System/SHSystem.h"
|
#include "ECS_Base/System/SHSystem.h"
|
||||||
|
#include "ECS_Base/System/SHSystemRoutine.h"
|
||||||
#include "SH_API.h"
|
#include "SH_API.h"
|
||||||
|
|
||||||
namespace SHADE
|
namespace SHADE
|
||||||
|
@ -27,9 +28,37 @@ namespace SHADE
|
||||||
/// Manages initialisation of the DotNetRuntime and interfacing with CLR code written
|
/// Manages initialisation of the DotNetRuntime and interfacing with CLR code written
|
||||||
/// and executed on .NET.
|
/// and executed on .NET.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
class SH_API SHScriptEngine : public SHSystem
|
class SH_API SHScriptEngine final : public SHSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/*-----------------------------------------------------------------------------*/
|
||||||
|
/* Type Definitions */
|
||||||
|
/*-----------------------------------------------------------------------------*/
|
||||||
|
class SH_API FrameSetUpRoutine final : public SHSystemRoutine
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FrameSetUpRoutine();
|
||||||
|
void Execute(double dt) noexcept override final;
|
||||||
|
};
|
||||||
|
class SH_API UpdateRoutine final : public SHSystemRoutine
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
UpdateRoutine();
|
||||||
|
void Execute(double dt) noexcept override final;
|
||||||
|
};
|
||||||
|
class SH_API LateUpdateRoutine final : public SHSystemRoutine
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LateUpdateRoutine();
|
||||||
|
void Execute(double dt) noexcept override final;
|
||||||
|
};
|
||||||
|
class SH_API FrameCleanUpRoutine final : public SHSystemRoutine
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FrameCleanUpRoutine();
|
||||||
|
void Execute(double dt) noexcept override final;
|
||||||
|
};
|
||||||
|
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
/* Constructor */
|
/* Constructor */
|
||||||
/*-----------------------------------------------------------------------------*/
|
/*-----------------------------------------------------------------------------*/
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
/************************************************************************************//*!
|
||||||
|
\file SHScriptEngineRoutines.cpp
|
||||||
|
\author Tng Kah Wei, kahwei.tng, 390009620
|
||||||
|
\par email: kahwei.tng\@digipen.edu
|
||||||
|
\date Sep 17, 2021
|
||||||
|
\brief Contains the implementation or functions of SystemRoutines in the
|
||||||
|
SHScriptEngine class.
|
||||||
|
|
||||||
|
Copyright (C) 2021 DigiPen Institute of Technology.
|
||||||
|
Reproduction or disclosure of this file or its contents without the prior written consent
|
||||||
|
of DigiPen Institute of Technology is prohibited.
|
||||||
|
*//*************************************************************************************/
|
||||||
|
// Precompiled Headers
|
||||||
|
#include <SHpch.h>
|
||||||
|
// Primary Header
|
||||||
|
#include "SHScriptEngine.h"
|
||||||
|
|
||||||
|
namespace SHADE
|
||||||
|
{
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
/* System Routine Functions - FrameSetUpRoutine */
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
SHScriptEngine::FrameSetUpRoutine::FrameSetUpRoutine()
|
||||||
|
: SHSystemRoutine("Script Engine Frame Set Up", false)
|
||||||
|
{}
|
||||||
|
void SHScriptEngine::FrameSetUpRoutine::Execute(double) noexcept
|
||||||
|
{
|
||||||
|
reinterpret_cast<SHScriptEngine*>(system)->csScriptsFrameSetUp();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
/* System Routine Functions - UpdateRoutine */
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
SHScriptEngine::UpdateRoutine::UpdateRoutine()
|
||||||
|
: SHSystemRoutine("Script Engine Update", false)
|
||||||
|
{}
|
||||||
|
void SHScriptEngine::UpdateRoutine::Execute(double) noexcept
|
||||||
|
{
|
||||||
|
reinterpret_cast<SHScriptEngine*>(system)->csScriptsExecuteUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
/* System Routine Functions - LateUpdateRoutine */
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
SHScriptEngine::LateUpdateRoutine::LateUpdateRoutine()
|
||||||
|
: SHSystemRoutine("Script Engine Late Update", false)
|
||||||
|
{}
|
||||||
|
void SHScriptEngine::LateUpdateRoutine::Execute(double) noexcept
|
||||||
|
{
|
||||||
|
reinterpret_cast<SHScriptEngine*>(system)->csScriptsExecuteLateUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
/* System Routine Functions - FrameCleanUpRoutine */
|
||||||
|
/*-----------------------------------------------------------------------------------*/
|
||||||
|
SHScriptEngine::FrameCleanUpRoutine::FrameCleanUpRoutine()
|
||||||
|
: SHSystemRoutine("Script Engine Frame Clean Up", false)
|
||||||
|
{}
|
||||||
|
void SHScriptEngine::FrameCleanUpRoutine::Execute(double) noexcept
|
||||||
|
{
|
||||||
|
reinterpret_cast<SHScriptEngine*>(system)->csScriptsFrameCleanUp();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue