From 4ed4452dfb09fb3bb224827809d457075c660680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20B=C3=B6ckelmann?= Date: Tue, 21 Apr 2026 09:30:34 +0200 Subject: [PATCH] ADD: AssetLoadingProgressEvent, closes #19 --- CMakeLists.txt | 1 + src/engine/renderer/loader/async/AssetLoader.cpp | 5 +++++ .../loader/async/AssetLoadingProgressEvent.h | 13 +++++++++++++ 3 files changed, 19 insertions(+) create mode 100644 src/engine/renderer/loader/async/AssetLoadingProgressEvent.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 09f4d72..1f961bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -310,6 +310,7 @@ if(BUILD_GAME) src/engine/renderer/loader/async/RawStagedModelData.h src/engine/renderer/loader/async/AssetLoader.cpp src/engine/renderer/loader/async/AssetLoader.h + src/engine/renderer/loader/async/AssetLoadingProgressEvent.h ) target_compile_options(Dicewars_Siedler PRIVATE -Wall diff --git a/src/engine/renderer/loader/async/AssetLoader.cpp b/src/engine/renderer/loader/async/AssetLoader.cpp index bfde971..28f35e0 100644 --- a/src/engine/renderer/loader/async/AssetLoader.cpp +++ b/src/engine/renderer/loader/async/AssetLoader.cpp @@ -6,10 +6,12 @@ #include +#include "AssetLoadingProgressEvent.h" #include "json.hpp" #include "../AssetManager.h" #include "../OBJLoader.h" #include "../TextureLoader.h" +#include "../../../core/events/EventBus.h" namespace fs = std::filesystem; @@ -157,6 +159,9 @@ void AssetLoader::processUploadQueue(int maxPerFrame) { }, intermediateAsset); ++loaded; } + + const LoadingProgress progress = getProgress(); + EventBus::getInstance().emit(AssetLoadingProgressEvent(progress.fraction(), progress.isDone())); } std::vector AssetLoader::determineUploadQueue(const int maxPerFrame) { diff --git a/src/engine/renderer/loader/async/AssetLoadingProgressEvent.h b/src/engine/renderer/loader/async/AssetLoadingProgressEvent.h new file mode 100644 index 0000000..4e136ad --- /dev/null +++ b/src/engine/renderer/loader/async/AssetLoadingProgressEvent.h @@ -0,0 +1,13 @@ +// +// Created by sebastian on 21.04.26. +// + +#ifndef ASSETLOADINGPROGRESSEVENT_H +#define ASSETLOADINGPROGRESSEVENT_H +class AssetLoadingProgressEvent { +public: + float progress; + bool complete; +}; + +#endif //ASSETLOADINGPROGRESSEVENT_H