diff --git a/ChangeLog b/ChangeLog index 60438b17d..efb140633 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2016-09-06 Alexei Podtelezhnikov + + [smooth] Improve contour start (take 2). + + * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly + instead of... + (gray_start_cell): ... this function, which is removed. + (gray_convert_glyph): Make initial y-coordinate invalid. + 2016-09-06 Werner Lemberg [type1] MM fonts support exactly zero named instances (#48748). diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index f5cf7af56..059a6bde0 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -605,29 +605,6 @@ typedef ptrdiff_t FT_PtrDist; } - /*************************************************************************/ - /* */ - /* Start a new contour at a given cell. */ - /* */ - static void - gray_start_cell( RAS_ARG_ TCoord ex, - TCoord ey ) - { - if ( ex > ras.max_ex ) - ex = ras.max_ex; - - if ( ex < ras.min_ex ) - ex = ras.min_ex - 1; - - ras.area = 0; - ras.cover = 0; - ras.ex = ex - ras.min_ex; - ras.ey = ey - ras.min_ey; - ras.invalid = 0; - - gray_set_cell( RAS_VAR_ ex, ey ); - } - #ifndef FT_LONG64 /*************************************************************************/ @@ -1224,15 +1201,11 @@ typedef ptrdiff_t FT_PtrDist; TPos x, y; - /* record current cell, if any */ - if ( !ras.invalid ) - gray_record_cell( RAS_VAR ); - /* start to a new position */ x = UPSCALE( to->x ); y = UPSCALE( to->y ); - gray_start_cell( RAS_VAR_ TRUNC( x ), TRUNC( y ) ); + gray_set_cell( RAS_VAR_ TRUNC( x ), TRUNC( y ) ); ras.x = x; ras.y = y; @@ -1852,7 +1825,7 @@ typedef ptrdiff_t FT_PtrDist; ras.num_cells = 0; ras.invalid = 1; ras.min_ey = band[1]; - ras.max_ey = band[0]; + ras.max_ey = ras.ey = band[0]; ras.count_ey = width; error = gray_convert_glyph_inner( RAS_VAR );