- From: Maxim Shemanarev <mcseem@antigrain.com>
- Date: Fri, 11 Nov 2005 13:01:10 -0500
- To: <www-svg@w3.org>
> Firefox can render nested markers just fine, as can Batik and ASV.
Yes, it can. It doesn't process overflow="visible" though, it always clips
it to the viewBox. Try this:
==============================
<?xml version="1.0" standalone="no"?>
<svg width="100%" height="100%" viewBox="0 0 400 400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<marker id="Swallowtail1"
viewBox="0 0 10 10" refX="4" refY="5"
markerUnits="strokeWidth"
markerWidth="4" markerHeight="3"
orient="auto"
overflow="visible">
<g stroke="blue" stroke-width="1.5" fill="none">
<path d="M 0 0 L 5 5 L 0 10" marker-start="url(#Swallowtail2)"
marker-end="url(#Swallowtail2)"/>
</g>
</marker>
<marker id="Swallowtail2"
viewBox="0 0 10 10" refX="4" refY="5"
markerUnits="strokeWidth"
markerWidth="4" markerHeight="3"
orient="auto"
overflow="visible">
<g stroke="blue" stroke-width="1.5" fill="none">
<path d="M 0 0 L 5 5 L 0 10"/>
</g>
</marker>
</defs>
<path d="M300 100 L 300 200" stroke="blue" stroke-width="8"
marker-end="url(#Swallowtail1)"/>
<path d="M100 200 L 100 100" stroke="blue" stroke-width="8"
marker-start="url(#Swallowtail1)"/>
</svg>
=====================================
And compare it with Adobe
> The trunk development of Firefox (not the 1.5 release branch) does
> implement <pattern>, though with some artifacts that seem at first glance
> to be
> caused by cairo.
I'm working on the Renesis project, see http://gosvg.net
And yes, I can confirm, rendering of patterns is very tricky. In fact, the
only appropriate way of doing it is to render a raster bitmap and then use
it as a texture. All other approaches are not effective enough. Just to
compare:
http://www.gosvg.net/wp-content/photos/pattern12_adobe.png
http://www.gosvg.net/wp-content/photos/pattern12_renesis.png
BTW, another question about FireFox SVG. Why is it so greedy? I have a 700K
SVG that mostly consists of lines (namely <line> elements), and it consumes
24 megs (right after start FireFox takes 18 megs, after loading this file it
eats 42 megs - it's 30x overhead!). And it works terribly slow. I have a 30
meg SVG file that I'm sure FireFox won't handle.
I can handle those things, for example, that very 30 meg SVG takes about 16
seconds to parse and 3 seconds to render, with only 40 megs of required
memory.
I would say, that the native XML DOM that SVG *implicitly* assumes is
totally useless in practice. A good SVG engine must be based on some custom,
compact and fast data model.
McSeem
Received on Friday, 11 November 2005 18:01:15 UTC