From b55d3a25160e6e27c00eda80dba5762e47d763eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pa=CC=84vels=20Nadtoc=CC=8Cajevs?= <7645683+bruvzg@users.noreply.github.com> Date: Tue, 15 Apr 2025 12:14:37 +0300 Subject: [PATCH] Fix bitmap font scaling. --- modules/text_server_adv/text_server_adv.cpp | 8 ++++---- modules/text_server_fb/text_server_fb.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/text_server_adv/text_server_adv.cpp b/modules/text_server_adv/text_server_adv.cpp index 73a8aaf1d3b..4fc57be2707 100644 --- a/modules/text_server_adv/text_server_adv.cpp +++ b/modules/text_server_adv/text_server_adv.cpp @@ -1469,10 +1469,10 @@ _FORCE_INLINE_ bool TextServerAdvanced::_ensure_cache_for_size(FontAdvanced *p_f fd->hb_handle = hb_ft_font_create(fd->face, nullptr); - fd->ascent = (fd->face->size->metrics.ascender / 64.0) / fd->scale; - fd->descent = (-fd->face->size->metrics.descender / 64.0) / fd->scale; - fd->underline_position = (-FT_MulFix(fd->face->underline_position, fd->face->size->metrics.y_scale) / 64.0) / fd->scale; - fd->underline_thickness = (FT_MulFix(fd->face->underline_thickness, fd->face->size->metrics.y_scale) / 64.0) / fd->scale; + fd->ascent = (fd->face->size->metrics.ascender / 64.0) * fd->scale; + fd->descent = (-fd->face->size->metrics.descender / 64.0) * fd->scale; + fd->underline_position = (-FT_MulFix(fd->face->underline_position, fd->face->size->metrics.y_scale) / 64.0) * fd->scale; + fd->underline_thickness = (FT_MulFix(fd->face->underline_thickness, fd->face->size->metrics.y_scale) / 64.0) * fd->scale; #if HB_VERSION_ATLEAST(3, 3, 0) hb_font_set_synthetic_slant(fd->hb_handle, p_font_data->transform[0][1]); diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp index ddaf32e5d51..8211f4524b0 100644 --- a/modules/text_server_fb/text_server_fb.cpp +++ b/modules/text_server_fb/text_server_fb.cpp @@ -899,10 +899,10 @@ _FORCE_INLINE_ bool TextServerFallback::_ensure_cache_for_size(FontFallback *p_f } } - fd->ascent = (fd->face->size->metrics.ascender / 64.0) / fd->scale; - fd->descent = (-fd->face->size->metrics.descender / 64.0) / fd->scale; - fd->underline_position = (-FT_MulFix(fd->face->underline_position, fd->face->size->metrics.y_scale) / 64.0) / fd->scale; - fd->underline_thickness = (FT_MulFix(fd->face->underline_thickness, fd->face->size->metrics.y_scale) / 64.0) / fd->scale; + fd->ascent = (fd->face->size->metrics.ascender / 64.0) * fd->scale; + fd->descent = (-fd->face->size->metrics.descender / 64.0) * fd->scale; + fd->underline_position = (-FT_MulFix(fd->face->underline_position, fd->face->size->metrics.y_scale) / 64.0) * fd->scale; + fd->underline_thickness = (FT_MulFix(fd->face->underline_thickness, fd->face->size->metrics.y_scale) / 64.0) * fd->scale; if (!p_font_data->face_init) { // When a font does not provide a `family_name`, FreeType tries to synthesize one based on other names.