[cairo-commit] [cairo-www] src/missing.mdwn
cworth at freedesktop.org
Thu Aug 21 06:10:26 PDT 2008
src/missing.mdwn | 50 ++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 44 insertions(+), 6 deletions(-)
Author: Carl Worth <cworth at freedesktop.org>
Date: Thu Aug 21 06:10:25 2008 -0700
web commit by gerdusvanzyl: filled it out a bit more
diff --git a/src/missing.mdwn b/src/missing.mdwn
index f11d62e..87825fe 100644
@@ -1,16 +1,54 @@
[[meta title="Missing features"]]
-This page lists all features and API missing from cairo. Where missing is defined as features that large/common users of cairo need to provide fallbacks and work arounds for when using cairo. For example SVG libraries like librsvg uses fallbacks to implement bitmap filters and certain blend modes.
+This page lists all features and API missing from cairo. Where missing is defined as features that large/common users of cairo need to provide fallbacks and work arounds for when using cairo. For example SVG libraries like librsvg uses fallbacks to implement bitmap filters and certain blend modes. The aim is make sure things that fall within the scope of cairo is indeed done in cairo.
-* Blend modes
-* Bitmap filters - most notably blur
+Target users: librsvg,gecko/mozilla,inkscape
-# Blend Modes
-* List of missing blend modes todo.
# Implementation Considerations
+Users of Photoshop will immediate recognize those.
+The SVG specification: http://www.w3.org/TR/2003/WD-SVG12-20030715/#compositing
+and see this page for modes and the algorithms:
+Bitmap filters are harder to quantify since the amount of possible filters are infinite. The aim should be possibly to implement the most commonly used filters eg. blur and provide some kind of callback to implement arbitrary effects. Multiple filters per pattern/surface is also required.
+The SVG filters http://www.w3.org/TR/SVGFilter12/
+Box blur - see http://www.kaourantin.net/2005/08/implementing-blur-filter-in-flash.html
+An interesting development related to this is the Pixel Bender toolkit (http://labs.adobe.com/wiki/index.php/Pixel_Bender_Toolkit) which allows bitmap effects and blend modes to be written in a GLSL derived pixel language that can be executed on the CPU or the GPU. There are rumours of it going to be open sourced. LLVM could be used to implement something similar while taking advantage of optimizations on multiple architectures.
+Speaking of LLVM, it's wat Apple uses in its software accross hardware (mac,iphone,macpro) to provide fast software implementations of features lacking in GPU on specific hardware.
+Java2D has a similar flexible method.
+--Cairo API Considerations--
More information about the cairo-commit