Clock.cppm 498 B

1234567891011121314151617181920212223242526
  1. module;
  2. export module Core.Clock;
  3. import Core.Array;
  4. import Core.Types;
  5. export namespace Core {
  6. struct Clock final {
  7. size_t index;
  8. i64 last;
  9. i64 sum;
  10. Array<i64, 1 << 7> time;
  11. public:
  12. Clock();
  13. // the first invocation will always return 0 nanos
  14. i64 update();
  15. float getUpdatesPerSecond() const;
  16. static bool sleepNanos(i64 nanos);
  17. static bool sleepMillis(i64 millis);
  18. static i64 getNanos();
  19. };
  20. }