From 0a8bcdd34470d2b96b393963f113980f09f3103d Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Mon, 11 Dec 2023 21:03:54 +0000 Subject: [PATCH] Change: Be selective about clearing sprite/font caches on interface scale change. (#11576) Sprite cache contains all zoom levels anyway, so does not need to be reloaded. Font cache does not need to be clear if the font zoom hasn't changed, i.e. when changing the max sprite zoom level setting. --- src/gfx.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gfx.cpp b/src/gfx.cpp index 9275a44137..7c95da4259 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1982,17 +1982,17 @@ bool AdjustGUIZoom(bool automatic) UpdateGUIZoom(); if (old_scale == _gui_scale && old_gui_zoom == _gui_zoom) return false; - /* Reload sprites if sprite zoom level has changed. */ + /* Update cursors if sprite zoom level has changed. */ if (old_gui_zoom != _gui_zoom) { - GfxClearSpriteCache(); VideoDriver::GetInstance()->ClearSystemSprites(); UpdateCursorSize(); - } else if (old_font_zoom != _font_zoom) { + } + if (old_font_zoom != _font_zoom) { GfxClearFontSpriteCache(); + ClearFontCache(); + LoadStringWidthTable(); } - ClearFontCache(); - LoadStringWidthTable(); UpdateAllVirtCoords(); /* Adjust all window sizes to match the new zoom level, so that they don't appear