[cairo-commit] [cairo-www] src/missing.mdwn

Carl Worth cworth at freedesktop.org
Thu Aug 21 06:10:26 PDT 2008


 src/missing.mdwn |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 44 insertions(+), 6 deletions(-)

New commits:
commit f9dcfe9d476dd85fe1ad19cf25af6ce048be9093
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
--- a/src/missing.mdwn
+++ b/src/missing.mdwn
@@ -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
+<<<<<<< HEAD:src/missing.mdwn
 
+Target users: librsvg,gecko/mozilla,inkscape
+>>>>>>> dd0b3272c054ec20c865624cbbea59f7a051447c:src/missing.mdwn
 
-# Blend Modes
-
-* List of missing blend modes todo.
+List References:
+http://lists.freedesktop.org/archives/cairo/2007-April/010325.html
+http://lists.freedesktop.org/archives/cairo/2007-January/009268.html
 
+<<<<<<< HEAD:src/missing.mdwn
 Discussion: <http://lists.freedesktop.org/archives/cairo/2007-January/009268.html>
 
 
 # Implementation Considerations
+=======
+--Blend Modes--
+see http://www.kaourantin.net/2005/09/some-word-on-blend-modes-in-flash.html
+* Multiply
+* Screen
+* Darken
+* Lighten
+* Hardlight
+* Overlay
+* Difference
+* Add
+* Subtract
+
+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:
+http://www.pegtop.net/delphi/articles/blendmodes/
+
+--Bitmap Filters--
+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
+
+
+--Implementation Considerations--
+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--
+?
+>>>>>>> dd0b3272c054ec20c865624cbbea59f7a051447c:src/missing.mdwn


More information about the cairo-commit mailing list