Serious-Engine/Sources/Engine/Base/Timer.inl

58 lines
1.7 KiB
Plaintext
Raw Normal View History

2016-03-11 14:57:17 +01:00
#ifndef SE_INCL_TIMER_INL
#define SE_INCL_TIMER_INL
#ifdef PRAGMA_ONCE
#pragma once
#endif
/* Constructor from seconds. */
inline CTimerValue::CTimerValue(double fSeconds)
{
tv_llValue = __int64(fSeconds*_pTimer->tm_llPerformanceCounterFrequency);
}
/* Clear timer value (set it to zero). */
inline void CTimerValue::Clear(void)
{
tv_llValue = 0;
}
/* Addition. */
inline CTimerValue &CTimerValue::operator+=(const CTimerValue &tvOther) {
tv_llValue+=tvOther.tv_llValue;
return *this;
};
inline CTimerValue CTimerValue::operator+(const CTimerValue &tvOther) const {
return CTimerValue(*this)+=tvOther;
};
/* Substraction. */
inline CTimerValue &CTimerValue::operator-=(const CTimerValue &tvOther) {
tv_llValue-=tvOther.tv_llValue;
return *this;
};
inline CTimerValue CTimerValue::operator-(const CTimerValue &tvOther) const {
return CTimerValue(*this)-=tvOther;
};
/* Comparisons. */
inline BOOL CTimerValue::operator<(const CTimerValue &tvOther) const {
return tv_llValue<tvOther.tv_llValue;
}
inline BOOL CTimerValue::operator>(const CTimerValue &tvOther) const {
return tv_llValue>tvOther.tv_llValue;
}
inline BOOL CTimerValue::operator<=(const CTimerValue &tvOther) const {
return tv_llValue<=tvOther.tv_llValue;
}
inline BOOL CTimerValue::operator>=(const CTimerValue &tvOther) const {
return tv_llValue>=tvOther.tv_llValue;
}
/* Get the timer value in seconds. - use for time spans only! */
inline double CTimerValue::GetSeconds(void) {
return ((double)tv_llValue)/_pTimer->tm_llPerformanceCounterFrequency;
};
/* Get the timer value in milliseconds as integral value. */
inline __int64 CTimerValue::GetMilliseconds(void) {
return tv_llValue/(_pTimer->tm_llPerformanceCounterFrequency/1000);
};
#endif /* include-once check. */