BsTime.cpp 887 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "BsTime.h"
  2. #include "BsTimer.h"
  3. namespace BansheeEngine
  4. {
  5. const double Time::MICROSEC_TO_SEC = 1.0/1000000.0;
  6. Time::Time()
  7. :mAppStartTime(0), mLastFrameTime(0), mFrameDelta(0.0f), mTimeSinceStart(0.0f), mCurrentFrame(0)
  8. {
  9. mTimer = bs_new<Timer>();
  10. mAppStartTime = (UINT64)mTimer->getStartMs();
  11. mLastFrameTime = mTimer->getMicroseconds();
  12. }
  13. Time::~Time()
  14. {
  15. bs_delete(mTimer);
  16. }
  17. void Time::update()
  18. {
  19. unsigned long currentFrameTime = mTimer->getMicroseconds();
  20. mFrameDelta = (float)((currentFrameTime - mLastFrameTime) * MICROSEC_TO_SEC);
  21. mTimeSinceStart = (float)(currentFrameTime * MICROSEC_TO_SEC);
  22. mTimeSinceStartMs = (UINT64)(currentFrameTime / 1000);
  23. mLastFrameTime = currentFrameTime;
  24. mCurrentFrame++;
  25. }
  26. UINT64 Time::getTimePrecise() const
  27. {
  28. return mTimer->getMicroseconds();
  29. }
  30. Time& gTime()
  31. {
  32. return Time::instance();
  33. }
  34. }