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) 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__) #if defined(__APPLE__)
@ -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,8 @@ void CFrame::DoFullscreen(bool enable_fullscreen)
m_RenderFrame->Raise(); 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 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 // 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

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

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,7 +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 ExclusiveFullscreenEnabled() const { return bFullscreen && !bBorderlessFullscreen; } bool BorderlessFullscreenEnabled() const { return !backend_info.bSupportsExclusiveFullscreen || bBorderlessFullscreen; }
}; };
extern VideoConfig g_Config; extern VideoConfig g_Config;