diff --git a/MLEM/Extensions/GraphicsExtensions.cs b/MLEM/Extensions/GraphicsExtensions.cs index a84e01a..4901c11 100644 --- a/MLEM/Extensions/GraphicsExtensions.cs +++ b/MLEM/Extensions/GraphicsExtensions.cs @@ -9,18 +9,17 @@ namespace MLEM.Extensions { private static int lastHeight; public static void SetFullscreen(this GraphicsDeviceManager manager, bool fullscreen) { + if (fullscreen || lastWidth == 0 || lastHeight == 0) { + var view = manager.GraphicsDevice.Viewport; + lastWidth = view.Width; + lastHeight = view.Height; + } manager.IsFullScreen = fullscreen; if (fullscreen) { - lastWidth = manager.GraphicsDevice.Viewport.Width; - lastHeight = manager.GraphicsDevice.Viewport.Height; - var curr = GraphicsAdapter.DefaultAdapter.CurrentDisplayMode; manager.PreferredBackBufferWidth = curr.Width; manager.PreferredBackBufferHeight = curr.Height; } else { - if (lastWidth <= 0 || lastHeight <= 0) - throw new InvalidOperationException("Can't call SetFullscreen to change out of fullscreen mode without going into fullscreen mode first"); - manager.PreferredBackBufferWidth = lastWidth; manager.PreferredBackBufferHeight = lastHeight; }