76 lines
983 B
C++
76 lines
983 B
C++
#include "Timer.hpp"
|
|
|
|
sb::Timer::operator bool() const
|
|
{
|
|
return timing;
|
|
}
|
|
|
|
sb::Timer::operator float() const
|
|
{
|
|
return _elapsed;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
void sb::Timer::elapsed(float seconds)
|
|
{
|
|
_elapsed = seconds;
|
|
}
|
|
|
|
float sb::Timer::frame() const
|
|
{
|
|
return frame_duration;
|
|
}
|
|
|
|
float sb::Timer::stamp() const
|
|
{
|
|
return _stamp;
|
|
}
|
|
|
|
void sb::Timer::update(float stamp)
|
|
{
|
|
_stamp = stamp;
|
|
if (previous_is_recorded)
|
|
{
|
|
if (*this)
|
|
{
|
|
frame_duration = stamp - stamp_previous;
|
|
_elapsed += frame();
|
|
}
|
|
else
|
|
{
|
|
frame_duration = 0.0f;
|
|
}
|
|
}
|
|
stamp_previous = stamp;
|
|
previous_is_recorded = true;
|
|
}
|