Android: Handle some possible surface loss cases

This commit is contained in:
Connor McLaughlin
2021-06-07 18:13:05 +10:00
parent 141fac0481
commit 20afc1c4a1
3 changed files with 10 additions and 7 deletions

View File

@ -754,13 +754,13 @@ void AndroidHostInterface::SurfaceChanged(ANativeWindow* surface, int format, in
wi.surface_refresh_rate = GetRefreshRate();
wi.surface_scale = GetSurfaceScale(width, height);
m_display->ChangeRenderWindow(wi);
if (surface)
const bool surface_valid = m_display->ChangeRenderWindow(wi) && surface;
if (surface_valid)
OnHostDisplayResized();
if (surface && System::GetState() == System::State::Paused)
if (surface_valid && System::GetState() == System::State::Paused)
PauseSystem(false);
else if (!surface && System::IsRunning())
else if (!surface_valid && System::IsRunning())
PauseSystem(true);
}
}