From 26648cebcd14bd26142ccfe5ac8c0be08a213671 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sat, 10 Sep 2016 02:11:05 -0700 Subject: [PATCH] [GX] Remove (partial) support for anisotropic variations It doesn't always work, not part of FreeType, and we were not going to expose it in the API anyway. Can always be added later. --- src/hb-font-private.hh | 3 +-- src/hb-font.cc | 17 ++++++----------- src/hb-ot-layout-common-private.hh | 9 ++++----- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/hb-font-private.hh b/src/hb-font-private.hh index 48dc72564..53671d78d 100644 --- a/src/hb-font-private.hh +++ b/src/hb-font-private.hh @@ -110,8 +110,7 @@ struct hb_font_t { /* Font variation coordinates. */ unsigned int num_coords; - int *x_coords; - int *y_coords; + int *coords; hb_font_funcs_t *klass; void *user_data; diff --git a/src/hb-font.cc b/src/hb-font.cc index 24ecb4502..f12dfb5d3 100644 --- a/src/hb-font.cc +++ b/src/hb-font.cc @@ -1197,8 +1197,7 @@ hb_font_get_empty (void) 0, /* y_ppem */ 0, /* num_coords */ - NULL, /* x_coords */ - NULL, /* y_coords */ + NULL, /* coords */ const_cast (&_hb_font_funcs_nil), /* klass */ NULL, /* user_data */ @@ -1254,10 +1253,8 @@ hb_font_destroy (hb_font_t *font) hb_face_destroy (font->face); hb_font_funcs_destroy (font->klass); - if (font->x_coords) - free (font->x_coords); - if (font->y_coords && font->y_coords != font->x_coords) - free (font->y_coords); + if (font->coords) + free (font->coords); free (font); } @@ -1564,15 +1561,13 @@ hb_font_set_var_coords_normalized (hb_font_t *font, if (unlikely (coords_length && !copy)) return; - if (font->x_coords) - free (font->x_coords); - if (font->y_coords && font->y_coords != font->x_coords) - free (font->y_coords); + if (font->coords) + free (font->coords); if (coords_length) memcpy (copy, coords, coords_length * sizeof (coords[0])); - font->x_coords = font->y_coords = copy; + font->coords = copy; font->num_coords = coords_length; } diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index fb99ec3e0..3c574af70 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -1584,10 +1584,10 @@ struct VariationDevice private: inline hb_position_t get_x_delta (hb_font_t *font, const VariationStore &store) const - { return font->em_scalef_x (get_delta (store, font->x_coords, font->num_coords)); } + { return font->em_scalef_x (get_delta (font, store)); } inline hb_position_t get_y_delta (hb_font_t *font, const VariationStore &store) const - { return font->em_scalef_y (get_delta (store, font->y_coords, font->num_coords)); } + { return font->em_scalef_y (get_delta (font, store)); } inline bool sanitize (hb_sanitize_context_t *c) const { @@ -1597,10 +1597,9 @@ struct VariationDevice private: - inline float get_delta (const VariationStore &store, - int *coords, unsigned int coord_count) const + inline float get_delta (hb_font_t *font, const VariationStore &store) const { - return store.get_delta (outerIndex, innerIndex, coords, coord_count); + return store.get_delta (outerIndex, innerIndex, font->coords, font->num_coords); } protected: