On Tue, 2010-09-07 at 09:24 -0700, Joshua A. Andler wrote:
On Tue, 2010-09-07 at 18:14 +0200, Krzysztof KosiĆski wrote:
2010/9/7 Joshua A. Andler <scislac@...400...>:
I think that we need to have a configure flag for diffusion curves and other proposed SVG 2.0 features (I seem to recall seeing someone bringing up the spiral gradients too as a thought, so maybe that patch could get integrated after the proposed config modification).
Not a good idea. I think this will lead to another Inkboard situation.
Inkboard had a number of issues, but the flag for compiling it was not one of them. The lack of support for the data throughput on the jabber server side led more to it dying (as well as a lack of continued developer commitment to maintenance) than it being an optional feature. I seem to recall that it was even distributed a few years back in Ubuntu (and possibly other distros) with the feature enabled.
We should finally implement correct svg:switch handling and provide fallbacks in the document. Additionally, there should be an option to choose the SVG version in which you want to save. When saving as SVG 1.1, diffusion curves would be saved with bitmap fallbacks.
I agree with the svg:switch part (long overdue), but I have a feeling that the bitmap fallbacks will not be liked in the same way it wasn't liked when brought up for the spiral gradient feature.
I believe the correct way of implementing diffusion curves is within the Inkscape name space or with a prefix such as used by mozilla and webkit for rounded corners. If it becomes a part of the SVG standard then the prefix can be removed.
I am not sure that you can handle fallbacks with switches as I don't think there is a way to define custom tests. One thing that was talked about at yesterdays SVG working group meeting was how to handle fallbacks for tags that are not understood. Are children of unknown tags rendered? This isn't clearly defined in SVG and the browsers have implemented it differently. There was a strong argument that children should be rendered from the perspective of people extending SVG for mapping purposes. They want a tag that has all the map projection information that would wrap the map content. The tag would be used by special mapping renderers to transform the SVG coordinates but would fall back gracefully to displaying the untransformed SVG. If all the browser implementers agree (which is a possibility) then you could have something like this:
<inkscape-diffusion-curve ...> <!-- fallback --> <image ....> </inkscape-diffusion-curve>
But the problem here is that images are not treated like paint servers (this will probably change) so some kind of clipping would be involved.
A first step to implementing diffusion curves is to implement gradients along a path. And a gradient along a path could be used to simulate a spiral gradient.
Oh, I don't want to discourage getting switches to work... they would be very useful for things like providing fallback for filters which IE9 won't support.
Tav