From a698e2e44e3dfa157c2b184a184db204b44a6a30 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 4 Mar 2018 02:38:36 +0300 Subject: Show current atlases count in debug window. If use too many images, atlase can be split to more than one. And this is performance issue. --- src/resources/loaders/atlasloader.cpp | 8 +++++--- src/resources/loaders/atlasloader.h | 6 +++--- src/resources/map/map.cpp | 9 +++++++++ src/resources/map/map.h | 7 +++++-- 4 files changed, 22 insertions(+), 8 deletions(-) (limited to 'src/resources') diff --git a/src/resources/loaders/atlasloader.cpp b/src/resources/loaders/atlasloader.cpp index 6ca23ddea..aa2585b27 100644 --- a/src/resources/loaders/atlasloader.cpp +++ b/src/resources/loaders/atlasloader.cpp @@ -52,11 +52,13 @@ struct AtlasLoader final } }; -Resource *Loader::getAtlas(const std::string &name, - const StringVect &files) +AtlasResource *Loader::getAtlas(const std::string &name, + const StringVect &files) { AtlasLoader rl = { name, &files }; - return ResourceManager::get("atlas_" + name, AtlasLoader::load, &rl); + return static_cast(ResourceManager::get( + "atlas_" + name, + AtlasLoader::load, &rl)); } #endif // USE_OPENGL diff --git a/src/resources/loaders/atlasloader.h b/src/resources/loaders/atlasloader.h index 50d078626..c7cdabae5 100644 --- a/src/resources/loaders/atlasloader.h +++ b/src/resources/loaders/atlasloader.h @@ -26,12 +26,12 @@ #include "localconsts.h" -class Resource; +class AtlasResource; namespace Loader { - Resource *getAtlas(const std::string &name, - const StringVect &files) A_WARN_UNUSED; + AtlasResource *getAtlas(const std::string &name, + const StringVect &files) A_WARN_UNUSED; } // namespace Loader #endif // USE_OPENGL diff --git a/src/resources/map/map.cpp b/src/resources/map/map.cpp index 1e97597bf..c9636183e 100644 --- a/src/resources/map/map.cpp +++ b/src/resources/map/map.cpp @@ -42,6 +42,8 @@ #include "resources/ambientlayer.h" +#include "resources/atlas/atlasresource.h" + #include "resources/image/subimage.h" #include "resources/loaders/imageloader.h" @@ -1791,3 +1793,10 @@ int Map::calcMemoryChilds(const int level) const mHeights->calcMemory(level + 1); return sz; } + +int Map::getAtlasCount() const restrict2 +{ + if (mAtlas == nullptr) + return 0; + return CAST_S32(mAtlas->atlases.size()); +} diff --git a/src/resources/map/map.h b/src/resources/map/map.h index fbb3e43da..a3397ad2e 100644 --- a/src/resources/map/map.h +++ b/src/resources/map/map.h @@ -42,6 +42,7 @@ #include "resources/map/properties.h" class AmbientLayer; +class AtlasResource; class MapHeights; class MapItem; class MapLayer; @@ -283,6 +284,8 @@ class Map final : public Properties, int getActorsCount() const restrict2 A_WARN_UNUSED { return CAST_S32(mActors.size()); } + int getAtlasCount() const restrict2 A_WARN_UNUSED; + void setPvpMode(const int mode) restrict2; int getPvpMode() const restrict2 noexcept2 A_WARN_UNUSED @@ -327,7 +330,7 @@ class Map final : public Properties, restrict2 noexcept2 A_WARN_UNUSED { return mTileAnimations; } - void setAtlas(Resource *restrict const atlas) restrict2 noexcept2 + void setAtlas(AtlasResource *restrict const atlas) restrict2 noexcept2 { mAtlas = atlas; } const MetaTile *getMetaTiles() const restrict2 noexcept2 @@ -483,7 +486,7 @@ class Map final : public Properties, int mDrawScrollX; int mDrawScrollY; int mMask; - Resource *mAtlas; + AtlasResource *mAtlas; const MapHeights *mHeights; bool mRedrawMap; bool mBeingOpacity; -- cgit v1.2.3-60-g2f50