[cairo-commit] [cairo-www] src/summerofcode

Carl Worth cworth at freedesktop.org
Wed Mar 19 06:53:34 PDT 2008


 src/summerofcode/ideas.mdwn |   22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

New commits:
commit 7c060f20e9f4d7d35bbaa7e3a7cd095634217788
Author: Carl Worth <cworth at freedesktop.org>
Date:   Wed Mar 19 06:53:34 2008 -0700

    web commit by ajohnson: Add more detail to Coon Mesh Gradient idea

diff --git a/src/summerofcode/ideas.mdwn b/src/summerofcode/ideas.mdwn
index 7bd0d2a..b3469ee 100644
--- a/src/summerofcode/ideas.mdwn
+++ b/src/summerofcode/ideas.mdwn
@@ -140,13 +140,25 @@ challenge you're looking for.
     Conformance could be checked by running the test output through various validators:
     [SVG validator](http://wiki.svg.org/SVG_Validator).
 
-  * [Hard] Add support for programmatic patterns, (ie. arbitrary gradients).
+  * [Hard] Add support for PDF/PostScript Type 6 (Coons patch mesh) and/or Type 7 (Tensor-Product patch mesh) shading functions to the image backend
 
-    This should likely be modeled after PostScript Type 6 and Type 7
-    shading functions, (coons patch and tensor-product patch
-    meshes). See the [PostScript Language
+    The Type 6 shading is a special case of the Type 7 shading so only implementing Type 7 may be all that is required.
+ 
+    One possible solution would be to create a triangle mesh (similar to Type 4 shadings) from the Type 7 patch mesh and shade the triangles using Gouraud shading.
+    
+    The [Poppler](http://poppler.freedesktop.org/) source may be used to get an idea how Poppler renders these gradients . However the approach Poppler uses of recursively breaking each patch into smaller patches then filling the tiny patches with a solid color is not appropriate for cairo due to the visible seams between patches due to antialising.
+
+    The algorithm for Gouraud shading is in many books on computer graphics.
+
+    Useful references:
+
+    [PostScript Language
     Reference](http://www.adobe.com/products/postscript/pdfs/PLRM.pdf)
-    for details.
+
+    [PDF Reference](http://www.adobe.com/devnet/pdf/pdf_reference.html)
+
+    
+
 
   * [Hard ?] Implement path operations like combine/intersect/overlay
 


More information about the cairo-commit mailing list