This Bug is to track implementation of the 'static' CSS property from the SVG 1.2 spec. This property is used to identify portions of the rendering tree that are static (or nearly so) that the rendering engine may find it advnatagous to cache a raster version of the subtree for later rendering requests.
Created attachment 16380 [details] Patch to 'trunk' or 'branches/svg11' for static support. This is an implementation of the 'static' property as an XML attribute in the batik extension namespace. Right now it simply tosses the offscreen rendering if anything changes under the 'static' element. It also is only implemented for 'g', 'svg'(?), and 'use'. The patch modifies the 'towers' solitare game to make use of the 'static' keyword to acellerate rendering (although this is really not a great example of what it is ment for, Andreas has those ;). A simple example of using this: <svg width="800" height="600" viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg" xmlns:batik="http://xml.apache.org/batik/ext" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="background" batik:static="true"> <.....> </g> </svg>
Created attachment 16388 [details] Updated Static patch that works for SVG elements. This adds support for 'batik:static' on 'svg' elements. Also fixes the default card set in the towers example to take maximum advantage of 'batik:static'.
Created attachment 16590 [details] Patch to provide static attribute in svg11 branch. This uses the 'optimial' buffered image type on Windows.
Created attachment 16591 [details] Patch to 'trunk' to add support for 'static' attribute This uses the 'optimial' buffered image type on Windows.
(In reply to comment #0) > This Bug is to track implementation of the 'static' > CSS property from the SVG 1.2 spec. Should this be re-targeted to address the "buffered-rendering" property [1] of SVG Tiny 1.2? I'm not sure if this can also be set through a CSS property (as Tiny 1.2 doesn't mandate a CSS engine) but, at least, the SVG specification states that buffered-rendering isn't part of the CSS2 specification [2] (nor apparently CSS3 also, from a quick search). [1] http://www.w3.org/TR/SVGTiny12/painting.html#BufferedRenderingProperty [2] http://www.w3.org/TR/SVGTiny12/styling.html
This is a neat feature I'd like to see in the 1.8 release, so setting as blocker. Modifying the current path to match the SVG 1.2 Tiny specification should be straightforward and my doubt is if we should make this available for SVG 1.2 only or for SVG 1.1 as well (although that might be a non-conformance with the spec.). Thoughts?