From c0556f76fc5c8271c2eaa7ca91ad1c92c691d8bc Mon Sep 17 00:00:00 2001 From: Mel Date: Wed, 12 Jul 2023 22:57:53 +0200 Subject: Δt calculation and usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Time.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/Time.cpp (limited to 'src/Time.cpp') diff --git a/src/Time.cpp b/src/Time.cpp new file mode 100644 index 0000000..7f59250 --- /dev/null +++ b/src/Time.cpp @@ -0,0 +1,33 @@ +#include "Time.hpp" +#include +#include + +namespace MC { + +void Time::start_frame() { + m_current_frame_start = now(); +} + +void Time::end_frame() { + auto frame_end = now(); + m_delta = (frame_end - m_current_frame_start) / 1000.0; + m_delta = std::clamp(m_delta, delta_min, delta_max); + + m_total_frames++; +} + +U64 Time::total_frames() const { + return m_total_frames; +} + +Real Time::delta() const { + return m_delta; +} + +Time::Timestamp Time::now() { + auto time = std::chrono::system_clock::now().time_since_epoch(); + auto ms = std::chrono::duration_cast(time); + return ms.count(); +} + +} -- cgit 1.4.1