// Copyright 2022 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include "VideoCommon/PerformanceTracker.h" class PerformanceMetrics { public: PerformanceMetrics() = default; ~PerformanceMetrics() = default; PerformanceMetrics(const PerformanceMetrics&) = delete; PerformanceMetrics& operator=(const PerformanceMetrics&) = delete; PerformanceMetrics(PerformanceMetrics&&) = delete; PerformanceMetrics& operator=(PerformanceMetrics&&) = delete; public: // Count Functions void Reset(); void CountFrame(); void CountVBlank(); public: // Getter Functions double GetFPS() const; double GetVPS() const; double GetSpeed() const; double GetLastSpeedDenominator() const; public: // ImGui Functions void DrawImGuiStats(const float backbuffer_scale) const; private: // Member Variables PerformanceTracker m_fps_counter{"render_times.txt"}; PerformanceTracker m_vps_counter{"vblank_times.txt"}; PerformanceTracker m_speed_counter{nullptr, 6000000}; }; extern PerformanceMetrics g_perf_metrics;