Fix resolution desync if resize occurs during the loading screen.

This commit is contained in:
elasota
2021-02-20 15:11:31 -05:00
parent 83d37a7c94
commit 484e18a9af

View File

@@ -55,6 +55,7 @@ DrawSurface *loadScreenRingSurface;
void ReadInPrefs (void); void ReadInPrefs (void);
void WriteOutPrefs (void); void WriteOutPrefs (void);
void HandleSplashResolutionChange (void);
int main(int argc, const char **argv); int main(int argc, const char **argv);
@@ -1137,17 +1138,28 @@ int gpAppMain()
loadScreenRingSurface = nullptr; loadScreenRingSurface = nullptr;
} }
bool resolutionChanged = false;
if (!isPrefsLoaded) if (!isPrefsLoaded)
{ {
WriteOutPrefs(); WriteOutPrefs();
FlushResolutionChange(); if (thisMac.isResolutionDirty)
{
resolutionChanged = true;
FlushResolutionChange();
}
ShowInitialLaunchDisclaimer(); ShowInitialLaunchDisclaimer();
} }
FlushResolutionChange(); if (thisMac.isResolutionDirty)
resolutionChanged = true;
OpenMainWindow(); if (resolutionChanged)
HandleSplashResolutionChange();
else
OpenMainWindow();
if (isDoColorFade) if (isDoColorFade)
PortabilityLayer::WindowManager::GetInstance()->SetWindowDesaturation(mainWindow, 1.0); PortabilityLayer::WindowManager::GetInstance()->SetWindowDesaturation(mainWindow, 1.0);