diff options
Diffstat (limited to 'src/Time.cpp')
| -rw-r--r-- | src/Time.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
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 <chrono> +#include <algorithm> + +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<std::chrono::milliseconds>(time); + return ms.count(); +} + +} |
