VideoConfig: Ignore Borderless Fullscreen setting when the backend does not support exclusive fullscreen.

This was expected to be handled by VerifyValidity(), but that only verifies the validity of the INI files.
This commit is contained in:
Jules Blok 2014-07-28 23:26:40 +02:00
parent 5bbd34637b
commit 3b5625c76b
4 changed files with 6 additions and 5 deletions

View File

@ -1189,7 +1189,7 @@ void CFrame::OnMouse(wxMouseEvent& event)
void CFrame::DoFullscreen(bool enable_fullscreen) void CFrame::DoFullscreen(bool enable_fullscreen)
{ {
if (!g_Config.bBorderlessFullscreen && if (!g_Config.BorderlessFullscreenEnabled() &&
!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain && !SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain &&
Core::GetState() == Core::CORE_PAUSE) Core::GetState() == Core::CORE_PAUSE)
{ {
@ -1216,7 +1216,7 @@ void CFrame::DoFullscreen(bool enable_fullscreen)
{ {
m_RenderFrame->ShowFullScreen(true, wxFULLSCREEN_ALL); m_RenderFrame->ShowFullScreen(true, wxFULLSCREEN_ALL);
} }
else if (g_Config.bBorderlessFullscreen || else if (g_Config.BorderlessFullscreenEnabled() ||
SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain) SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain)
{ {
// Exiting exclusive fullscreen should be done from a Renderer callback. // Exiting exclusive fullscreen should be done from a Renderer callback.
@ -1244,7 +1244,7 @@ void CFrame::DoFullscreen(bool enable_fullscreen)
m_RenderFrame->Raise(); m_RenderFrame->Raise();
} }
g_Config.bFullscreen = (g_Config.bBorderlessFullscreen || g_Config.bFullscreen = (g_Config.BorderlessFullscreenEnabled() ||
SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain) ? false : enable_fullscreen; SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain) ? false : enable_fullscreen;
} }

View File

@ -1104,7 +1104,7 @@ void CFrame::DoStop()
// If exclusive fullscreen is not enabled then we can pause the emulation // If exclusive fullscreen is not enabled then we can pause the emulation
// before we've exited fullscreen. If not then we need to exit fullscreen first. // before we've exited fullscreen. If not then we need to exit fullscreen first.
if (!RendererIsFullscreen() || g_Config.bBorderlessFullscreen || if (!RendererIsFullscreen() || g_Config.BorderlessFullscreenEnabled() ||
SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain) SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain)
{ {
Core::SetState(Core::CORE_PAUSE); Core::SetState(Core::CORE_PAUSE);

View File

@ -209,7 +209,7 @@ void VideoConfig::VerifyValidity()
// TODO: Check iMaxAnisotropy value // TODO: Check iMaxAnisotropy value
if (iAdapter < 0 || iAdapter > ((int)backend_info.Adapters.size() - 1)) iAdapter = 0; if (iAdapter < 0 || iAdapter > ((int)backend_info.Adapters.size() - 1)) iAdapter = 0;
if (iMultisampleMode < 0 || iMultisampleMode >= (int)backend_info.AAModes.size()) iMultisampleMode = 0; if (iMultisampleMode < 0 || iMultisampleMode >= (int)backend_info.AAModes.size()) iMultisampleMode = 0;
if (!backend_info.bSupportsExclusiveFullscreen) bBorderlessFullscreen = true; if (!backend_info.bSupportsExclusiveFullscreen) bBorderlessFullscreen = false;
} }
void VideoConfig::Save(const std::string& ini_file) void VideoConfig::Save(const std::string& ini_file)

View File

@ -152,6 +152,7 @@ struct VideoConfig final
bool VirtualXFBEnabled() const { return bUseXFB && !bUseRealXFB; } bool VirtualXFBEnabled() const { return bUseXFB && !bUseRealXFB; }
bool EFBCopiesToTextureEnabled() const { return bEFBCopyEnable && bCopyEFBToTexture; } bool EFBCopiesToTextureEnabled() const { return bEFBCopyEnable && bCopyEFBToTexture; }
bool EFBCopiesToRamEnabled() const { return bEFBCopyEnable && !bCopyEFBToTexture; } bool EFBCopiesToRamEnabled() const { return bEFBCopyEnable && !bCopyEFBToTexture; }
bool BorderlessFullscreenEnabled() const { return !backend_info.bSupportsExclusiveFullscreen || bBorderlessFullscreen; }
}; };
extern VideoConfig g_Config; extern VideoConfig g_Config;