12 RageTimer(std::chrono::steady_clock::time_point tm) : tm(tm) {};
15 tm += std::chrono::microseconds(microseconds);
17 RageTimer(
unsigned secs,
unsigned microseconds) : tm()
19 auto seconds = std::chrono::seconds(secs);
20 auto microsecs = std::chrono::microseconds(microseconds);
21 tm += seconds + microsecs;
25 [[nodiscard]]
auto Ago()
const -> float;
26 void Touch() { tm = std::chrono::steady_clock::now(); }
27 [[nodiscard]]
auto IsZero()
const ->
bool
29 return tm == std::chrono::steady_clock::time_point();
31 void SetZero() { tm = std::chrono::steady_clock::time_point(); }
34 auto GetDeltaTime() -> float;
36 [[nodiscard]]
auto PeekDeltaTime()
const ->
float {
return Ago(); }
38 static auto GetTimeSinceStart()
41 static auto GetTimeSinceStart64() -> double;
45 auto operator+(
float tm)
const ->
RageTimer;
46 auto operator-(
float tm)
const ->
RageTimer {
return *
this + -tm; }
47 void operator+=(
float tm) { *
this = *
this + tm; }
48 void operator-=(
float tm) { *
this = *
this + -tm; }
52 auto operator-(
const RageTimer& rhs)
const -> float;
54 auto operator<(
const RageTimer& rhs)
const -> bool;
55 std::chrono::steady_clock::time_point tm;