From 325b07d8448961e180043ced091fb25949525a76 Mon Sep 17 00:00:00 2001 From: Attila Uygun Date: Sun, 11 Jun 2023 01:08:37 +0200 Subject: [PATCH] Do not refresh image when texture is not in use --- src/engine/engine.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/engine/engine.cc b/src/engine/engine.cc index 9dffd41..c4c72e4 100644 --- a/src/engine/engine.cc +++ b/src/engine/engine.cc @@ -293,11 +293,13 @@ void Engine::RefreshImage(const std::string& asset_name) { return; } - auto image = it->second.create_image(); - if (image) - it->second.texture->Update(std::move(image)); - else - it->second.texture->Destroy(); + if (it->second.persistent || it->second.use_count > 0) { + auto image = it->second.create_image(); + if (image) + it->second.texture->Update(std::move(image)); + else + it->second.texture->Destroy(); + } } Texture* Engine::AcquireTexture(const std::string& asset_name) { @@ -307,9 +309,9 @@ Texture* Engine::AcquireTexture(const std::string& asset_name) { return nullptr; } + it->second.use_count++; if (!it->second.texture->IsValid()) RefreshImage(it->first); - it->second.use_count++; return it->second.texture.get(); }