23#define KTECH_DEFINITION
24#include "../../ktech.hpp"
25#undef KTECH_DEFINITION
58 bool m_changedThisTick =
false;
60 std::chrono::steady_clock::time_point m_currentTickStart;
61 std::vector<Invocation*> m_invocations;
63 inline Time(
Engine& engine,
unsigned long ticksPerSecondLimit)
64 : engine(engine),
tpsLimit(ticksPerSecondLimit) {}
66 [[nodiscard]]
auto TimeToMicroseconds(
long p_time,
Measurement p_measurement)
const -> long;
67 void RegisterCallback(Invocation* invocation);
68 void DeregisterCallback(Invocation* invocation);
70 friend class Invocation;
Complete engine containing all engine components.
Definition engine.hpp:41
Engine component responsible for outputting rendered images.
Definition output.hpp:42
Engine component responsible for game loop timing.
Definition time.hpp:35
void WaitUntilNextTick()
Sleeps and returns when the next tick should start.
Definition time.cpp:111
unsigned long tpsLimit
Max ticks allowed to occur in a second. You set this value in Engine::Engine(), and you can change it...
Definition time.hpp:48
float tpsPotential
Ticks per second if it wasn't limited by Time::tpsLimit.
Definition time.hpp:50
Measurement
Time measurement.
Definition time.hpp:39
float tps
Actual ticks per second. Corresponds to Time::deltaTime.
Definition time.hpp:49
void CallInvocations()
Call callback functions of finished Invocations.
Definition time.cpp:51
long deltaTime
Duration of the last tick, in microseconds.
Definition time.hpp:51
unsigned long ticksCounter
Total ticks since game started.
Definition time.hpp:52