[truetype] Fix GX delta tracing.
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Trace relative point movements.
This commit is contained in:
parent
f147fb2881
commit
a3b61253a7
|
@ -1,4 +1,11 @@
|
||||||
2016-07-14 Behdad Esfahbod <behdad@behdad.org>
|
2016-07-16 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[truetype] Fix GX delta tracing.
|
||||||
|
|
||||||
|
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Trace
|
||||||
|
relative point movements.
|
||||||
|
|
||||||
|
2016-07-16 Behdad Esfahbod <behdad@behdad.org>
|
||||||
|
|
||||||
[truetype] More fixes for GX.
|
[truetype] More fixes for GX.
|
||||||
|
|
||||||
|
|
|
@ -2018,22 +2018,20 @@
|
||||||
/* this means that there are deltas for every point in the glyph */
|
/* this means that there are deltas for every point in the glyph */
|
||||||
for ( j = 0; j < n_points; j++ )
|
for ( j = 0; j < n_points; j++ )
|
||||||
{
|
{
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
FT_Pos delta_x = FT_MulFix( deltas_x[j], apply );
|
||||||
FT_Vector point_org = points_org[j];
|
FT_Pos delta_y = FT_MulFix( deltas_y[j], apply );
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
outline->points[j].x += FT_MulFix( deltas_x[j], apply );
|
outline->points[j].x += delta_x;
|
||||||
outline->points[j].y += FT_MulFix( deltas_y[j], apply );
|
outline->points[j].y += delta_y;
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||||
if ( ( point_org.x != outline->points[j].x ) ||
|
if ( delta_x || delta_y )
|
||||||
( point_org.y != outline->points[j].y ) )
|
|
||||||
{
|
{
|
||||||
FT_TRACE7(( " %d: (%d, %d) -> (%d, %d)\n",
|
FT_TRACE7(( " %d: (%d, %d) -> (%d, %d)\n",
|
||||||
j,
|
j,
|
||||||
point_org.x,
|
outline->points[j].x - delta_x,
|
||||||
point_org.y,
|
outline->points[j].y - delta_y,
|
||||||
outline->points[j].x,
|
outline->points[j].x,
|
||||||
outline->points[j].y ));
|
outline->points[j].y ));
|
||||||
count++;
|
count++;
|
||||||
|
@ -2086,30 +2084,32 @@
|
||||||
points_org,
|
points_org,
|
||||||
has_delta );
|
has_delta );
|
||||||
|
|
||||||
for ( j = 0; j < n_points; j++ )
|
|
||||||
{
|
|
||||||
outline->points[j].x += points_out[j].x - points_org[j].x;
|
|
||||||
outline->points[j].y += points_out[j].y - points_org[j].y;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef FT_DEBUG_LEVEL_TRACE
|
|
||||||
FT_TRACE7(( " point deltas:\n" ));
|
FT_TRACE7(( " point deltas:\n" ));
|
||||||
|
|
||||||
for ( j = 0; j < n_points; j++)
|
for ( j = 0; j < n_points; j++ )
|
||||||
{
|
{
|
||||||
if ( ( points_org[j].x != outline->points[j].x ) ||
|
FT_Pos delta_x = points_out[j].x - points_org[j].x;
|
||||||
( points_org[j].y != outline->points[j].y ) )
|
FT_Pos delta_y = points_out[j].y - points_org[j].y;
|
||||||
|
|
||||||
|
|
||||||
|
outline->points[j].x += delta_x;
|
||||||
|
outline->points[j].y += delta_y;
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||||
|
if ( delta_x || delta_y )
|
||||||
{
|
{
|
||||||
FT_TRACE7(( " %d: (%d, %d) -> (%d, %d)\n",
|
FT_TRACE7(( " %d: (%d, %d) -> (%d, %d)\n",
|
||||||
j,
|
j,
|
||||||
points_org[j].x,
|
outline->points[j].x - delta_x,
|
||||||
points_org[j].y,
|
outline->points[j].y - delta_y,
|
||||||
outline->points[j].x,
|
outline->points[j].x,
|
||||||
outline->points[j].y ));
|
outline->points[j].y ));
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||||
if ( !count )
|
if ( !count )
|
||||||
FT_TRACE7(( " none\n" ));
|
FT_TRACE7(( " none\n" ));
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue