From 360f498e47c074cf68df4340e31cb813c071ffad Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sat, 12 Jun 2021 22:44:16 +0200 Subject: [PATCH] Add `Engine::UpdateGraph` for async engine/game update --- Source/Engine/Engine/Engine.cpp | 5 +++++ Source/Engine/Engine/Engine.h | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/Source/Engine/Engine/Engine.cpp b/Source/Engine/Engine/Engine.cpp index a5fd460fb..bfa2338c6 100644 --- a/Source/Engine/Engine/Engine.cpp +++ b/Source/Engine/Engine/Engine.cpp @@ -27,6 +27,7 @@ #include "Engine/Graphics/RenderTargetPool.h" #include "Engine/Graphics/RenderTask.h" #include "Engine/Profiler/Profiler.h" +#include "Engine/Threading/TaskGraph.h" #if USE_EDITOR #include "Editor/Editor.h" #include "Editor/ProjectInfo.h" @@ -62,6 +63,7 @@ bool Engine::HasFocus = false; uint64 Engine::FrameCount = 0; Action Engine::FixedUpdate; Action Engine::Update; +TaskGraph* Engine::UpdateGraph = nullptr; Action Engine::LateUpdate; Action Engine::Draw; Action Engine::Pause; @@ -122,6 +124,7 @@ int32 Engine::Main(const Char* cmdLine) #endif // Initialize engine + UpdateGraph = New(); EngineService::OnInit(); if (Application::Init()) return -10; @@ -289,6 +292,7 @@ void Engine::OnUpdate() // Call event Update(); + UpdateGraph->Execute(); // Update services EngineService::OnUpdate(); @@ -436,6 +440,7 @@ void Engine::OnExit() // Unload Engine services EngineService::OnDispose(); + Delete(UpdateGraph); LOG_FLUSH(); diff --git a/Source/Engine/Engine/Engine.h b/Source/Engine/Engine/Engine.h index 13f3e1fe8..51860e5a2 100644 --- a/Source/Engine/Engine/Engine.h +++ b/Source/Engine/Engine/Engine.h @@ -6,6 +6,7 @@ #include "Engine/Core/Types/DateTime.h" #include "Engine/Scripting/ScriptingType.h" +class TaskGraph; class JsonAsset; /// @@ -43,6 +44,11 @@ public: /// static Action Update; + /// + /// Task graph for engine update. + /// + API_FIELD(ReadOnly) static TaskGraph* UpdateGraph; + /// /// Event called after engine update. ///