diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2022-11-07 15:27:08 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-11-07 15:27:08 +0100 |
| commit | 151e1f9a56bce31c2703610980c00fc8f527aa6a (patch) | |
| tree | c4663ffca0ff35dc2dda04f3cd8e54966683faa2 /loader | |
| parent | 9e390f58ea6e4c50d7ba104c5fe3ad97f74fe6f0 (diff) | |
wip
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/loader-impl.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/loader/loader-impl.cpp b/loader/loader-impl.cpp index e782314c..c4ba2376 100644 --- a/loader/loader-impl.cpp +++ b/loader/loader-impl.cpp @@ -35,10 +35,11 @@ struct loader_impl final : loader_ { std::optional<Utility::Resource> shader_res; PluginManager::Manager<Trade::AbstractImporter> importer_plugins; - Containers::Pointer<Trade::AbstractImporter> tga_importer = + Containers::Pointer<Trade::AbstractImporter> image_importer = importer_plugins.loadAndInstantiate("AnyImageImporter"); - PluginManager::Manager<Trade::AbstractImageConverter> image_converter_plugins; + Containers::Pointer<Trade::AbstractImporter> tga_importer = + importer_plugins.loadAndInstantiate("TgaImporter"); std::unordered_map<std::string, std::shared_ptr<struct tile_atlas>> tile_atlas_map; std::unordered_map<StringView, std::shared_ptr<struct anim_atlas>> anim_atlas_map; @@ -106,9 +107,10 @@ Trade::ImageData2D loader_impl::texture(const char(&prefix)[N], StringView filen { std::memcpy(filename + len, extension.data(), extension.size()); filename[len + extension.size()] = '\0'; - if (Path::exists(filename) && tga_importer->openFile(filename)) + auto& importer = extension == StringView(".tga") ? tga_importer : image_importer; + if (Path::exists(filename) && importer->openFile(filename)) { - auto img = tga_importer->image2D(0); + auto img = importer->image2D(0); if (!img) fm_abort("can't allocate image for '%s'", filename); auto ret = std::move(*img); |
