diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-06-14 23:10:32 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-06-14 23:10:32 +0300 |
commit | ffabda4c473711ffa8fdfe37c2a4460fe31347ac (patch) | |
tree | e6ca643efc58f718611481f44959528f129396a3 | |
parent | a95ddb41f2c17872e37cb7530816b4008789aeb7 (diff) | |
download | manaplus-ffabda4c473711ffa8fdfe37c2a4460fe31347ac.tar.gz manaplus-ffabda4c473711ffa8fdfe37c2a4460fe31347ac.tar.bz2 manaplus-ffabda4c473711ffa8fdfe37c2a4460fe31347ac.tar.xz manaplus-ffabda4c473711ffa8fdfe37c2a4460fe31347ac.zip |
improve a bit draw speed.
-rw-r--r-- | src/compoundsprite.cpp | 4 | ||||
-rw-r--r-- | src/compoundsprite.h | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/compoundsprite.cpp b/src/compoundsprite.cpp index a191afc59..074274ae1 100644 --- a/src/compoundsprite.cpp +++ b/src/compoundsprite.cpp @@ -60,6 +60,7 @@ CompoundSprite::CompoundSprite() : mDisableAdvBeingCaching(config.getBoolValue("disableAdvBeingCaching")), mDisableBeingCaching(config.getBoolValue("disableBeingCaching")), mSprites(), + mTempFramesCount(0), mNextRedrawTime(0) { mAlpha = 1.0f; @@ -217,7 +218,7 @@ unsigned int CompoundSprite::getCurrentFrame() const return 0; } -unsigned int CompoundSprite::getFrameCount() const +unsigned int CompoundSprite::getActualFrameCount() const { FOR_EACH (SpriteConstIterator, it, mSprites) { @@ -406,6 +407,7 @@ void CompoundSprite::setAlpha(float alpha) void CompoundSprite::updateImages() const { + mTempFramesCount = getActualFrameCount(); #ifdef USE_OPENGL if (imageHelper->useOpenGL()) return; diff --git a/src/compoundsprite.h b/src/compoundsprite.h index 6049cdeb9..20f5d371e 100644 --- a/src/compoundsprite.h +++ b/src/compoundsprite.h @@ -86,7 +86,10 @@ public: unsigned int getCurrentFrame() const override A_WARN_UNUSED; - unsigned int getFrameCount() const override A_WARN_UNUSED; + unsigned int getActualFrameCount() const A_WARN_UNUSED; + + unsigned int getFrameCount() const override A_WARN_UNUSED + { return mTempFramesCount; } size_t size() const A_WARN_UNUSED { return mSprites.size(); } @@ -155,6 +158,7 @@ private: bool mDisableAdvBeingCaching; bool mDisableBeingCaching; std::vector<Sprite*> mSprites; + mutable int mTempFramesCount; mutable int mNextRedrawTime; static bool mEnableDelay; }; |