unsigned long Timer::ElapsedTime() { if (m_stuckAtZero) return 0; else if (m_started) return ConvertTo(GetCurrentTimerValue() - m_start, m_timerUnit); else { StartTimer(); return 0; } }
double TimerBase::ElapsedTimeAsDouble() { if (m_stuckAtZero) return 0; else if (m_started) return ConvertTo(GetCurrentTimerValue() - m_start, m_timerUnit); else { StartTimer(); return 0; } }
double TimerBase::ElapsedTimeAsDouble() { if (m_stuckAtZero) return 0; if (m_started) { TimerWord now = GetCurrentTimerValue(); if (m_last < now) // protect against OS bugs where time goes backwards m_last = now; return ConvertTo(m_last - m_start, m_timerUnit); } StartTimer(); return 0; }
void TimerBase::StartTimer() { m_last = m_start = GetCurrentTimerValue(); m_started = true; }
void Timer::StartTimer() { m_start = GetCurrentTimerValue(); m_started = true; }