diff --git a/include/td/misc/Time.h b/include/td/misc/Time.h new file mode 100644 index 0000000..582b55b --- /dev/null +++ b/include/td/misc/Time.h @@ -0,0 +1,22 @@ +#pragma once + +#include + +namespace td { + +class Timer { + private: + std::chrono::time_point m_LastTime; + + public: + Timer() : m_LastTime(std::chrono::system_clock::now()) {} + + float GetDelta() { + auto timeElapsed = std::chrono::system_clock::now() - m_LastTime; + float timeSeconds = std::chrono::duration(timeElapsed).count(); + m_LastTime = std::chrono::system_clock::now(); + return timeSeconds; + } +}; + +} // namespace td diff --git a/src/main.cpp b/src/main.cpp index ee8f054..4bd56a2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,13 +1,6 @@ #include #include - -float GetDelta() { - static std::chrono::time_point m_LastTime = std::chrono::system_clock::now(); - auto timeElapsed = std::chrono::system_clock::now() - m_LastTime; - float timeSeconds = std::chrono::duration(timeElapsed).count(); - m_LastTime = std::chrono::system_clock::now(); - return timeSeconds; -} +#include int main(int argc, char** argv) { // init GL context @@ -15,10 +8,10 @@ int main(int argc, char** argv) { display.ChangeState(); + td::Timer timer; while (!display.IsCloseRequested()) { display.PollEvents(); - float delta = GetDelta(); - display.Update(delta); + display.Update(timer.GetDelta()); } return 0;