From 2cf2eaf643c4854bb8e085b459ed11417bfb80d0 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Fri, 14 Jun 2024 03:11:39 +0200 Subject: [PATCH] Make OSD scale float to more accurate match system scale --- src/BizHawk.Bizware.Graphics/Renderers/StringRenderer.cs | 6 +++--- src/BizHawk.Client.Common/DisplayManager/Filters/Gui.cs | 8 ++++---- src/BizHawk.Client.Common/DisplayManager/IBlitter.cs | 2 +- src/BizHawk.Client.Common/DisplayManager/OSDManager.cs | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/BizHawk.Bizware.Graphics/Renderers/StringRenderer.cs b/src/BizHawk.Bizware.Graphics/Renderers/StringRenderer.cs index d551fda995..bb6eb249f1 100644 --- a/src/BizHawk.Bizware.Graphics/Renderers/StringRenderer.cs +++ b/src/BizHawk.Bizware.Graphics/Renderers/StringRenderer.cs @@ -49,7 +49,7 @@ namespace BizHawk.Bizware.Graphics TexturePages = null; } - public SizeF Measure(string str, int scale) + public SizeF Measure(string str, float scale) { float x = 0; float y = FontInfo.LineHeight * scale; @@ -92,7 +92,7 @@ namespace BizHawk.Bizware.Graphics return new(Math.Max(x, ox), y); } - public void RenderString(IGuiRenderer renderer, float x, float y, string str, int scale) + public void RenderString(IGuiRenderer renderer, float x, float y, string str, float scale) { if (Owner != renderer.Owner) { @@ -146,4 +146,4 @@ namespace BizHawk.Bizware.Graphics private record TexCoords(float U0, float V0, float U1, float V1); } -} \ No newline at end of file +} diff --git a/src/BizHawk.Client.Common/DisplayManager/Filters/Gui.cs b/src/BizHawk.Client.Common/DisplayManager/Filters/Gui.cs index 70cee5cc32..291ea07785 100644 --- a/src/BizHawk.Client.Common/DisplayManager/Filters/Gui.cs +++ b/src/BizHawk.Client.Common/DisplayManager/Filters/Gui.cs @@ -615,7 +615,7 @@ namespace BizHawk.Client.Common.Filters var size = FindInput().SurfaceFormat.Size; FilterProgram.GuiRenderer.Begin(size.Width, size.Height); - var scale = (int)Math.Round(FilterProgram.ControlDpi / 96.0f); + var scale = FilterProgram.ControlDpi / 96.0F; var blitter = new OSDBlitter(_font, FilterProgram.GuiRenderer, new(0, 0, size.Width, size.Height), scale); FilterProgram.GuiRenderer.EnableBlending(); _manager.DrawScreenInfo(blitter); @@ -628,7 +628,7 @@ namespace BizHawk.Client.Common.Filters private readonly StringRenderer _font; private readonly IGuiRenderer _renderer; - public OSDBlitter(StringRenderer font, IGuiRenderer renderer, Rectangle clipBounds, int scale) + public OSDBlitter(StringRenderer font, IGuiRenderer renderer, Rectangle clipBounds, float scale) { _font = font; _renderer = renderer; @@ -648,7 +648,7 @@ namespace BizHawk.Client.Common.Filters public Rectangle ClipBounds { get; } - public int Scale { get; } + public float Scale { get; } } } -} \ No newline at end of file +} diff --git a/src/BizHawk.Client.Common/DisplayManager/IBlitter.cs b/src/BizHawk.Client.Common/DisplayManager/IBlitter.cs index 8bb9bde7f8..5f23f8ce0f 100644 --- a/src/BizHawk.Client.Common/DisplayManager/IBlitter.cs +++ b/src/BizHawk.Client.Common/DisplayManager/IBlitter.cs @@ -15,6 +15,6 @@ namespace BizHawk.Client.Common Rectangle ClipBounds { get; } - public int Scale { get; } + public float Scale { get; } } } diff --git a/src/BizHawk.Client.Common/DisplayManager/OSDManager.cs b/src/BizHawk.Client.Common/DisplayManager/OSDManager.cs index fc307ad7eb..6f3d0240a1 100644 --- a/src/BizHawk.Client.Common/DisplayManager/OSDManager.cs +++ b/src/BizHawk.Client.Common/DisplayManager/OSDManager.cs @@ -141,7 +141,7 @@ namespace BizHawk.Client.Common var line = 1; for (var i = _messages.Count - 1; i >= 0; i--, line++) { - var yOffset = (line - 1) * 18 * g.Scale; + var yOffset = (int)Math.Round((line - 1) * 18 * g.Scale); if (!_config.Messages.Anchor.IsTop()) { yOffset = 0 - yOffset; @@ -355,4 +355,4 @@ namespace BizHawk.Client.Common } } } -} \ No newline at end of file +}