From c0f54fa4fc3559e59c7cd4f0b94810c377d85525 Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 9 Aug 2020 21:20:01 +0200 Subject: [PATCH] Cache offsets in ProductionPaletteWidget At least those that never change. --- .../Widgets/ProductionPaletteWidget.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs index 5c26f7d403..5524f94a18 100644 --- a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs @@ -113,7 +113,7 @@ namespace OpenRA.Mods.Common.Widgets readonly WorldRenderer worldRenderer; SpriteFont overlayFont, symbolFont; - float2 holdOffset, readyOffset, timeOffset, queuedOffset, infiniteOffset; + float2 iconOffset, holdOffset, readyOffset, timeOffset, queuedOffset, infiniteOffset; [CustomLintableHotkeyNames] public static IEnumerable LinterHotkeyNames(MiniYamlNode widgetNode, Action emitError, Action emitWarning) @@ -162,6 +162,16 @@ namespace OpenRA.Mods.Common.Widgets overlayFont = Game.Renderer.Fonts[OverlayFont]; Game.Renderer.Fonts.TryGetValue(SymbolsFont, out symbolFont); + + iconOffset = 0.5f * IconSize.ToFloat2() + IconSpriteOffset; + queuedOffset = new float2(4, 2); + holdOffset = iconOffset - overlayFont.Measure(HoldText) / 2; + readyOffset = iconOffset - overlayFont.Measure(ReadyText) / 2; + + if (ChromeMetrics.TryGet("InfiniteOffset", out infiniteOffset)) + infiniteOffset += queuedOffset; + else + infiniteOffset = queuedOffset; } public void ScrollDown() @@ -463,17 +473,7 @@ namespace OpenRA.Mods.Common.Widgets public override void Draw() { - var iconOffset = 0.5f * IconSize.ToFloat2() + IconSpriteOffset; - timeOffset = iconOffset - overlayFont.Measure(WidgetUtils.FormatTime(0, World.Timestep)) / 2; - queuedOffset = new float2(4, 2); - holdOffset = iconOffset - overlayFont.Measure(HoldText) / 2; - readyOffset = iconOffset - overlayFont.Measure(ReadyText) / 2; - - if (ChromeMetrics.TryGet("InfiniteOffset", out infiniteOffset)) - infiniteOffset += queuedOffset; - else - infiniteOffset = queuedOffset; if (CurrentQueue == null) return;