diff --git a/ChangeLog b/ChangeLog index 7340978ce..afe63fc84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2017-10-20 Alexei Podtelezhnikov + + [smooth] Improve complex rendering at high ppem. + + At large sizes almost but not exactly horizontal segments can quickly + drain the rendering pool. This patch at least avoids filling the pool + with trivial cells. Beyond this, we can only increase the pool size. + + Reported, analyzed, and tested by Colin Fahey. + + * src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells. + 2017-10-20 Alexei Podtelezhnikov [base] Improve tracing in FT_Load_Glyph, FT_*_Size. @@ -43,7 +55,7 @@ 2017-10-14 Alexei Podtelezhnikov * builds/windows/ftdebug.c (FT_Message): Print to stderr. - * builds/wince/ftdebug.c (FT_Message): Ditto. + * builds/wince/ftdebug.c (FT_Message): Ditto. 2017-10-14 Behdad Esfahbod diff --git a/src/smooth/ftgrays.c b/src/smooth/ftgrays.c index e84e38d85..fa488ecb9 100644 --- a/src/smooth/ftgrays.c +++ b/src/smooth/ftgrays.c @@ -582,8 +582,8 @@ typedef ptrdiff_t FT_PtrDist; if ( ex < ras.min_ex ) ex = ras.min_ex - 1; - /* record the current one if it is valid */ - if ( !ras.invalid ) + /* record the current one if it is substantial and valid */ + if ( ( ras.area || ras.cover ) && !ras.invalid ) gray_record_cell( RAS_VAR ); ras.area = 0;