From 6def4ead01bfcf3b5b12bbb7e16f21217d6088bf Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Wed, 9 Jul 2014 22:30:34 +0200 Subject: [PATCH] FPSCounter: Flush the logs every second and close them when the renderer is shut down. --- Source/Core/VideoCommon/FPSCounter.cpp | 7 +++++++ Source/Core/VideoCommon/FPSCounter.h | 3 +++ Source/Core/VideoCommon/RenderBase.cpp | 2 ++ 3 files changed, 12 insertions(+) diff --git a/Source/Core/VideoCommon/FPSCounter.cpp b/Source/Core/VideoCommon/FPSCounter.cpp index 10bfebb26f..c9615a2f68 100644 --- a/Source/Core/VideoCommon/FPSCounter.cpp +++ b/Source/Core/VideoCommon/FPSCounter.cpp @@ -34,6 +34,12 @@ void Initialize() s_bench_file.close(); } +void Shutdown() +{ + if (s_bench_file.is_open()) + s_bench_file.close(); +} + static void LogRenderTimeToFile(u64 val) { if (!s_bench_file.is_open()) @@ -49,6 +55,7 @@ int Update() s_update_time.Update(); s_fps = s_counter - s_fps_last_counter; s_fps_last_counter = s_counter; + s_bench_file.flush(); } if (g_ActiveConfig.bLogRenderTimeToFile) diff --git a/Source/Core/VideoCommon/FPSCounter.h b/Source/Core/VideoCommon/FPSCounter.h index 9bdee876eb..2ce61beaec 100644 --- a/Source/Core/VideoCommon/FPSCounter.h +++ b/Source/Core/VideoCommon/FPSCounter.h @@ -9,6 +9,9 @@ namespace FPSCounter // Initializes the FPS counter. void Initialize(); +// Shutdown the FPS counter by closing the logs. +void Shutdown(); + // Called when a frame is rendered. Returns the value to be displayed on // screen as the FPS counter (updated every second). int Update(); diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index aa8a9f1d27..68afa4e11a 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -105,6 +105,8 @@ Renderer::~Renderer() if (pFrameDump.IsOpen()) pFrameDump.Close(); #endif + + FPSCounter::Shutdown(); } void Renderer::RenderToXFB(u32 xfbAddr, const EFBRectangle& sourceRc, u32 fbWidth, u32 fbHeight, float Gamma)