[gs-cvs] rev 8109 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Thu Jul 5 23:50:16 PDT 2007


Author: leonardo
Date: 2007-07-05 23:50:15 -0700 (Thu, 05 Jul 2007)
New Revision: 8109

Modified:
   trunk/gs/src/gxclpath.c
Log:
Fix : A wrong path filling.

DETAILS :

Bug 689317 "A wrong rendering of a path".

gx_path_merge_contacting_contours didn't account implicit closepath
with non-zero length. Due to that the filling algorithm could
recieve a path with a missed segment. It caused some areas
are missed while filling.

This fix is important for restoring high level clist objects,
which were disabled with rev 5056 change to gdevprn.c .

This fix inserts a line segments at the place of implicit closepath
before merging contours.

Minor change : improving documentation about
gx_path_merge_contacting_contours. 

EXPECTED DIFFERENCES :

None.


Modified: trunk/gs/src/gxclpath.c
===================================================================
--- trunk/gs/src/gxclpath.c	2007-07-06 06:00:17 UTC (rev 8108)
+++ trunk/gs/src/gxclpath.c	2007-07-06 06:50:15 UTC (rev 8109)
@@ -1271,6 +1271,14 @@
 		     * ends.
 		     */
 		    set_first_point();
+		    /*
+		     * If implicit_close == true, we don't need an explicit closepath,
+		     * because the filling algorithm will close subpath automatically.
+		     * Otherwise, if open < 0, we have an empty closed path.
+		     * If side != 0, it is outside the band, so we can 
+		     * safely skip it, because the band has been expanded
+		     * with line width.
+		     */
 		    if (side != 0) {
 			open = 0;
 			continue;



More information about the gs-cvs mailing list