Merge pull request #690 from Armada651/d3dfullscreen_fixes
Exclusive fullscreen fixes
This commit is contained in:
commit
83838a645f
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue