Fix bitmap font scaling.

This commit is contained in:
Pāvels Nadtočajevs 2025-04-15 12:14:37 +03:00
parent e5ccaa79e2
commit b55d3a2516
No known key found for this signature in database
GPG key ID: 8413210218EF35D2
2 changed files with 8 additions and 8 deletions

View file

@ -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]);

View file

@ -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.