mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-09 02:38:07 +02:00
[varfonts] Correctly (re)set variations of named instances
This commit is contained in:
parent
7125c4bf5e
commit
db946d1788
1 changed files with 10 additions and 2 deletions
|
|
@ -3660,11 +3660,19 @@ cairo_ft_apply_variations (FT_Face face,
|
|||
FT_Fixed *coords;
|
||||
unsigned int i;
|
||||
const char *p;
|
||||
unsigned int instance_id = face->face_index >> 16;
|
||||
|
||||
coords = malloc (sizeof (FT_Fixed) * ft_mm_var->num_axis);
|
||||
/* FIXME check coords. */
|
||||
|
||||
for (i = 0; i < ft_mm_var->num_axis; i++)
|
||||
coords[i] = ft_mm_var->axis[i].def;
|
||||
if (instance_id && instance_id <= ft_mm_var->num_namedstyles)
|
||||
{
|
||||
FT_Var_Named_Style *instance = &ft_mm_var->namedstyle[instance_id - 1];
|
||||
memcpy (coords, instance->coords, ft_mm_var->num_axis & sizeof (*coords));
|
||||
}
|
||||
else
|
||||
for (i = 0; i < ft_mm_var->num_axis; i++)
|
||||
coords[i] = ft_mm_var->axis[i].def;
|
||||
|
||||
p = variations;
|
||||
while (p && *p) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue