You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.2 KiB
75 lines
1.2 KiB
#include <QDebug>
|
|
|
|
#include "fpscounter.h"
|
|
|
|
FpsCounter::FpsCounter()
|
|
{
|
|
|
|
}
|
|
|
|
FpsCounter::~FpsCounter()
|
|
{
|
|
|
|
}
|
|
|
|
void FpsCounter::fpsCounterInit()
|
|
{
|
|
m_started = false;
|
|
// no need to initialize the other fields, they are meaningful only when
|
|
// started is true
|
|
}
|
|
|
|
void FpsCounter::fpsCounterStart()
|
|
{
|
|
m_started = true;
|
|
m_timeCounter.start();
|
|
m_rendered = 0;
|
|
#ifdef SKIP_FRAMES
|
|
m_skipped = 0;
|
|
#endif
|
|
}
|
|
|
|
void FpsCounter::fpsCounterStop()
|
|
{
|
|
m_started = false;
|
|
}
|
|
|
|
void FpsCounter::fpsCounterAddRenderedFrame()
|
|
{
|
|
checkExpired();
|
|
m_rendered++;
|
|
}
|
|
|
|
void FpsCounter::checkExpired()
|
|
{
|
|
if (m_timeCounter.elapsed() >= 1000) {
|
|
displayFps();
|
|
m_timeCounter.restart();
|
|
m_rendered = 0;
|
|
#ifdef SKIP_FRAMES
|
|
m_skipped = 0;
|
|
#endif
|
|
}
|
|
}
|
|
|
|
void FpsCounter::displayFps()
|
|
{
|
|
#ifdef SKIP_FRAMES
|
|
if (m_skipped) {
|
|
//qInfo << "%d fps (+%d frames skipped)", m_rendered, m_skipped);
|
|
} else {
|
|
#endif
|
|
//qInfo m_rendered << "fps";
|
|
#ifdef SKIP_FRAMES
|
|
}
|
|
#endif
|
|
}
|
|
|
|
#ifdef SKIP_FRAMES
|
|
void FpsCounter::fpsCounterAddSkippedFrame()
|
|
{
|
|
checkExpired();
|
|
m_skipped++;
|
|
}
|
|
#endif
|