diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2024-02-10 06:12:44 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-02-10 06:17:31 +0100 |
commit | 5fd11965fbde71e56423da13955069aa92c28d30 (patch) | |
tree | 7734525da8abbbf3828b167eb13ed609b9d25f7e | |
parent | 91679b2836881d98333599f6b6602ccad7e37fd1 (diff) |
test: don't load in the atlases multiple times
-rw-r--r-- | loader/loader.hpp | 2 | ||||
-rw-r--r-- | test/loader.cpp | 20 |
2 files changed, 16 insertions, 6 deletions
diff --git a/loader/loader.hpp b/loader/loader.hpp index 2da6b361..60fda8b6 100644 --- a/loader/loader.hpp +++ b/loader/loader.hpp @@ -32,7 +32,7 @@ struct loader_ virtual Trade::ImageData2D texture(StringView prefix, StringView filename) noexcept(false) = 0; virtual const std::shared_ptr<class ground_atlas>& ground_atlas(StringView filename, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; virtual ArrayView<const String> anim_atlas_list() = 0; - virtual std::shared_ptr<class anim_atlas> anim_atlas(StringView name, StringView dir = ANIM_PATH, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; + virtual std::shared_ptr<class anim_atlas> anim_atlas(StringView name, StringView dir, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; virtual const std::shared_ptr<class wall_atlas>& wall_atlas(StringView name, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; virtual ArrayView<const wall_cell> wall_atlas_list() = 0; virtual void destroy() = 0; diff --git a/test/loader.cpp b/test/loader.cpp index 3c5ebf30..c51ad971 100644 --- a/test/loader.cpp +++ b/test/loader.cpp @@ -3,6 +3,8 @@ #include "loader/loader.hpp" #include "loader/wall-cell.hpp" #include "src/ground-atlas.hpp" +#include "src/wall-atlas.hpp" +#include <mg/Texture.h> namespace floormat { @@ -46,11 +48,20 @@ void test_app::test_loader() fm_assert(loader.make_invalid_wall_atlas().name == loader.INVALID); for (const auto& str : anim_atlases) - (void)loader.get_anim_atlas(str); + (void)loader.anim_atlas(str, {}); for (const auto& x : ground_atlases) - (void)loader.get_ground_atlas(x.name, x.size, x.pass); + { + auto& A = *loader.ground_atlas(x.name); + fm_assert(A.num_tiles2() == x.size); + fm_assert(A.pass_mode() == x.pass); + fm_assert(A.texture().id()); + } for (const auto& name : wall_atlases) - (void)loader.get_wall_atlas(name); + { + auto& A = *loader.wall_atlas(name); + fm_assert(!A.raw_frame_array().isEmpty()); + fm_assert(A.texture().id()); + } for (const auto& x : loader.ground_atlas_list()) { @@ -63,7 +74,6 @@ void test_app::test_loader() else { fm_assert(x.atlas); - fm_assert(loader.make_invalid_ground_atlas().atlas); fm_assert(x.atlas == loader.make_invalid_ground_atlas().atlas); } } @@ -71,7 +81,7 @@ void test_app::test_loader() fm_assert(loader.ground_atlas("metal1")->pass_mode() == pass_mode::pass); loader.sceneries(); for (StringView name : loader.anim_atlas_list()) - loader.anim_atlas(name); + loader.anim_atlas(name, loader.ANIM_PATH); } } // namespace floormat |