Bug 36627 - [PATCH] Implementation of 'static' from SVG 1.2
Summary: [PATCH] Implementation of 'static' from SVG 1.2
Status: NEW
Alias: None
Product: Batik - Now in Jira
Classification: Unclassified
Component: (RFE) Request For Extension (show other bugs)
Version: 1.8
Hardware: Other other
: P2 normal
Target Milestone: ---
Assignee: Batik Developer's Mailing list
URL:
Keywords: PatchAvailable
Depends on:
Blocks: 50045
  Show dependency tree
 
Reported: 2005-09-13 01:41 UTC by Thomas Deweese
Modified: 2010-10-05 16:32 UTC (History)
0 users



Attachments
Patch to 'trunk' or 'branches/svg11' for static support. (32.80 KB, patch)
2005-09-13 01:48 UTC, Thomas Deweese
Details | Diff
Updated Static patch that works for SVG elements. (35.67 KB, patch)
2005-09-13 15:33 UTC, Thomas Deweese
Details | Diff
Patch to provide static attribute in svg11 branch. (34.71 KB, patch)
2005-10-05 03:10 UTC, Thomas Deweese
Details | Diff
Patch to 'trunk' to add support for 'static' attribute (34.71 KB, patch)
2005-10-05 03:11 UTC, Thomas Deweese
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Deweese 2005-09-13 01:41:37 UTC
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.
Comment 1 Thomas Deweese 2005-09-13 01:48:17 UTC
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>
Comment 2 Thomas Deweese 2005-09-13 15:33:02 UTC
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'.
Comment 3 Thomas Deweese 2005-10-05 03:10:24 UTC
Created attachment 16590 [details]
Patch to provide static attribute in svg11 branch.

This uses the 'optimial' buffered image type on Windows.
Comment 4 Thomas Deweese 2005-10-05 03:11:48 UTC
Created attachment 16591 [details]
Patch to 'trunk' to add support for 'static' attribute

This uses the 'optimial' buffered image type on Windows.
Comment 5 Helder Magalhães 2009-03-23 11:28:17 UTC
(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
Comment 6 Helder Magalhães 2010-10-05 16:32:47 UTC
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?