mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Add FPS to SDL title bar
Also fix a small issue with incorrect shutdown ordering in SDL. Previously the system would still be running so the telemetry task didn't launch and detached_tasks would assert(count == 0)
This commit is contained in:
		
							parent
							
								
									3bfba23362
								
							
						
					
					
						commit
						64dbc92b61
					
				@ -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) {
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user