diff --git a/WickedEngine/MainComponent.cpp b/WickedEngine/MainComponent.cpp index 2d7ff19bd..6a45c04e0 100644 --- a/WickedEngine/MainComponent.cpp +++ b/WickedEngine/MainComponent.cpp @@ -34,11 +34,28 @@ void MainComponent::activateComponent(RenderableComponent* component) void MainComponent::run() { - FRAMESKIP_START(getFrameSkip(), 10) - Update(); + static Timer timer = Timer(); + static const double dt = 1.0 / 60.0; + static double accumulator = 0.0; - FRAMESKIP_END + accumulator += timer.elapsed() / 1000.0; + if (accumulator>10) //application probably lost control + accumulator = 0; + timer.record(); + + + while (accumulator >= dt) + { + + Update(); + + accumulator -= dt; + + if (!getFrameSkip()) + break; + + } Render(); diff --git a/WickedEngine/WickedEngine.vcxproj b/WickedEngine/WickedEngine.vcxproj index ec2917b3c..254d37bda 100644 --- a/WickedEngine/WickedEngine.vcxproj +++ b/WickedEngine/WickedEngine.vcxproj @@ -367,7 +367,6 @@ - diff --git a/WickedEngine/WickedEngine.vcxproj.filters b/WickedEngine/WickedEngine.vcxproj.filters index 5a9bbac9c..9d1d497f9 100644 --- a/WickedEngine/WickedEngine.vcxproj.filters +++ b/WickedEngine/WickedEngine.vcxproj.filters @@ -1429,9 +1429,6 @@ ComponentTemplates - - Header Files - ComponentTemplates diff --git a/WickedEngine/frameskipDEF.h b/WickedEngine/frameskipDEF.h deleted file mode 100644 index 804d5c59b..000000000 --- a/WickedEngine/frameskipDEF.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef DEFINED_FRAMESKIP -#define DEFINED_FRAMESKIP - -#include "wiTimer.h" - -//MUST CALL FRAMESKIP_END ! -#define FRAMESKIP_START(enabled,idlethreshold) const bool frameskip = enabled; static Timer timer = Timer(); static const double dt = 1.0 / 60.0; static double accumulator = 0.0; accumulator += timer.elapsed() / 1000.0;if (accumulator>idlethreshold)accumulator = 0;timer.record();while (accumulator >= dt){ -#define FRAMESKIP_END accumulator -= dt;if (!frameskip) break; } - -#endif \ No newline at end of file