blob: 22383b21a68a4803f09bb8b4ae55664a8c1a7e60 (
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
|
#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;
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.01;
double elapsedTime;
double elapsedFixedTime;
double time;
uint64_t lastFrameTime;
};
|