From c69e620e04cd496880aeb4189a5cf6b2612c681e Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 30 Aug 2021 11:52:00 +0200 Subject: [PATCH] Fixes --- Source/Engine/Content/Loading/ContentLoadTask.h | 2 +- .../Engine/Content/Loading/Tasks/LoadAssetTask.h | 15 ++++++++++++++- Source/Engine/Platform/GDK/GDKInput.cpp | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Content/Loading/ContentLoadTask.h b/Source/Engine/Content/Loading/ContentLoadTask.h index df13c8c43..79db369e1 100644 --- a/Source/Engine/Content/Loading/ContentLoadTask.h +++ b/Source/Engine/Content/Loading/ContentLoadTask.h @@ -25,7 +25,7 @@ public: /// /// Describes work result value /// - DECLARE_ENUM_4(Result, Ok, AssetLoadError, MissingReferences, LoadDataError); + DECLARE_ENUM_5(Result, Ok, AssetLoadError, MissingReferences, LoadDataError, TaskFailed); private: diff --git a/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h b/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h index ae8dab9e6..bea582163 100644 --- a/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h +++ b/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h @@ -6,6 +6,7 @@ #include "Engine/Content/Asset.h" #include "Engine/Content/AssetReference.h" #include "Engine/Content/WeakAssetReference.h" +#include "Engine/Core/Log.h" #include "Engine/Profiler/ProfilerCPU.h" /// @@ -25,6 +26,19 @@ public: { } + ~LoadAssetTask() + { + if (Asset) + { + Asset->Locker.Lock(); + Asset->_loadFailed = true; + Asset->_isLoaded = false; + LOG(Error, "Loading asset \'{0}\' result: {1}.", ToString(), ToString(Result::TaskFailed)); + Asset->_loadingTask = nullptr; + Asset->Locker.Unlock(); + } + } + public: WeakAssetReference Asset; @@ -55,7 +69,6 @@ protected: return Result::Ok; } - void OnEnd() override { Asset = nullptr; diff --git a/Source/Engine/Platform/GDK/GDKInput.cpp b/Source/Engine/Platform/GDK/GDKInput.cpp index b0cbfbbe6..2328ae3d3 100644 --- a/Source/Engine/Platform/GDK/GDKInput.cpp +++ b/Source/Engine/Platform/GDK/GDKInput.cpp @@ -236,7 +236,7 @@ bool GDKGamepad::UpdateState() return false; } -#else +#elif PLATFORM_GDK void GDKInput::Init() {