From f5db86597959f59375500adfb766544c58ce5528 Mon Sep 17 00:00:00 2001 From: kaczy Date: Fri, 11 Aug 2023 09:08:35 +0200 Subject: [PATCH] Resizable window --- src/Map/MapManager.cs | 15 ++++++++++++++- src/UOGame.cs | 9 +++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Map/MapManager.cs b/src/Map/MapManager.cs index 523e622..b79559a 100644 --- a/src/Map/MapManager.cs +++ b/src/Map/MapManager.cs @@ -12,7 +12,7 @@ public class MapManager private readonly MapEffect _mapEffect; private readonly MapRenderer _mapRenderer; - private readonly RenderTarget2D _shadowTarget; + private RenderTarget2D _shadowTarget; private readonly PostProcessRenderer _postProcessRenderer; @@ -701,4 +701,17 @@ public void Draw() DrawLand(minTileX, minTileY, maxTileX, maxTileY); _mapRenderer.End(); } + + public void OnWindowsResized(GameWindow window) { + _camera.ScreenSize = window.ClientBounds; + _camera.Update(); + + _shadowTarget = new RenderTarget2D( + _gfxDevice, + _gfxDevice.PresentationParameters.BackBufferWidth * 2, + _gfxDevice.PresentationParameters.BackBufferHeight * 2, + false, + SurfaceFormat.Single, + DepthFormat.Depth24); + } } \ No newline at end of file diff --git a/src/UOGame.cs b/src/UOGame.cs index 2553812..4a65f21 100644 --- a/src/UOGame.cs +++ b/src/UOGame.cs @@ -26,6 +26,9 @@ public UOGame() _gdm.PreparingDeviceSettings += (sender, e) => { e.GraphicsDeviceInformation.PresentationParameters.RenderTargetUsage = RenderTargetUsage.DiscardContents; }; IsMouseVisible = true; + + Window.AllowUserResizing = true; + Window.ClientSizeChanged += OnWindowResized; } protected override void Initialize() @@ -81,4 +84,10 @@ protected override void Draw(GameTime gameTime) base.Draw(gameTime); } + + + private void OnWindowResized(object? sender, EventArgs e) { + if (sender is GameWindow window) + _mapManager.OnWindowsResized(window); + } } \ No newline at end of file