|
@@ -1830,6 +1830,18 @@ bool TextServerAdvanced::_ensure_cache_for_size(FontAdvanced *p_font_data, const
|
|
|
p_font_data->face_init = true;
|
|
|
}
|
|
|
|
|
|
+#if defined(MACOS_ENABLED) || defined(IOS_ENABLED)
|
|
|
+ if (p_font_data->font_name == ".Apple Color Emoji UI" || p_font_data->font_name == "Apple Color Emoji") {
|
|
|
+ // The baseline offset is missing from the Apple Color Emoji UI font data, so add it manually.
|
|
|
+ // This issue doesn't occur with other system emoji fonts.
|
|
|
+ if (!FT_Load_Glyph(fd->face, FT_Get_Char_Index(fd->face, 0x1F92E), FT_LOAD_DEFAULT | FT_LOAD_COLOR)) {
|
|
|
+ if (fd->face->glyph->metrics.horiBearingY == fd->face->glyph->metrics.height) {
|
|
|
+ p_font_data->baseline_offset = 0.15;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
// Write variations.
|
|
|
if (fd->face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS) {
|
|
|
FT_MM_Var *amaster;
|