#include #include #include 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; } } };