summaryrefslogtreecommitdiff
path: root/src/hb-ft.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/hb-ft.cc')
-rw-r--r--src/hb-ft.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 2b06c59b..30d28c09 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -36,6 +36,7 @@
#include "hb-cache-private.hh" // Maybe use in the future?
#include FT_ADVANCES_H
+#include FT_MULTIPLE_MASTERS_H
#include FT_TRUETYPE_TABLES_H
@@ -616,6 +617,19 @@ hb_ft_font_create (FT_Face ft_face,
ft_face->size->metrics.y_ppem);
#endif
+ FT_MM_Var *mm_var = NULL;
+ if (!FT_Get_MM_Var (ft_face, &mm_var)) {
+ FT_Fixed coords[mm_var->num_axis];
+ int hbCoords[mm_var->num_axis];
+ if (!FT_Get_Var_Blend_Coordinates (ft_face, mm_var->num_axis, coords)) {
+ for (int i = 0; i < mm_var->num_axis; ++i) {
+ hbCoords[i] = coords[i] >> 2;
+ }
+ hb_font_set_var_coords_normalized (font, hbCoords, mm_var->num_axis);
+ }
+ }
+ free (mm_var);
+
return font;
}