diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-25 08:29:53 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2024-03-26 07:30:39 +0000 |
commit | da7a32c6ea92242c99412c2702ad59df36007de4 (patch) | |
tree | 79bea6d27c808d4fe5ac63941f8cbb52afb34552 /src/gui/gui.cpp | |
parent | 4091bd9568e5aff4a1f24416d26da567a2c076ad (diff) | |
download | mana-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.cpp | 10 |
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) |