diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-04-26 01:24:16 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-04-26 01:24:16 +0300 |
commit | ec6bfe238af2f846a5948e95b1d725cf9abe9afb (patch) | |
tree | 0be19bc199cd66bd6949befe86c844dbad62de3b /src/resources/animation | |
parent | 81dca73da50d8f421a74993de8cd5a9d61ef1e2a (diff) | |
download | manaplus-ec6bfe238af2f846a5948e95b1d725cf9abe9afb.tar.gz manaplus-ec6bfe238af2f846a5948e95b1d725cf9abe9afb.tar.bz2 manaplus-ec6bfe238af2f846a5948e95b1d725cf9abe9afb.tar.xz manaplus-ec6bfe238af2f846a5948e95b1d725cf9abe9afb.zip |
Add memory count functions into Action and Animation.
Diffstat (limited to 'src/resources/animation')
-rw-r--r-- | src/resources/animation/animation.cpp | 12 | ||||
-rw-r--r-- | src/resources/animation/animation.h | 5 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/resources/animation/animation.cpp b/src/resources/animation/animation.cpp index ac7e4a146..e52b55737 100644 --- a/src/resources/animation/animation.cpp +++ b/src/resources/animation/animation.cpp @@ -86,3 +86,15 @@ void Animation::setLastFrameDelay(const int delay) noexcept } } } + +int Animation::calcMemoryLocal() +{ + int sz = sizeof(Animation); + FOR_EACH (FramesIter, it, mFrames) + { + Frame &frame = *it; + sz += sizeof(Frame) + + frame.nextAction.capacity(); + } + return sz; +} diff --git a/src/resources/animation/animation.h b/src/resources/animation/animation.h index 765e687d4..dc44a3f0d 100644 --- a/src/resources/animation/animation.h +++ b/src/resources/animation/animation.h @@ -24,6 +24,7 @@ #define RESOURCES_ANIMATION_ANIMATION_H #include "resources/frame.h" +#include "resources/memorycounter.h" #include <vector> @@ -35,7 +36,7 @@ class Image; * An animation consists of several frames, each with their own delay and * offset. */ -class Animation final +class Animation final : public MemoryCounter { friend class AnimatedSprite; friend class ParticleEmitter; @@ -82,6 +83,8 @@ class Animation final { return mFrames; } #endif + int calcMemoryLocal() override final; + /** * Determines whether the given animation frame is a terminator. */ |