Cosmetic changes based on feedback on PR #506.
This commit is contained in:
parent
5837b35add
commit
d00e76b3ef
|
@ -314,6 +314,9 @@ HRESULT Create(HWND wnd)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// prevent DXGI from responding to Alt+Enter, unfortunately DXGI_MWA_NO_ALT_ENTER
|
||||||
|
// does not work so we disable all monitoring of window messages. However this
|
||||||
|
// may make it more difficult for DXGI to handle display mode changes.
|
||||||
hr = factory->MakeWindowAssociation(wnd, DXGI_MWA_NO_WINDOW_CHANGES);
|
hr = factory->MakeWindowAssociation(wnd, DXGI_MWA_NO_WINDOW_CHANGES);
|
||||||
if (FAILED(hr)) MessageBox(wnd, _T("Failed to associate the window"), _T("Dolphin Direct3D 11 backend"), MB_OK | MB_ICONERROR);
|
if (FAILED(hr)) MessageBox(wnd, _T("Failed to associate the window"), _T("Dolphin Direct3D 11 backend"), MB_OK | MB_ICONERROR);
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ static u32 s_LastAA = 0;
|
||||||
|
|
||||||
static Television s_television;
|
static Television s_television;
|
||||||
|
|
||||||
static bool s_LastFS = false;
|
static bool s_last_fullscreen_mode = false;
|
||||||
|
|
||||||
ID3D11Buffer* access_efb_cbuf = nullptr;
|
ID3D11Buffer* access_efb_cbuf = nullptr;
|
||||||
ID3D11BlendState* clearblendstates[4] = {nullptr};
|
ID3D11BlendState* clearblendstates[4] = {nullptr};
|
||||||
|
@ -940,13 +940,16 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
|
||||||
const bool windowResized = CheckForResize();
|
const bool windowResized = CheckForResize();
|
||||||
const bool fullscreen = g_ActiveConfig.bFullscreen;
|
const bool fullscreen = g_ActiveConfig.bFullscreen;
|
||||||
|
|
||||||
bool fsChanged = s_LastFS != fullscreen;
|
bool fullscreen_changed = s_last_fullscreen_mode != fullscreen;
|
||||||
|
|
||||||
BOOL fsState;
|
BOOL fullscreen_state;
|
||||||
if (SUCCEEDED(D3D::swapchain->GetFullscreenState(&fsState, nullptr)) && !!fsState != fullscreen)
|
if (SUCCEEDED(D3D::swapchain->GetFullscreenState(&fullscreen_state, nullptr)))
|
||||||
{
|
{
|
||||||
// We should be in fullscreen, but we're not. Restore it when we regain focus.
|
if (!!fullscreen_state != fullscreen)
|
||||||
fsChanged = Host_RendererHasFocus();
|
{
|
||||||
|
// We should be in fullscreen, but we're not. Restore it when we regain focus.
|
||||||
|
fullscreen_changed = Host_RendererHasFocus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool xfbchanged = false;
|
bool xfbchanged = false;
|
||||||
|
@ -966,15 +969,15 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangl
|
||||||
// resize the back buffers NOW to avoid flickering
|
// resize the back buffers NOW to avoid flickering
|
||||||
if (xfbchanged ||
|
if (xfbchanged ||
|
||||||
windowResized ||
|
windowResized ||
|
||||||
fsChanged ||
|
fullscreen_changed ||
|
||||||
s_LastEFBScale != g_ActiveConfig.iEFBScale ||
|
s_LastEFBScale != g_ActiveConfig.iEFBScale ||
|
||||||
s_LastAA != g_ActiveConfig.iMultisampleMode)
|
s_LastAA != g_ActiveConfig.iMultisampleMode)
|
||||||
{
|
{
|
||||||
s_LastAA = g_ActiveConfig.iMultisampleMode;
|
s_LastAA = g_ActiveConfig.iMultisampleMode;
|
||||||
s_LastFS = g_ActiveConfig.bFullscreen;
|
s_last_fullscreen_mode = fullscreen;
|
||||||
PixelShaderCache::InvalidateMSAAShaders();
|
PixelShaderCache::InvalidateMSAAShaders();
|
||||||
|
|
||||||
if (windowResized || fsChanged)
|
if (windowResized || fullscreen_changed)
|
||||||
{
|
{
|
||||||
// TODO: Aren't we still holding a reference to the back buffer right now?
|
// TODO: Aren't we still holding a reference to the back buffer right now?
|
||||||
D3D::Reset();
|
D3D::Reset();
|
||||||
|
|
Loading…
Reference in New Issue