diff --git a/.gitignore b/.gitignore index d8d361a3c..71457ad6f 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ fmodapi*linux/ .vscode .cache *.kate-swp +*.geany # private dev files *.user diff --git a/src/common/startscreen/startscreen.cpp b/src/common/startscreen/startscreen.cpp index 8800fb0fa..35ceeedb6 100644 --- a/src/common/startscreen/startscreen.cpp +++ b/src/common/startscreen/startscreen.cpp @@ -667,6 +667,13 @@ void FStartScreen::Render(bool force) // Do not refresh too often. This function gets called a lot more frequently than the screen can update. if (nowtime - screen->FrameTime > minwaittime || force) { + if (setmodeneeded) + { + setmodeneeded = false; + screen->ToggleFullscreen(vid_fullscreen); + V_OutputResized(screen->GetWidth(), screen->GetHeight()); + } + screen->FrameTime = nowtime; screen->BeginFrame(); twod->ClearClipRect(); @@ -694,13 +701,6 @@ void FStartScreen::Render(bool force) DrawTexture(twod, StartupTexture, 0, 0, DTA_VirtualWidthF, displaywidth, DTA_VirtualHeightF, displayheight, TAG_END); } - if (setmodeneeded) - { - setmodeneeded = false; - screen->ToggleFullscreen(vid_fullscreen); - V_OutputResized(screen->GetWidth(), screen->GetHeight()); - } - twod->End(); screen->Update(); twod->OnFrameDone(); diff --git a/src/d_main.cpp b/src/d_main.cpp index 06d27e2ba..a2d65314c 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -3353,6 +3353,7 @@ static int D_InitGame(const FIWADInfo* iwad_info, std::vector& allw FBaseCVar::EnableCallbacks (); StartScreen = nostartscreen? nullptr : GetGameStartScreen(per_shader_progress > 0 ? max_progress * 10 / 9 : max_progress + 3); + setmodeneeded = true; if (StartScreen != nullptr) StartScreen->Render(); // +compatmode cannot be used on the command line, so use this as a substitute @@ -3543,7 +3544,6 @@ static int D_InitGame(const FIWADInfo* iwad_info, std::vector& allw { return 0; } - setmodeneeded = true; } // [SP] Force vanilla transparency auto-detection to re-detect our game lumps now