[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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
diff --git a/ChangeLog b/ChangeLog
index 60438b1..efb1406 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-09-06 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ [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 <wl@gnu.org>
[type1] MM fonts support exactly zero named instances (#48748).
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c
index f5cf7af..059a6bd 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 );