Properly handle phantom points for variation fonts (#56601).
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Scale phantom points if HVAR and/or VVAR is present.
This commit is contained in:
parent
05439f5cc6
commit
12e4307dc7
|
@ -1,3 +1,10 @@
|
||||||
|
2019-07-12 Ben Wagner <bungeman@google.com>
|
||||||
|
|
||||||
|
Properly handle phantom points for variation fonts (#56601).
|
||||||
|
|
||||||
|
* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Scale phantom
|
||||||
|
points if HVAR and/or VVAR is present.
|
||||||
|
|
||||||
2019-07-04 Werner Lemberg <wl@gnu.org>
|
2019-07-04 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
[psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).
|
[psaux] (2/2) Handle fonts that use SEAC for ligatures (#56580).
|
||||||
|
|
|
@ -1102,9 +1102,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
||||||
/* if we have a HVAR table, `pp1' and/or `pp2' are already adjusted */
|
/* if we have a HVAR table, `pp1' and/or `pp2' */
|
||||||
if ( !( loader->face->variation_support & TT_FACE_FLAG_VAR_HADVANCE ) ||
|
/* are already adjusted but unscaled */
|
||||||
!IS_HINTED( loader->load_flags ) )
|
if ( ( loader->face->variation_support & TT_FACE_FLAG_VAR_HADVANCE ) &&
|
||||||
|
IS_HINTED( loader->load_flags ) )
|
||||||
|
{
|
||||||
|
loader->pp1.x = FT_MulFix( loader->pp1.x, x_scale );
|
||||||
|
loader->pp2.x = FT_MulFix( loader->pp2.x, x_scale );
|
||||||
|
/* pp1.y and pp2.y are always zero */
|
||||||
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
loader->pp1 = outline->points[n_points - 4];
|
loader->pp1 = outline->points[n_points - 4];
|
||||||
|
@ -1112,9 +1119,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
||||||
/* if we have a VVAR table, `pp3' and/or `pp4' are already adjusted */
|
/* if we have a VVAR table, `pp3' and/or `pp4' */
|
||||||
if ( !( loader->face->variation_support & TT_FACE_FLAG_VAR_VADVANCE ) ||
|
/* are already adjusted but unscaled */
|
||||||
!IS_HINTED( loader->load_flags ) )
|
if ( ( loader->face->variation_support & TT_FACE_FLAG_VAR_VADVANCE ) &&
|
||||||
|
IS_HINTED( loader->load_flags ) )
|
||||||
|
{
|
||||||
|
loader->pp3.x = FT_MulFix( loader->pp3.x, x_scale );
|
||||||
|
loader->pp3.y = FT_MulFix( loader->pp3.y, y_scale );
|
||||||
|
loader->pp4.x = FT_MulFix( loader->pp4.x, x_scale );
|
||||||
|
loader->pp4.y = FT_MulFix( loader->pp4.y, y_scale );
|
||||||
|
}
|
||||||
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
loader->pp3 = outline->points[n_points - 2];
|
loader->pp3 = outline->points[n_points - 2];
|
||||||
|
|
Loading…
Reference in New Issue