On Tue, 2013-12-03 at 18:04 -0800, Bryce Harrington wrote:
On Wed, Dec 04, 2013 at 12:32:51PM +1100, Nathan Hurst wrote:
On Tue, Dec 03, 2013 at 02:59:22PM +0100, Krzysztof Kosi??ski wrote:
The current rendering pipeline is in fact fairly well suited to animation, because it goes out of its way to only compute / draw the things which are necessary. If we are sticking to Cairo, it only needs some optimization and minor additions.
That's good to hear, you've done well :) So getting specific on canvas editing and animation would be a good intermediate goal.
A fairly big rewrite would be required if we wanted to support pluggable renderers. For instance, we could try adding alternative renderers based on Skia, Mozilla Azure, OpenVG or OpenGL (Cairo's OpenGL backend will not give us maximum performance, because the Cairo API does not correspond very well to how OpenGL works) or implementing some export formats in this way.
I would avoid skia, my experience is that opengl is much faster when used with care.
Interesting, do you have more details about this, or papers? I'm presently working on comparisons of skia vs. cairo-gl performance for work, so any definitive studies done here showing one way or the other would be handy.
Note that I do not know enough OpenGL right now to implement an SVG renderer in it, or much OpenGL at all, though I could perhaps propose this as my Master's thesis in CS.
That sounds like a good project. If you are interested in this, ping me, I've done a little bit of work on vector renderers on opengl.
This is a topic that interests me as well, for work. If there's any links to papers or interesting examples to share, I'd appreciate.
Nvidia has an OpenGL extension that supports SVG directly.[1] They were interested in getting this into the OpenGL standard. I don't know the current state of this but it might be interesting in the future. I was asked by an Nvidia rep if Inkscape was interested in this but I told him probably not if it was limited to just Nvidia GPUs. I also recommended that he talk to the Cairo folks.
Tav
[1] https://developer.nvidia.com/gpu-accelerated-path-rendering