add 'system.max-bg-asset-loaders' setting

This commit is contained in:
MihailRis 2026-01-28 20:06:00 +03:00
parent 1cf4fb8703
commit 63024133be
8 changed files with 26 additions and 9 deletions

View file

@ -12,7 +12,9 @@
static debug::Logger logger("assets-management");
AssetsManagement::AssetsManagement(Engine& engine) : engine(engine) {}
AssetsManagement::AssetsManagement(Engine& engine)
: engine(engine), settings(engine.getSettings()) {
}
AssetsManagement::~AssetsManagement() {
finishBackgroundLoader();
@ -36,7 +38,9 @@ AssetsLoader& AssetsManagement::acquireBackgroundLoader() {
backgroundLoader = std::make_unique<AssetsLoader>(
engine, *assets, engine.getResPaths()
);
backgroundLoaderTask = backgroundLoader->startTask(nullptr);
backgroundLoaderTask = backgroundLoader->startTask(
nullptr, settings.system.maxBgAssetLoaders.get()
);
return *backgroundLoader;
}
@ -56,7 +60,9 @@ void AssetsManagement::loadAssets(Content* content) {
// todo: before setting to true, check if GLSLExtension thread safe
bool threading = false; // look at three upper lines
if (threading) {
auto task = loader.startTask([=](){});
auto task = loader.startTask(
[=]() {}, 0
);
task->waitForEnd();
} else {
while (loader.hasNext()) {

View file

@ -8,6 +8,7 @@ class AssetsLoader;
class Engine;
class Content;
class Task;
struct EngineSettings;
class AssetsManagement final {
public:
@ -25,6 +26,7 @@ private:
void finishBackgroundLoader();
Engine& engine;
const EngineSettings& settings;
std::unique_ptr<Assets> assets;
std::unique_ptr<AssetsLoader> backgroundLoader;
std::shared_ptr<Task> backgroundLoaderTask;