mirror of
https://github.com/stenzek/duckstation.git
synced 2026-07-08 17:46:19 +00:00
System: Fix fullscreen state persisting between games
This was not intentional.
This commit is contained in:
@@ -597,11 +597,9 @@ std::optional<GPURenderer> GPUThread::GetRequestedRenderer()
|
|||||||
return s_state.requested_renderer;
|
return s_state.requested_renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GPUThread::CreateGPUBackend(GPURenderer renderer, bool upload_vram, bool fullscreen, bool force_recreate_device,
|
bool GPUThread::CreateGPUBackend(GPURenderer renderer, bool upload_vram, std::optional<bool> fullscreen, Error* error)
|
||||||
Error* error)
|
|
||||||
{
|
{
|
||||||
return Reconfigure(renderer, upload_vram, fullscreen ? std::optional<bool>(true) : std::nullopt, std::nullopt,
|
return Reconfigure(renderer, upload_vram, fullscreen, std::nullopt, false, error);
|
||||||
force_recreate_device, error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GPUThread::DestroyGPUBackend()
|
void GPUThread::DestroyGPUBackend()
|
||||||
|
|||||||
@@ -47,8 +47,7 @@ void StopFullscreenUI();
|
|||||||
|
|
||||||
/// Backend control.
|
/// Backend control.
|
||||||
std::optional<GPURenderer> GetRequestedRenderer();
|
std::optional<GPURenderer> GetRequestedRenderer();
|
||||||
bool CreateGPUBackend(GPURenderer renderer, bool upload_vram, bool fullscreen, bool force_recreate_device,
|
bool CreateGPUBackend(GPURenderer renderer, bool upload_vram, std::optional<bool> fullscreen, Error* error);
|
||||||
Error* error);
|
|
||||||
void DestroyGPUBackend();
|
void DestroyGPUBackend();
|
||||||
bool HasGPUBackend();
|
bool HasGPUBackend();
|
||||||
bool IsGPUBackendRequested();
|
bool IsGPUBackendRequested();
|
||||||
|
|||||||
@@ -1219,7 +1219,7 @@ void System::RecreateGPU(GPURenderer renderer)
|
|||||||
StopMediaCapture();
|
StopMediaCapture();
|
||||||
|
|
||||||
Error error;
|
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());
|
ERROR_LOG("Failed to switch to {} renderer: {}", Settings::GetRendererName(renderer), error.GetDescription());
|
||||||
Panic("Failed to switch renderer.");
|
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.
|
// This can fail due to the application being closed during startup.
|
||||||
if (!GPUThread::CreateGPUBackend(force_software_renderer ? GPURenderer::Software : g_settings.gpu_renderer, false,
|
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.
|
// Game info has to be manually cleared since the backend won't shutdown naturally.
|
||||||
GPUThread::ClearGameInfo();
|
GPUThread::ClearGameInfo();
|
||||||
|
|||||||
Reference in New Issue
Block a user