diff options
author | Werner Lemberg <wl@gnu.org> | 2010-10-15 20:44:15 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2010-10-15 20:44:15 +0200 |
commit | 34d61e8637f29b05fccae5464fa4414e62627b8e (patch) | |
tree | b228a1c508e4b6a26bcfe297cbfe40545619743b /src/smooth | |
parent | 463dddadfbc4a5d28b7983c69ddd840b72519325 (diff) |
Fix thinko in spline flattening.
FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
replace it everywhere with ONE_PIXEL/8.
Diffstat (limited to 'src/smooth')
-rw-r--r-- | src/smooth/ftgrays.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index 17d172f6..4477638d 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -91,11 +91,6 @@ #define FT_COMPONENT trace_smooth - /* The maximum distance of a curve from the chord, in 64ths of a pixel; */ - /* used when flattening curves. */ -#define FT_MAX_CURVE_DEVIATION 16 - - #ifdef _STANDALONE_ @@ -891,14 +886,14 @@ typedef ptrdiff_t FT_PtrDist; if ( dx < dy ) dx = dy; - if ( dx <= FT_MAX_CURVE_DEVIATION ) + if ( dx <= ONE_PIXEL / 8 ) { gray_render_line( RAS_VAR_ UPSCALE( to->x ), UPSCALE( to->y ) ); return; } level = 1; - dx /= FT_MAX_CURVE_DEVIATION; + dx /= ONE_PIXEL / 8; while ( dx > 1 ) { dx >>= 2; @@ -1074,7 +1069,7 @@ typedef ptrdiff_t FT_PtrDist; goto Split; /* Max deviation may be as much as (s/L) * 3/4 (if Hain's v = 1). */ - s_limit = L * (TPos)( FT_MAX_CURVE_DEVIATION / 0.75 ); + s_limit = L * (TPos)( ONE_PIXEL / 6 ); /* s is L * the perpendicular distance from P1 to the line P0-P3. */ dx1 = arc[1].x - arc[0].x; |