blob: 3c385945f6eefcb70dec9c5c372681ab7ce632ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#pragma once
#include <SDL2/SDL.h>
class LoopTimer {
public:
static LoopTimer & getInstance();
void start();
void update();
double getDeltaTime() const;
int getCurrentTime() const;
void advanceFixedUpdate();
double getFixedDeltaTime() const;
void setFPS(int FPS);
int getFPS() const;
double getGameScale();
void setGameScale(double);
void enforceFrameRate();
double getLag() const;
private:
LoopTimer();
int FPS = 50;
double gameScale = 1;
double maximumDeltaTime = 0.25;
double deltaTime;
double frameTargetTime = FPS / 1000;
double fixedDeltaTime = 0.02;
double elapsedTime;
double elapsedFixedTime;
double time;
uint64_t lastFrameTime;
};
|