Engine API Enhancements

This commit is contained in:
Isuru Samarathunga
2025-10-08 00:45:02 +05:30
parent 57c4309cf2
commit 1f9d5426b8
13 changed files with 205 additions and 141 deletions

View File

@ -19,80 +19,74 @@
namespace ia::iae
{
Scene *WorldManager::m_activeScene{};
RefPtr<Scene> WorldManager::s_activeScene{};
VOID WorldManager::Initialize()
{
m_activeScene = Scene::Create();
s_activeScene = Scene::Create();
}
VOID WorldManager::Terminate()
{
if (m_activeScene)
Scene::Destroy(m_activeScene);
s_activeScene.reset();
}
VOID WorldManager::Draw()
{
m_activeScene->Draw();
s_activeScene->Draw();
}
VOID WorldManager::DebugDraw()
{
m_activeScene->DebugDraw();
s_activeScene->DebugDraw();
}
VOID WorldManager::Update()
{
m_activeScene->Update();
s_activeScene->Update();
}
VOID WorldManager::FixedUpdate()
{
m_activeScene->FixedUpdate();
s_activeScene->FixedUpdate();
}
VOID WorldManager::ChangeActiveScene(IN Scene *scene)
VOID WorldManager::ChangeActiveScene(IN RefPtr<Scene> scene)
{
m_activeScene = scene;
s_activeScene = scene;
}
VOID WorldManager::AddNodeToActiveScene(IN RefPtr<INode> node)
{
m_activeScene->AddNode(node);
s_activeScene->AddNode(node);
}
INode *WorldManager::GetNodeFromActiveScene(IN CONST String &name)
{
return m_activeScene->GetNode(name);
return s_activeScene->GetNode(name);
}
VOID WorldManager::RemoveNodeFromActiveScene(IN CONST String &name)
{
m_activeScene->RemoveNode(name);
s_activeScene->RemoveNode(name);
}
Scene *WorldManager::GetActiveScene()
{
return s_activeScene.get();
}
} // namespace ia::iae
namespace ia::iae
{
Handle Engine::CreateScene(IN CONST String &sceneXML)
Scene *Engine::GetActiveScene()
{
return (Handle) Scene::Create(sceneXML);
return WorldManager::GetActiveScene();
}
Handle Engine::CreateEmptyScene()
VOID Engine::ChangeActiveScene(IN RefPtr<Scene> scene)
{
return (Handle) Scene::Create();
}
VOID Engine::DestroyScene(IN Handle handle)
{
Scene::Destroy((Scene *) handle);
}
VOID Engine::ChangeActiveScene(IN Handle scene)
{
WorldManager::ChangeActiveScene((Scene *) scene);
WorldManager::ChangeActiveScene(scene);
}
VOID Engine::AddNodeToActiveScene(IN RefPtr<INode> node)
@ -109,14 +103,4 @@ namespace ia::iae
{
WorldManager::RemoveNodeFromActiveScene(name);
}
VOID Engine::AddNodeToScene(IN Handle scene, IN RefPtr<INode> node)
{
((Scene *) scene)->AddNode(node);
}
VOID Engine::RemoveNodeFromScene(IN Handle scene, IN CONST String &name)
{
((Scene *) scene)->RemoveNode(name);
}
} // namespace ia::iae