|
|
|
@ -2616,22 +2616,36 @@ |
|
|
|
|
FT_Pos delta_y = FT_MulFix( deltas_y[j], apply ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* To avoid double adjustment of advance width or height, */ |
|
|
|
|
/* adjust phantom points only if there is no HVAR or VVAR */ |
|
|
|
|
/* table, respectively. */ |
|
|
|
|
if ( j != ( n_points - 3 ) || |
|
|
|
|
!( face->variation_support & TT_FACE_FLAG_VAR_HADVANCE ) ) |
|
|
|
|
outline->points[j].x += delta_x; |
|
|
|
|
if ( j != ( n_points - 2 ) || |
|
|
|
|
!( face->variation_support & TT_FACE_FLAG_VAR_LSB ) ) |
|
|
|
|
if ( j < n_points - 3 ) |
|
|
|
|
{ |
|
|
|
|
outline->points[j].x += delta_x; |
|
|
|
|
|
|
|
|
|
if ( j != ( n_points - 1 ) || |
|
|
|
|
!( face->variation_support & TT_FACE_FLAG_VAR_VADVANCE ) ) |
|
|
|
|
outline->points[j].y += delta_y; |
|
|
|
|
if ( j != ( n_points - 0 ) || |
|
|
|
|
!( face->variation_support & TT_FACE_FLAG_VAR_TSB ) ) |
|
|
|
|
outline->points[j].y += delta_y; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
/* To avoid double adjustment of advance width or height, */ |
|
|
|
|
/* adjust phantom points only if there is no HVAR or VVAR */ |
|
|
|
|
/* support, respectively. */ |
|
|
|
|
if ( j == ( n_points - 3 ) || |
|
|
|
|
!( face->variation_support & |
|
|
|
|
TT_FACE_FLAG_VAR_HADVANCE ) ) |
|
|
|
|
outline->points[j].x += delta_x; |
|
|
|
|
|
|
|
|
|
else if ( j == ( n_points - 2 ) || |
|
|
|
|
!( face->variation_support & |
|
|
|
|
TT_FACE_FLAG_VAR_LSB ) ) |
|
|
|
|
outline->points[j].x += delta_x; |
|
|
|
|
|
|
|
|
|
else if ( j == ( n_points - 1 ) || |
|
|
|
|
!( face->variation_support & |
|
|
|
|
TT_FACE_FLAG_VAR_VADVANCE ) ) |
|
|
|
|
outline->points[j].y += delta_y; |
|
|
|
|
|
|
|
|
|
else if ( j == ( n_points - 0 ) || |
|
|
|
|
!( face->variation_support & |
|
|
|
|
TT_FACE_FLAG_VAR_TSB ) ) |
|
|
|
|
outline->points[j].y += delta_y; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifdef FT_DEBUG_LEVEL_TRACE |
|
|
|
|
if ( delta_x || delta_y ) |
|
|
|
|