summaryrefslogtreecommitdiff
path: root/modules/text_server_fb
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2022-03-13 14:50:36 +0200
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2022-03-13 15:07:53 +0200
commitd9f8cadafb084959834d61e9e3729d1c0c36d316 (patch)
tree3e926a2cedd7813075869894e0df7da79b13913e /modules/text_server_fb
parent7df288f7851bd23e81231c9dacd6921c998962e1 (diff)
Improve simulated bold fonts advance.
Diffstat (limited to 'modules/text_server_fb')
-rw-r--r--modules/text_server_fb/text_server_fb.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/text_server_fb/text_server_fb.cpp b/modules/text_server_fb/text_server_fb.cpp
index 5a4b20b2ef..0d7a9d0db8 100644
--- a/modules/text_server_fb/text_server_fb.cpp
+++ b/modules/text_server_fb/text_server_fb.cpp
@@ -1513,12 +1513,17 @@ Vector2 TextServerFallback::font_get_glyph_advance(RID p_font_rid, int p_size, i
const HashMap<int32_t, FontGlyph> &gl = fd->cache[size]->glyph_map;
+ Vector2 ea;
+ if (fd->embolden != 0.0) {
+ ea.x = fd->embolden * float(size.x) / 64.0;
+ }
+
if (fd->msdf) {
- return gl[p_glyph].advance * (float)p_size / (float)fd->msdf_source_size;
+ return (gl[p_glyph].advance + ea) * (float)p_size / (float)fd->msdf_source_size;
} else if ((fd->subpixel_positioning == SUBPIXEL_POSITIONING_DISABLED) || (fd->subpixel_positioning == SUBPIXEL_POSITIONING_AUTO && size.x > SUBPIXEL_POSITIONING_ONE_HALF_MAX_SIZE)) {
- return gl[p_glyph].advance.round();
+ return (gl[p_glyph].advance + ea).round();
} else {
- return gl[p_glyph].advance;
+ return gl[p_glyph].advance + ea;
}
}