[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.
This commit is contained in:
Behdad Esfahbod 2016-09-10 02:11:05 -07:00
parent c22176d4ba
commit 26648cebcd
3 changed files with 11 additions and 18 deletions

View File

@ -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;

View File

@ -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_t *> (&_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;
}

View File

@ -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: