Common: Add Timer::ResetIfNPassed()

This commit is contained in:
Stenzek 2023-09-12 23:43:00 +10:00
parent 9855a222e0
commit 1ba32585df
2 changed files with 37 additions and 0 deletions

View file

@ -288,6 +288,39 @@ double Timer::GetTimeNanosecondsAndReset()
return ret;
}
bool Timer::ResetIfSecondsPassed(double s)
{
const Value value = GetCurrentValue();
const double ret = ConvertValueToSeconds(value - m_tvStartValue);
if (ret < s)
return false;
m_tvStartValue = value;
return true;
}
bool Timer::ResetIfMillisecondsPassed(double s)
{
const Value value = GetCurrentValue();
const double ret = ConvertValueToMilliseconds(value - m_tvStartValue);
if (ret < s)
return false;
m_tvStartValue = value;
return true;
}
bool Timer::ResetIfNanosecondsPassed(double s)
{
const Value value = GetCurrentValue();
const double ret = ConvertValueToNanoseconds(value - m_tvStartValue);
if (ret < s)
return false;
m_tvStartValue = value;
return true;
}
void Timer::BusyWait(std::uint64_t ns)
{
const Value start = GetCurrentValue();

View file

@ -40,6 +40,10 @@ public:
double GetTimeMillisecondsAndReset();
double GetTimeNanosecondsAndReset();
bool ResetIfSecondsPassed(double s);
bool ResetIfMillisecondsPassed(double s);
bool ResetIfNanosecondsPassed(double s);
private:
Value m_tvStartValue;
};