From 7864f83c4d2372ca798a355c3f8d65b53523e489 Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Tue, 7 Dec 2021 16:39:37 +0200 Subject: [PATCH 1/2] Changed SDL initial bg color from white to black to remove white flash effect with some GPUs --- BeefLibs/SDL2/src/SDLApp.bf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/BeefLibs/SDL2/src/SDLApp.bf b/BeefLibs/SDL2/src/SDLApp.bf index cc95a8dd..01535fe8 100644 --- a/BeefLibs/SDL2/src/SDLApp.bf +++ b/BeefLibs/SDL2/src/SDLApp.bf @@ -117,8 +117,12 @@ namespace SDL2 SDL.EventState(.JoyDeviceAdded, .Disable); SDL.EventState(.JoyDeviceRemoved, .Disable); - mWindow = SDL.CreateWindow(mTitle, .Undefined, .Undefined, mWidth, mHeight, .Shown); + mWindow = SDL.CreateWindow(mTitle, .Undefined, .Undefined, mWidth, mHeight, .Hidden); mRenderer = SDL.CreateRenderer(mWindow, -1, .Accelerated); + SDL.ShowWindow(mWindow); + SDL.SetRenderDrawColor(mRenderer, 0, 0, 0, 255); + SDL.RenderClear(mRenderer); + SDL.RenderPresent(mRenderer); mScreen = SDL.GetWindowSurface(mWindow); SDLImage.Init(.PNG | .JPG); mHasAudio = SDLMixer.OpenAudio(44100, SDLMixer.MIX_DEFAULT_FORMAT, 2, 4096) >= 0; From b8e07788073505aa199593ecf4ea790a0b9a68cb Mon Sep 17 00:00:00 2001 From: unknown <81806010+marsej@users.noreply.github.com> Date: Sun, 19 Dec 2021 04:18:57 +0200 Subject: [PATCH 2/2] Delay ShowWindow until after first render --- BeefLibs/SDL2/src/SDLApp.bf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/BeefLibs/SDL2/src/SDLApp.bf b/BeefLibs/SDL2/src/SDLApp.bf index 01535fe8..65c042d4 100644 --- a/BeefLibs/SDL2/src/SDLApp.bf +++ b/BeefLibs/SDL2/src/SDLApp.bf @@ -117,12 +117,8 @@ namespace SDL2 SDL.EventState(.JoyDeviceAdded, .Disable); SDL.EventState(.JoyDeviceRemoved, .Disable); - mWindow = SDL.CreateWindow(mTitle, .Undefined, .Undefined, mWidth, mHeight, .Hidden); + mWindow = SDL.CreateWindow(mTitle, .Undefined, .Undefined, mWidth, mHeight, .Hidden); // Initially hide window mRenderer = SDL.CreateRenderer(mWindow, -1, .Accelerated); - SDL.ShowWindow(mWindow); - SDL.SetRenderDrawColor(mRenderer, 0, 0, 0, 255); - SDL.RenderClear(mRenderer); - SDL.RenderPresent(mRenderer); mScreen = SDL.GetWindowSurface(mWindow); SDLImage.Init(.PNG | .JPG); mHasAudio = SDLMixer.OpenAudio(44100, SDLMixer.MIX_DEFAULT_FORMAT, 2, 4096) >= 0; @@ -249,7 +245,9 @@ namespace SDL2 if (curPhysTickCount == 0) { // Initial render - Render(); + Render(); + // Show initially hidden window, mitigates white flash on slow startups + SDL.ShowWindow(mWindow); } else {