@ -1536,8 +1536,9 @@
/* points are different: we are just leaving an edge, thus */
/* record a new segment */
segment - > last = point ;
segment - > pos = ( FT_Short ) ( ( min_pos + max_pos ) > > 1 ) ;
segment - > last = point ;
segment - > pos = ( FT_Short ) ( ( min_pos + max_pos ) > > 1 ) ;
segment - > delta = ( FT_Short ) FT_ABS ( ( max_pos - min_pos ) > > 1 ) ;
/* a segment is round if either its first or last point */
/* is a control point, and the length of the on points */
@ -1966,6 +1967,7 @@
FT_Fixed scale ;
FT_Pos edge_distance_threshold ;
FT_Pos segment_length_threshold ;
FT_Pos segment_width_threshold ;
axis - > num_edges = 0 ;
@ -1987,9 +1989,15 @@
* corresponding threshold in font units .
*/
if ( dim = = AF_DIMENSION_HORZ )
segment_length_threshold = FT_DivFix ( 64 , hints - > y_scale ) ;
segment_length_threshold = FT_DivFix ( 64 , hints - > y_scale ) ;
else
segment_length_threshold = 0 ;
segment_length_threshold = 0 ;
/*
* Similarly , we ignore segments that have a width delta
* larger than 0.5 px ( i . e . , a width larger than 1 px ) .
*/
segment_width_threshold = FT_DivFix ( 32 , scale ) ;
/*********************************************************************/
/* */
@ -2022,9 +2030,10 @@
FT_Int ee ;
/* ignore too short segments and, in this loop, */
/* one-point segments without a direction */
/* ignore too short segments, too wide ones, and, in this loop, */
/* one-point segments without a direction */
if ( seg - > height < segment_length_threshold | |
seg - > delta > segment_width_threshold | |
seg - > dir = = AF_DIR_NONE )
continue ;