Files
Demo/PerformanceAnalyser.hpp

41 lines
883 B
C++

#include <GL/glew.h>
#include <cmath>
#include <iostream>
class PerformanceAnalyser {
private:
double lastFrameTime = 0;
int frameCount = 0;
double timeAcc = 0;
double lastFps = 0;
public:
PerformanceAnalyser(int framesToAcc = 10, bool autoPrint = true)
: framesToAcc(framesToAcc), autoPrint(autoPrint) {};
int framesToAcc;
bool autoPrint;
int getFPS() { return lastFps; }
void update(float time) {
timeAcc += (time - lastFrameTime);
lastFrameTime = time;
frameCount++;
if (frameCount == framesToAcc) {
lastFps = double(framesToAcc) / timeAcc;
if (autoPrint) {
std::cout << "Fps: " << std::round(lastFps * 10.0) * 0.1 << "\n"
<< std::flush;
}
frameCount = 0;
timeAcc = 0;
}
}
};