spacebox/src/Timer.cpp

56 lines
728 B
C++

#include "Timer.hpp"
sb::Timer::operator bool() const
{
return timing;
}
void sb::Timer::toggle()
{
toggle(!*this);
}
void sb::Timer::toggle(bool state)
{
timing = state;
}
void sb::Timer::on()
{
toggle(ON);
}
void sb::Timer::off()
{
toggle(OFF);
}
void sb::Timer::reset()
{
_elapsed = 0;
}
float sb::Timer::elapsed() const
{
return _elapsed;
}
float sb::Timer::frame() const
{
return frame_duration;
}
void sb::Timer::update(float timestamp)
{
if (previous_is_recorded)
{
frame_duration = timestamp - timestamp_previous;
if (*this)
{
_elapsed += frame();
}
}
timestamp_previous = timestamp;
previous_is_recorded = true;
}