This commit is contained in:
Behdad Esfahbod 2017-01-22 17:47:49 -08:00
parent d2f249e745
commit 7647a05a0b
4 changed files with 15 additions and 8 deletions

View File

@ -1639,9 +1639,12 @@ hb_font_set_var_coords_normalized (hb_font_t *font,
/**
* hb_font_set_var_coords_normalized:
*
* Return value is valid as long as variation coordinates of the font
* are not modified.
*
* Since: 1.4.2
*/
int *
const int *
hb_font_get_var_coords_normalized (hb_font_t *font,
unsigned int *length)
{

View File

@ -618,7 +618,7 @@ hb_font_set_var_coords_normalized (hb_font_t *font,
const int *coords, /* 2.14 normalized */
unsigned int coords_length);
HB_EXTERN int *
HB_EXTERN const int *
hb_font_get_var_coords_normalized (hb_font_t *font,
unsigned int *length);

View File

@ -742,7 +742,7 @@ hb_ft_font_set_funcs (hb_font_t *font)
}
unsigned int num_coords;
int *coords = hb_font_get_var_coords_normalized (font, &num_coords);
const int *coords = hb_font_get_var_coords_normalized (font, &num_coords);
if (num_coords)
{
FT_Fixed *ft_coords = (FT_Fixed *) calloc (num_coords, sizeof (FT_Fixed));

View File

@ -104,13 +104,17 @@ helper_cairo_create_scaled_font (const font_options_t *font_opts)
else
{
unsigned int num_coords;
int *coords = hb_font_get_var_coords_normalized (font, &num_coords);
const int *coords = hb_font_get_var_coords_normalized (font, &num_coords);
if (num_coords)
{
FT_Fixed ft_coords[num_coords];
for (unsigned int i = 0; i < num_coords; i++)
ft_coords[i] = coords[i] << 2;
FT_Set_Var_Blend_Coordinates (ft_face, num_coords, ft_coords);
FT_Fixed *ft_coords = (FT_Fixed *) calloc (num_coords, sizeof (FT_Fixed));
if (ft_coords)
{
for (unsigned int i = 0; i < num_coords; i++)
ft_coords[i] = coords[i] << 2;
FT_Set_Var_Blend_Coordinates (ft_face, num_coords, ft_coords);
free (ft_coords);
}
}
cairo_face = cairo_ft_font_face_create_for_ft_face (ft_face, 0);