shithub: freetype+ttf2subf

Download patch

ref: 91015cb41d8f56777f93394f5a60914bc0c0f330
parent: d74440a327d6437b5eecd7d552576dbf22e12028
author: Alexei Podtelezhnikov <[email protected]>
date: Sat Oct 21 18:57:43 EDT 2017

[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.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2017-10-20  Alexei Podtelezhnikov  <[email protected]>
 
+	[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  <[email protected]>
+
 	[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
 
 	* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
@@ -43,7 +55,7 @@
 2017-10-14  Alexei Podtelezhnikov  <[email protected]>
 
 	* 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  <[email protected]>
 
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -582,8 +582,8 @@
     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;