[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