From a6dea71bf5ecf9f7e6be73ec12d497c734c338cd Mon Sep 17 00:00:00 2001 From: MihailRis Date: Fri, 25 Oct 2024 11:55:44 +0300 Subject: [PATCH] update textures loading --- src/assets/assetload_funcs.cpp | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/assets/assetload_funcs.cpp b/src/assets/assetload_funcs.cpp index 6c4ed262..68b0289c 100644 --- a/src/assets/assetload_funcs.cpp +++ b/src/assets/assetload_funcs.cpp @@ -41,18 +41,32 @@ static bool animation( Atlas* dstAtlas ); -assetload::postfunc assetload:: - texture(AssetsLoader*, const ResPaths* paths, const std::string& filename, const std::string& name, const std::shared_ptr&) { - std::shared_ptr image( - imageio::read(paths->find(filename + ".png").u8string()).release() - ); - return [name, image](auto assets) { - assets->store(Texture::from(image.get()), name); - }; +assetload::postfunc assetload::texture( + AssetsLoader*, + const ResPaths* paths, + const std::string& filename, + const std::string& name, + const std::shared_ptr& +) { + auto actualFile = paths->find(filename + ".png").u8string(); + try { + std::shared_ptr image(imageio::read(actualFile).release()); + return [name, image, actualFile](auto assets) { + assets->store(Texture::from(image.get()), name); + }; + } catch (const std::runtime_error& err) { + logger.error() << actualFile << ": " << err.what(); + return [](auto) {}; + } } -assetload::postfunc assetload:: - shader(AssetsLoader*, const ResPaths* paths, const std::string& filename, const std::string& name, const std::shared_ptr&) { +assetload::postfunc assetload::shader( + AssetsLoader*, + const ResPaths* paths, + const std::string& filename, + const std::string& name, + const std::shared_ptr& +) { fs::path vertexFile = paths->find(filename + ".glslv"); fs::path fragmentFile = paths->find(filename + ".glslf");