summaryrefslogtreecommitdiff
path: root/src/gui/gui.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <bjorn@lindeijer.nl>2024-03-25 08:29:53 +0100
committerThorbjørn Lindeijer <bjorn@lindeijer.nl>2024-03-26 07:30:39 +0000
commitda7a32c6ea92242c99412c2702ad59df36007de4 (patch)
tree79bea6d27c808d4fe5ac63941f8cbb52afb34552 /src/gui/gui.cpp
parent4091bd9568e5aff4a1f24416d26da567a2c076ad (diff)
downloadmana-da7a32c6ea92242c99412c2702ad59df36007de4.tar.gz
mana-da7a32c6ea92242c99412c2702ad59df36007de4.tar.bz2
mana-da7a32c6ea92242c99412c2702ad59df36007de4.tar.xz
mana-da7a32c6ea92242c99412c2702ad59df36007de4.zip
Added support for HiDPI fonts
* TrueTypeFont class now takes into account the graphics scale, in order to render an appropriate higher-resolution texture. * Removed TrueTypeFont::fontCounter, since TTF_Init/TTF_Quit already keep a counter. * Avoid copying the rendered string needlessly, when it already exists in the cache. Avoid another copy, when inserting a new chunk into the cache.
Diffstat (limited to 'src/gui/gui.cpp')
-rw-r--r--src/gui/gui.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index 68f43cc3..ae74cab2 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -106,6 +106,9 @@ Gui::Gui(Graphics *graphics)
std::string fontFile = branding.getValue("font", "fonts/dejavusans.ttf");
std::string path = resman->getPath(fontFile);
+ // Initialize the font scale before creating the fonts
+ TrueTypeFont::updateFontScale(graphics->getScale());
+
try
{
mGuiFont = new TrueTypeFont(path, fontSize);
@@ -222,17 +225,20 @@ void Gui::draw()
mGraphics->_endDraw();
}
-void Gui::videoResized(int width, int height)
+bool Gui::videoResized(int width, int height)
{
+ TrueTypeFont::updateFontScale(static_cast<Graphics*>(mGraphics)->getScale());
+
auto *top = static_cast<WindowContainer*>(getTop());
int oldWidth = top->getWidth();
int oldHeight = top->getHeight();
if (oldWidth == width && oldHeight == height)
- return;
+ return false;
top->setSize(width, height);
top->adjustAfterResize(oldWidth, oldHeight);
+ return true;
}
void Gui::setUseCustomCursor(bool customCursor)