2011/7/9 Krzysztof KosiĆski <tweenk.pl@...400...>:
Hello all
The branch at lp:~tweenk/inkscape/gsoc-caching contains the first testable features of my performance improvement project. The SVG drawing is rendered to a separate surface, so it doesn't need to be redrawn every time there is an editing control drawn over it. The responsiveness of path highlighting in complex documents is improved dramatically. If you turn off real-time updates of paths and leave only real-time updates of outlines on in node editor preferences, there is also a significant improvement in responsiveness when editing complex filtered paths.
To fix some breakage with clipped groups (appears to be a Cairo problem, but I couldn't isolate it) I have substantially changed the rendering pipeline. Clipping paths are now rasterized and the drawing is composited with them using the IN operator. This allows us to handle nested clipping paths and clip-rule correctly. As an unrelated improvement, text objects can now be used as clipping paths.
Cute.
I played with clip-rule awhile back (https://bugs.launchpad.net/inkscape/+bug/171243), but I never finished the rendering part, partly because of the crazy semantics of multiple even-odd paths aren't compatible with Cairo's clipping.
Can you render the test files here correctly?
https://bugzilla.gnome.org/show_bug.cgi?id=650213
--Andy