Clock.cpp 565 B

12345678910111213141516171819202122232425
  1. #include "client/utils/Clock.h"
  2. #include "client/rendering/wrapper/GLFWWrapper.h"
  3. #include <iostream>
  4. Clock::Clock() : last(GLFWWrapper::getTimeNanos()), index(0), sum(0), time(0) {
  5. }
  6. u64 Clock::update() {
  7. index = (index + 1) & (length - 1);
  8. u64 current = GLFWWrapper::getTimeNanos();
  9. sum -= time[index];
  10. time[index] = current - last;
  11. sum += time[index];
  12. last = current;
  13. return time[index];
  14. }
  15. u64 Clock::getLength() const {
  16. return length;
  17. }
  18. float Clock::getUpdatesPerSecond() const {
  19. return length * (1000000000.0f / sum);
  20. }