summaryrefslogtreecommitdiffstats
path: root/modules/text_server_fb
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2023-03-10 09:10:12 +0200
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2023-03-10 09:36:17 +0200
commit8d501a2dc31f3bef6d5a7f6b0d060c8915082011 (patch)
treec030c8ca1f4d39deb1a6917d0fdf3e5d5cfff84c /modules/text_server_fb
parentc1128e911ccd6f1e8c35646df804d894652a58f1 (diff)
downloadredot-engine-8d501a2dc31f3bef6d5a7f6b0d060c8915082011.tar.gz
[TextServer] Add invalid font scaling check, restrict Linux/BSD system fonts lookup to TrueType/CFF only.
Diffstat (limited to 'modules/text_server_fb')
-rw-r--r--modules/text_server_fb/text_server_fb.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp
index 9a9dcb3a31..8687726287 100644
--- a/modules/text_server_fb/text_server_fb.cpp
+++ b/modules/text_server_fb/text_server_fb.cpp
@@ -830,7 +830,9 @@ _FORCE_INLINE_ bool TextServerFallback::_ensure_cache_for_size(FontFallback *p_f
FT_Select_Size(fd->face, best_match);
} else {
FT_Set_Pixel_Sizes(fd->face, 0, Math::round(fd->size.x * fd->oversampling));
- fd->scale = ((double)fd->size.x * fd->oversampling) / (double)fd->face->size->metrics.y_ppem;
+ if (fd->face->size->metrics.y_ppem != 0) {
+ fd->scale = ((double)fd->size.x * fd->oversampling) / (double)fd->face->size->metrics.y_ppem;
+ }
}
fd->ascent = (fd->face->size->metrics.ascender / 64.0) / fd->oversampling * fd->scale;