TDME2  1.9.200
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Timing.cpp
Go to the documentation of this file.
1 #include <tdme/engine/Timing.h>
2 
3 #include <array>
4 
5 #include <tdme/tdme.h>
6 #include <tdme/utilities/Time.h>
7 
8 using std::array;
9 
12 
13 Timing::Timing()
14 {
15  frame = 0;
16  startTime = Time::getCurrentMillis();
19  avarageFPS = 60.0f;
24  for (auto i = 0; i < avarageFPSSequence.size(); i++) avarageFPSSequence[i] = 60.0f;
25 }
26 
27 constexpr int64_t Timing::UNDEFINED;
28 
30 {
31  frame++;
33  currentFrameAtTime = Time::getCurrentMillis();
34  fps = 0;
35  if (lastFrameAtTime != UNDEFINED) {
36  fps = 1000.0f / ((currentFrameAtTime - lastFrameAtTime));
37  }
38  fps++;
39 
40  // avarage fps
43  avarageFPS = 0.0f;
44  for (auto i = 0; i < avarageFPSSequence.size(); i++) avarageFPS+= avarageFPSSequence[(avarageFPSIndex - i) % avarageFPSSequence.size()];
46 }
Timing class.
Definition: Timing.h:16
void updateTiming()
Updates timing.
Definition: Timing.cpp:29
array< float, 60 *3 > avarageFPSSequence
Definition: Timing.h:29
static constexpr int64_t UNDEFINED
Definition: Timing.h:20
int64_t currentFrameAtTime
Definition: Timing.h:26
int64_t startTime
Definition: Timing.h:24
int64_t lastFrameAtTime
Definition: Timing.h:25
Time utility class.
Definition: Time.h:20