Initial commit
This commit is contained in:
commit
edfc5298e1
252 changed files with 93965 additions and 0 deletions
55
source/Game/FPSCounter.cpp
Normal file
55
source/Game/FPSCounter.cpp
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
#include <Spectre/Game/FPSCounter.h>
|
||||
#include <Spectre/System/System.h>
|
||||
|
||||
FPSCounter::FPSCounter() :
|
||||
m_fps (60.0f),
|
||||
m_updateRate (2000)
|
||||
{
|
||||
reset();
|
||||
}
|
||||
|
||||
void FPSCounter::addFrame()
|
||||
{
|
||||
m_count++;
|
||||
}
|
||||
|
||||
float FPSCounter::getFPS() const
|
||||
{
|
||||
return m_fps;
|
||||
}
|
||||
|
||||
void FPSCounter::setUpdateRate(unsigned int ups)
|
||||
{
|
||||
// Clamp to 1.
|
||||
if (ups < 1) {
|
||||
ups = 1;
|
||||
}
|
||||
|
||||
m_updateRate = ups * 1000;
|
||||
|
||||
// Must reset the counter.
|
||||
reset();
|
||||
}
|
||||
|
||||
bool FPSCounter::update()
|
||||
{
|
||||
unsigned int current = System::getMilliseconds();
|
||||
unsigned int elapsed = current - m_time;
|
||||
|
||||
if (elapsed >= m_updateRate) {
|
||||
float fraction = m_count / ((float) elapsed);
|
||||
m_fps = fraction * 1000.f;
|
||||
|
||||
m_time = current;
|
||||
m_count = 0;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void FPSCounter::reset()
|
||||
{
|
||||
m_time = System::getMilliseconds();
|
||||
m_count = 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue