BsTimer.cpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #include "BsTimer.h"
  4. #include "BsBitwise.h"
  5. #include <chrono>
  6. using namespace std::chrono;
  7. namespace BansheeEngine
  8. {
  9. Timer::Timer()
  10. {
  11. reset();
  12. }
  13. void Timer::reset()
  14. {
  15. mStartTime = mHRClock.now();
  16. }
  17. UINT64 Timer::getMilliseconds() const
  18. {
  19. steady_clock::time_point newTime = mHRClock.now();
  20. nanoseconds newTimeNs = newTime.time_since_epoch();
  21. return duration_cast<milliseconds>(newTimeNs).count();
  22. }
  23. UINT64 Timer::getMicroseconds() const
  24. {
  25. steady_clock::time_point newTime = mHRClock.now();
  26. nanoseconds newTimeNs = newTime.time_since_epoch();
  27. return duration_cast<microseconds>(newTimeNs).count();
  28. }
  29. UINT64 Timer::getStartMs() const
  30. {
  31. nanoseconds startTimeNs = mStartTime.time_since_epoch();
  32. return duration_cast<milliseconds>(startTimeNs).count();
  33. }
  34. }