CmTime.cpp 758 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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. mLastFrameTime = currentFrameTime;
  25. mCurrentFrame++;
  26. }
  27. Time& gTime()
  28. {
  29. return Time::instance();
  30. }
  31. }