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

leonardo at ghostscript.com leonardo at ghostscript.com
Sun May 27 11:51:35 PDT 2007


Author: leonardo
Date: 2007-05-27 11:51:35 -0700 (Sun, 27 May 2007)
New Revision: 8008

Modified:
   trunk/gs/src/gxshade6.c
Log:
Fix (shadings) : Account inner poles for computing a tensor shading flattening.

DETAILS : 

While computing the neccessary decomposition level by
the parameter u, the old code ony accounted the curvity
of the patch boundary. However tensor patches may have 
a very curved interior with a slightly curved boundary.
This patch improves the raster in such cases.

EXPECTED DIFFERENCES :

Minor difference in shading color :
"446-01-fixed.ps" 
"483-05-fixed.ps" 


Modified: trunk/gs/src/gxshade6.c
===================================================================
--- trunk/gs/src/gxshade6.c	2007-05-27 17:59:43 UTC (rev 8007)
+++ trunk/gs/src/gxshade6.c	2007-05-27 18:51:35 UTC (rev 8008)
@@ -3777,8 +3777,10 @@
     kv[3] = curve_samples(pfs, &p.pole[0][3], 4, pfs->fixed_flat);
     kvm = max(max(kv[0], kv[1]), max(kv[2], kv[3]));
     ku[0] = curve_samples(pfs, p.pole[0], 1, pfs->fixed_flat);
+    ku[1] = curve_samples(pfs, p.pole[1], 1, pfs->fixed_flat);
+    ku[2] = curve_samples(pfs, p.pole[2], 1, pfs->fixed_flat);
     ku[3] = curve_samples(pfs, p.pole[3], 1, pfs->fixed_flat);
-    kum = max(ku[0], ku[3]);
+    kum = max(max(ku[0], ku[1]), max(ku[2], ku[3]));
     km = max(kvm, kum);
 #   if NOFILL_TEST
 	dbg_nofill = false;



More information about the gs-cvs mailing list