From ec6bfe238af2f846a5948e95b1d725cf9abe9afb Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 26 Apr 2016 01:24:16 +0300 Subject: Add memory count functions into Action and Animation. --- src/resources/animation/animation.cpp | 12 ++++++++++++ src/resources/animation/animation.h | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/resources/animation') 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 @@ -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. */ -- cgit v1.2.3-70-g09d2