summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2018-03-04 02:38:36 +0300
committerAndrei Karas <akaras@inbox.ru>2018-03-04 02:38:36 +0300
commita698e2e44e3dfa157c2b184a184db204b44a6a30 (patch)
tree66876f11a3e80e5bfab69cfd4ce17ed2a59df896 /src/resources
parent44ef6547161dd3cd2e1bb4053bb5e8619e6dc0d0 (diff)
downloadmanaplus-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.cpp8
-rw-r--r--src/resources/loaders/atlasloader.h6
-rw-r--r--src/resources/map/map.cpp9
-rw-r--r--src/resources/map/map.h7
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;