System: Fix fullscreen state persisting between games

This was not intentional.
This commit is contained in:
Stenzek
2025-12-14 20:48:15 +10:00
parent 708e3b8694
commit f52a5afcb8
3 changed files with 5 additions and 8 deletions

View File

@@ -597,11 +597,9 @@ std::optional<GPURenderer> GPUThread::GetRequestedRenderer()
return s_state.requested_renderer;
}
bool GPUThread::CreateGPUBackend(GPURenderer renderer, bool upload_vram, bool fullscreen, bool force_recreate_device,
Error* error)
bool GPUThread::CreateGPUBackend(GPURenderer renderer, bool upload_vram, std::optional<bool> fullscreen, Error* error)
{
return Reconfigure(renderer, upload_vram, fullscreen ? std::optional<bool>(true) : std::nullopt, std::nullopt,
force_recreate_device, error);
return Reconfigure(renderer, upload_vram, fullscreen, std::nullopt, false, error);
}
void GPUThread::DestroyGPUBackend()

View File

@@ -47,8 +47,7 @@ void StopFullscreenUI();
/// Backend control.
std::optional<GPURenderer> GetRequestedRenderer();
bool CreateGPUBackend(GPURenderer renderer, bool upload_vram, bool fullscreen, bool force_recreate_device,
Error* error);
bool CreateGPUBackend(GPURenderer renderer, bool upload_vram, std::optional<bool> fullscreen, Error* error);
void DestroyGPUBackend();
bool HasGPUBackend();
bool IsGPUBackendRequested();

View File

@@ -1219,7 +1219,7 @@ void System::RecreateGPU(GPURenderer renderer)
StopMediaCapture();
Error error;
if (!GPUThread::CreateGPUBackend(renderer, true, false, false, &error))
if (!GPUThread::CreateGPUBackend(renderer, true, std::nullopt, &error))
{
ERROR_LOG("Failed to switch to {} renderer: {}", Settings::GetRendererName(renderer), error.GetDescription());
Panic("Failed to switch renderer.");
@@ -2007,7 +2007,7 @@ bool System::Initialize(std::unique_ptr<CDImage> disc, DiscRegion disc_region, b
// This can fail due to the application being closed during startup.
if (!GPUThread::CreateGPUBackend(force_software_renderer ? GPURenderer::Software : g_settings.gpu_renderer, false,
fullscreen, false, error))
fullscreen, error))
{
// Game info has to be manually cleared since the backend won't shutdown naturally.
GPUThread::ClearGameInfo();