From 3f2984d27b3ca03bac760b68db64db84cd75da49 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 21 Jun 2012 23:25:05 +0300 Subject: Add option to enable/disable software mode compoundsprite update delay. --- src/compoundsprite.cpp | 11 +++++++---- src/compoundsprite.h | 4 ++++ src/defaults.cpp | 1 + src/game.cpp | 3 +++ src/gui/setup_perfomance.cpp | 3 +++ 5 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/compoundsprite.cpp b/src/compoundsprite.cpp index 09ac4b390..c6243c00c 100644 --- a/src/compoundsprite.cpp +++ b/src/compoundsprite.cpp @@ -48,6 +48,7 @@ static const unsigned cache_max_size = 10; static const unsigned cache_clean_part = 3; +bool CompoundSprite::mEnableDelay = true; CompoundSprite::CompoundSprite() : mCacheItem(nullptr), @@ -442,10 +443,12 @@ void CompoundSprite::updateImages() const return; #endif - if (get_elapsed_time1(mNextRedrawTime) < 10) - return; - - mNextRedrawTime = tick_time; + if (mEnableDelay) + { + if (get_elapsed_time1(mNextRedrawTime) < 10) + return; + mNextRedrawTime = tick_time; + } mNeedsRedraw = false; if (!mDisableBeingCaching) diff --git a/src/compoundsprite.h b/src/compoundsprite.h index aa90816c5..0490be8d8 100644 --- a/src/compoundsprite.h +++ b/src/compoundsprite.h @@ -121,6 +121,9 @@ public: bool updateNumber(unsigned num); + static void setEnableDelay(bool b) + { mEnableDelay = b; } + private: void redraw() const; @@ -146,6 +149,7 @@ private: bool mDisableBeingCaching; std::vector mSprites; mutable int mNextRedrawTime; + static bool mEnableDelay; }; #endif // COMPOUNDSPRITE_H diff --git a/src/defaults.cpp b/src/defaults.cpp index 30cbc8a57..3aeca07a6 100644 --- a/src/defaults.cpp +++ b/src/defaults.cpp @@ -260,6 +260,7 @@ DefaultsData* getConfigDefaults() AddDEF(configData, "videodetected", false); AddDEF(configData, "hideErased", false); AddDEF(configData, "enableDelayedAnimations", true); + AddDEF(configData, "enableCompoundSpriteDelay", true); return configData; } diff --git a/src/game.cpp b/src/game.cpp index 253f9fb67..4ae5607a0 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -390,6 +390,9 @@ Game::Game(): AnimatedSprite::setEnableCache(mainGraphics->getOpenGL() && config.getBoolValue("enableDelayedAnimations")); + CompoundSprite::setEnableDelay( + config.getBoolValue("enableCompoundSpriteDelay")); + createGuiWindows(); windowMenu = new WindowMenu; diff --git a/src/gui/setup_perfomance.cpp b/src/gui/setup_perfomance.cpp index e6cd75436..1a0c892a9 100644 --- a/src/gui/setup_perfomance.cpp +++ b/src/gui/setup_perfomance.cpp @@ -66,6 +66,9 @@ Setup_Perfomance::Setup_Perfomance() new SetupItemCheckBox(_("Enable map reduce (Software)"), "", "enableMapReduce", this, "enableMapReduceEvent"); + new SetupItemCheckBox(_("Enable compound sprite delay (Software)"), "", + "enableCompoundSpriteDelay", this, "enableCompoundSpriteDelayEvent"); + new SetupItemCheckBox(_("Enable delayed images load (OpenGL)"), "", "enableDelayedAnimations", this, "enableDelayedAnimationsEvent"); -- cgit v1.2.3-60-g2f50