CmTime.cpp 882 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "CmTime.h"
  2. #include "CmTimer.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 = cm_new<Timer>();
  10. mAppStartTime = (UINT64)mTimer->getStartMs();
  11. }
  12. Time::~Time()
  13. {
  14. cm_delete(mTimer);
  15. }
  16. void Time::update()
  17. {
  18. unsigned long currentFrameTime = mTimer->getMicroseconds();
  19. mFrameDelta = (float)((currentFrameTime - mLastFrameTime) * MICROSEC_TO_SEC);
  20. mTimeSinceStart = (float)(currentFrameTime * MICROSEC_TO_SEC);
  21. mTimeSinceStartMs = (UINT64)(currentFrameTime / 1000);
  22. mLastFrameTime = currentFrameTime;
  23. mCurrentFrame++;
  24. }
  25. UINT64 Time::getTimePrecise() const
  26. {
  27. return mTimer->getMicroseconds();
  28. }
  29. Time& gTime()
  30. {
  31. return Time::instance();
  32. }
  33. }