CmTime.cpp 816 B

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