diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-03-04 02:38:36 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-03-04 02:38:36 +0300 |
commit | a698e2e44e3dfa157c2b184a184db204b44a6a30 (patch) | |
tree | 66876f11a3e80e5bfab69cfd4ce17ed2a59df896 /src/resources | |
parent | 44ef6547161dd3cd2e1bb4053bb5e8619e6dc0d0 (diff) | |
download | manaplus-a698e2e44e3dfa157c2b184a184db204b44a6a30.tar.gz manaplus-a698e2e44e3dfa157c2b184a184db204b44a6a30.tar.bz2 manaplus-a698e2e44e3dfa157c2b184a184db204b44a6a30.tar.xz manaplus-a698e2e44e3dfa157c2b184a184db204b44a6a30.zip |
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.
Diffstat (limited to 'src/resources')
-rw-r--r-- | src/resources/loaders/atlasloader.cpp | 8 | ||||
-rw-r--r-- | src/resources/loaders/atlasloader.h | 6 | ||||
-rw-r--r-- | src/resources/map/map.cpp | 9 | ||||
-rw-r--r-- | src/resources/map/map.h | 7 |
4 files changed, 22 insertions, 8 deletions
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<AtlasResource*>(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; |