Merge pull request #690 from Armada651/d3dfullscreen_fixes

Exclusive fullscreen fixes
This commit is contained in:
Pierre Bourdon 2014-07-30 16:28:56 -07:00
commit 83838a645f
5 changed files with 9 additions and 8 deletions

View File

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

View File

@ -1104,7 +1104,7 @@ void CFrame::DoStop()
// 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.
if (!RendererIsFullscreen() || g_Config.bBorderlessFullscreen ||
if (!RendererIsFullscreen() || g_Config.BorderlessFullscreenEnabled() ||
SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain)
{
Core::SetState(Core::CORE_PAUSE);

View File

@ -939,7 +939,7 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
SetWindowSize(fbWidth, fbHeight);
const bool windowResized = CheckForResize();
const bool fullscreen = g_ActiveConfig.ExclusiveFullscreenEnabled() &&
const bool fullscreen = g_ActiveConfig.bFullscreen &&
!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain;
bool fullscreen_changed = s_last_fullscreen_mode != fullscreen;

View File

@ -209,7 +209,7 @@ void VideoConfig::VerifyValidity()
// TODO: Check iMaxAnisotropy value
if (iAdapter < 0 || iAdapter > ((int)backend_info.Adapters.size() - 1)) iAdapter = 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)

View File

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