jubilant-funicular
src
FPSLimiter.cpp
1
#include <SDL2/SDL.h>
2
#include <cmath>
3
4
#include "nta/FPSLimiter.h"
5
6
namespace
nta
{
7
FPSLimiter::~FPSLimiter() {
8
m_maxFPS
=
m_fps
= 0;
9
}
10
void
FPSLimiter::setMaxFPS
(
float
maxFPS) {
11
m_maxFPS
= maxFPS;
12
}
13
float
FPSLimiter::getFPS
()
const
{
14
return
m_fps
;
15
}
16
long
double
FPSLimiter::end
() {
17
long
double
frametime =
Timer::end
()/pow(10.,6);
//elapsed time in milliseconds
18
if
(frametime < 1000./
m_maxFPS
) {
19
SDL_Delay((1000./
m_maxFPS
) - frametime);
20
}
21
m_fps
= 1./(
Timer::end
()/pow(10.,9));
22
return
Timer::end
();
23
}
24
}
nta::Timer::end
virtual long double end() const
return time since beginning of timer in nanoseconds
Definition:
Timer.cpp:11
nta
Definition:
Animation2D.h:6
nta::FPSLimiter::getFPS
float getFPS() const
gets most recently calculated fps
Definition:
FPSLimiter.cpp:13
nta::FPSLimiter::end
long double end()
ends fps calculations, delaying if necessary to cap fps
Definition:
FPSLimiter.cpp:16
nta::FPSLimiter::m_maxFPS
float m_maxFPS
maximum allowed fps
Definition:
FPSLimiter.h:13
nta::FPSLimiter::setMaxFPS
void setMaxFPS(float maxFPS)
sets maximum allowed fps
Definition:
FPSLimiter.cpp:10
nta::FPSLimiter::m_fps
float m_fps
most recently calculated fps
Definition:
FPSLimiter.h:11
Generated by
1.8.17