galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
Time.cpp
Go to the documentation of this file.
1
7
8#include <SDL3/SDL_timer.h>
9
10#include "Time.hpp"
11
12namespace galaxy
13{
14 namespace time
15 {
16 static double s_delta_time = 0.0;
17
18 auto now() noexcept -> std::chrono::local_time<std::chrono::system_clock::duration>
19 {
20 return std::chrono::zoned_time {std::chrono::current_zone(), std::chrono::system_clock::now()}.get_local_time();
21 }
22
23 std::uint64_t time_since_epoch() noexcept
24 {
25 const auto duration = now().time_since_epoch();
26 return std::chrono::duration_cast<std::chrono::nanoseconds>(duration).count();
27 }
28
29 void dt(const double dt) noexcept
30 {
32 }
33
34 double dt() noexcept
35 {
36 return s_delta_time;
37 }
38
39 void delay(const int milli) noexcept
40 {
41 SDL_DelayPrecise(SDL_MS_TO_NS(milli));
42 }
43
44 std::uint64_t ms_to_ns(const std::uint64_t ms) noexcept
45 {
46 return SDL_MS_TO_NS(ms);
47 }
48
49 std::uint64_t ns_to_ms(const std::uint64_t ns) noexcept
50 {
51 return SDL_NS_TO_MS(ns);
52 }
53
54 std::uint64_t ns_to_s(const std::uint64_t ns) noexcept
55 {
56 return SDL_NS_TO_SECONDS(ns);
57 }
58
59 std::uint64_t ns_to_us(const std::uint64_t ns) noexcept
60 {
61 return SDL_NS_TO_US(ns);
62 }
63
64 std::uint64_t s_to_ns(const std::uint64_t s) noexcept
65 {
66 return SDL_SECONDS_TO_NS(s);
67 }
68
69 std::uint64_t us_to_ns(const std::uint64_t us) noexcept
70 {
71 return SDL_US_TO_NS(us);
72 }
73 } // namespace time
74} // namespace galaxy
std::uint64_t ms_to_ns(const std::uint64_t ms) noexcept
Converts milliseconds to nanoseconds.
Definition Time.cpp:44
void delay(const int milli) noexcept
Delay the current thread for x time.
Definition Time.cpp:39
std::uint64_t s_to_ns(const std::uint64_t s) noexcept
Converts seconds to nanoseconds.
Definition Time.cpp:64
std::uint64_t us_to_ns(const std::uint64_t us) noexcept
Converts microseconds to nanoseconds.
Definition Time.cpp:69
std::uint64_t ns_to_ms(const std::uint64_t ns) noexcept
Converts nanoseconds to milliseconds.
Definition Time.cpp:49
std::uint64_t ns_to_us(const std::uint64_t ns) noexcept
Converts nanoseconds to microseconds.
Definition Time.cpp:59
static double s_delta_time
Definition Time.cpp:16
void dt(const double dt) noexcept
Set galaxy delta time.
Definition Time.cpp:29
auto now() noexcept -> std::chrono::local_time< std::chrono::system_clock::duration >
Current local time.
Definition Time.cpp:18
std::uint64_t ns_to_s(const std::uint64_t ns) noexcept
Converts nanoseconds to seconds.
Definition Time.cpp:54
std::uint64_t time_since_epoch() noexcept
Time since epoch.
Definition Time.cpp:23
Application.hpp galaxy.
STL namespace.