diff --git a/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs b/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs index cb6b11d6bf..d6723a137a 100644 --- a/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs +++ b/OpenRA.Mods.Common/LoadScreens/BlankLoadScreen.cs @@ -24,6 +24,8 @@ namespace OpenRA.Mods.Common.LoadScreens public LaunchArguments Launch; protected ModData ModData { get; private set; } + bool initialized; + public virtual void Init(ModData modData, Dictionary info) { ModData = modData; @@ -31,12 +33,15 @@ namespace OpenRA.Mods.Common.LoadScreens public virtual void Display() { - if (Game.Renderer == null) + if (Game.Renderer == null || initialized) return; // Draw a black screen Game.Renderer.BeginUI(); Game.Renderer.EndFrame(new NullInputHandler()); + + // PERF: draw the screen only once + initialized = true; } public virtual void StartGame(Arguments args)