#ifndef CLOCK_H #define CLOCK_H #include "gaming-core/utils/Types.h" #include "gaming-core/utils/Array.h" struct Clock final { typedef int64 Nanos; private: static constexpr int BITS = 7; static constexpr int LENGTH = 1 << BITS; Nanos last; int index; Nanos sum; Array time; public: Clock(); Nanos update(); float getUpdatesPerSecond() const; void wait(Nanos nanos) const; private: Nanos getNanos() const; }; #endif