| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include "anki/util/HighRezTimer.h"
- #include "anki/util/Assert.h"
- #include <boost/date_time/posix_time/posix_time.hpp>
- namespace anki {
- //==============================================================================
- HighRezTimer::HighRezTimer()
- : startTime(0.0), stopTime(0.0)
- {}
- //==============================================================================
- void HighRezTimer::start()
- {
- ANKI_ASSERT(startTime == 0);
- ANKI_ASSERT(stopTime == 0);
- startTime = getCrntTime();
- stopTime = 0.0;
- }
- //==============================================================================
- void HighRezTimer::stop()
- {
- ANKI_ASSERT(startTime != 0.0);
- ANKI_ASSERT(stopTime == 0.0);
- stopTime = getCrntTime();
- }
- //==============================================================================
- HighRezTimer::Scalar HighRezTimer::getElapsedTime() const
- {
- if(stopTime == 0)
- {
- return getCrntTime() - startTime;
- }
- else
- {
- return stopTime - startTime;
- }
- }
- //==============================================================================
- HighRezTimer::Scalar HighRezTimer::getCrntTime()
- {
- using namespace boost::posix_time;
- ulong ms = ptime(microsec_clock::local_time()).time_of_day().
- total_milliseconds();
- return Scalar(ms) / 1000.0;
- }
- } // end namespace
|