Merge pull request #2896 from FearlessTobi/port-4950

Port citra-emu/citra#4950: "Add FPS to SDL title bar"
This commit is contained in:
bunnei 2019-10-04 15:51:03 -04:00 committed by GitHub
commit 94c34f23d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 2 deletions

View File

@ -4,6 +4,8 @@
#include <SDL.h> #include <SDL.h>
#include "common/logging/log.h" #include "common/logging/log.h"
#include "common/scm_rev.h"
#include "core/core.h"
#include "input_common/keyboard.h" #include "input_common/keyboard.h"
#include "input_common/main.h" #include "input_common/main.h"
#include "input_common/motion_emu.h" #include "input_common/motion_emu.h"
@ -170,6 +172,16 @@ void EmuWindow_SDL2::PollEvents() {
break; break;
} }
} }
const u32 current_time = SDL_GetTicks();
if (current_time > last_time + 2000) {
const auto results = Core::System::GetInstance().GetAndResetPerfStats();
const auto title = fmt::format(
"yuzu {} | {}-{} | FPS: {:.0f} ({:.0%})", Common::g_build_fullname,
Common::g_scm_branch, Common::g_scm_desc, results.game_fps, results.emulation_speed);
SDL_SetWindowTitle(render_window, title.c_str());
last_time = current_time;
}
} }
void EmuWindow_SDL2::OnMinimalClientAreaChangeRequest(std::pair<unsigned, unsigned> minimal_size) { void EmuWindow_SDL2::OnMinimalClientAreaChangeRequest(std::pair<unsigned, unsigned> minimal_size) {

View File

@ -60,4 +60,7 @@ protected:
/// Internal SDL2 render window /// Internal SDL2 render window
SDL_Window* render_window; SDL_Window* render_window;
/// Keeps track of how often to update the title bar during gameplay
u32 last_time = 0;
}; };

View File

@ -186,8 +186,6 @@ int main(int argc, char** argv) {
system.SetFilesystem(std::make_shared<FileSys::RealVfsFilesystem>()); system.SetFilesystem(std::make_shared<FileSys::RealVfsFilesystem>());
system.GetFileSystemController().CreateFactories(*system.GetFilesystem()); system.GetFileSystemController().CreateFactories(*system.GetFilesystem());
SCOPE_EXIT({ system.Shutdown(); });
const Core::System::ResultStatus load_result{system.Load(*emu_window, filepath)}; const Core::System::ResultStatus load_result{system.Load(*emu_window, filepath)};
switch (load_result) { switch (load_result) {
@ -227,6 +225,8 @@ int main(int argc, char** argv) {
system.RunLoop(); system.RunLoop();
} }
system.Shutdown();
detached_tasks.WaitForAllTasks(); detached_tasks.WaitForAllTasks();
return 0; return 0;
} }