[truetype] Fix handling of design coordinates (#51127).
* src/truetype/ttgxvar.c (tt_set_mm_blend): Compute all design coordinates if we have to create the `blends->coord' array. (TT_Get_MM_Blend, TT_Get_Var_Design): Select default instance coordinates if no instance is selected yet.
This commit is contained in:
parent
082f2faf50
commit
a9331c0f4d
|
@ -1,3 +1,12 @@
|
||||||
|
2017-05-27 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[truetype] Fix handling of design coordinates (#51127).
|
||||||
|
|
||||||
|
* src/truetype/ttgxvar.c (tt_set_mm_blend): Compute all design
|
||||||
|
coordinates if we have to create the `blends->coord' array.
|
||||||
|
(TT_Get_MM_Blend, TT_Get_Var_Design): Select default instance
|
||||||
|
coordinates if no instance is selected yet.
|
||||||
|
|
||||||
2017-05-24 Werner Lemberg <wl@gnu.org>
|
2017-05-24 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[bdf, pcf] Support ISO646.1991-IRV character encoding (aka ASCII).
|
[bdf, pcf] Support ISO646.1991-IRV character encoding (aka ASCII).
|
||||||
|
|
|
@ -2281,7 +2281,10 @@
|
||||||
GX_Blend blend;
|
GX_Blend blend;
|
||||||
FT_MM_Var* mmvar;
|
FT_MM_Var* mmvar;
|
||||||
FT_UInt i, j;
|
FT_UInt i, j;
|
||||||
FT_Bool is_default_instance = 1;
|
|
||||||
|
FT_Bool is_default_instance = TRUE;
|
||||||
|
FT_Bool all_design_coords = FALSE;
|
||||||
|
|
||||||
FT_Memory memory = face->root.memory;
|
FT_Memory memory = face->root.memory;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
@ -2327,7 +2330,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( coords[i] != 0 )
|
if ( coords[i] != 0 )
|
||||||
is_default_instance = 0;
|
is_default_instance = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
FT_TRACE5(( "\n" ));
|
FT_TRACE5(( "\n" ));
|
||||||
|
@ -2340,6 +2343,9 @@
|
||||||
{
|
{
|
||||||
if ( FT_NEW_ARRAY( blend->coords, mmvar->num_axis ) )
|
if ( FT_NEW_ARRAY( blend->coords, mmvar->num_axis ) )
|
||||||
goto Exit;
|
goto Exit;
|
||||||
|
|
||||||
|
/* the first time we have to compute all design coordinates */
|
||||||
|
all_design_coords = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !blend->normalizedcoords )
|
if ( !blend->normalizedcoords )
|
||||||
|
@ -2388,7 +2394,7 @@
|
||||||
|
|
||||||
if ( set_design_coords )
|
if ( set_design_coords )
|
||||||
ft_var_to_design( face,
|
ft_var_to_design( face,
|
||||||
num_coords,
|
all_design_coords ? blend->num_axis : num_coords,
|
||||||
blend->normalizedcoords,
|
blend->normalizedcoords,
|
||||||
blend->coords );
|
blend->coords );
|
||||||
|
|
||||||
|
@ -2529,6 +2535,14 @@
|
||||||
|
|
||||||
blend = face->blend;
|
blend = face->blend;
|
||||||
|
|
||||||
|
if ( !blend->coords )
|
||||||
|
{
|
||||||
|
/* select default instance coordinates */
|
||||||
|
/* if no instance is selected yet */
|
||||||
|
if ( FT_SET_ERROR( tt_set_mm_blend( face, 0, NULL, 1 ) ) )
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
nc = num_coords;
|
nc = num_coords;
|
||||||
if ( num_coords > blend->num_axis )
|
if ( num_coords > blend->num_axis )
|
||||||
{
|
{
|
||||||
|
@ -2686,6 +2700,14 @@
|
||||||
|
|
||||||
blend = face->blend;
|
blend = face->blend;
|
||||||
|
|
||||||
|
if ( !blend->coords )
|
||||||
|
{
|
||||||
|
/* select default instance coordinates */
|
||||||
|
/* if no instance is selected yet */
|
||||||
|
if ( FT_SET_ERROR( tt_set_mm_blend( face, 0, NULL, 1 ) ) )
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
nc = num_coords;
|
nc = num_coords;
|
||||||
if ( num_coords > blend->num_axis )
|
if ( num_coords > blend->num_axis )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue