![](https://secure.gravatar.com/avatar/6d49ce786f35e98411da1abc6ae0d288.jpg?s=120&d=mm&r=g)
Hello,
I have been lurking in this mailing list for a while and commented little, but the subject of performance peeked my interest. I've done some research into 2D hardware acceleration, both in implementing my own vector rasterizers using 3D hardware and shader programs, and through 3rd party 2D/3D apis (some of which use 3D hardware as well).
My conclusion is that 3D hardware can indeed greatly improve 2D rendering performance. I'd really like to see these great speed improvements pushed into a project like inkscape someday, but I am generally not an open source developer (I'm happily stuck in the world of Delphi programming).
My recommendations would be the following:
1. Look into the simple optimization of using shader programs to generate inkscapes polygon fills, especially when they involve any kind of gradients. I have written all the cross platform glsl shaders to handle any conceivable fill type including linear, radial, and cone with reflect, repeat, and clamp end options. I can donate that code as a starting point if anyone would like to take a look at it.
2. Get the cario guys interested in rolling hardware support into the cairo api. I've talked with them about a hardware openvg backend before. Maybe someone well respected from the inkscape can motivate them to get moving in that direction.
3. Take a look into openvg. I believe Trolltech has done some work on implementing that api in Qt. I used the Amanith openvg render and it works okay in opengl mode. That's another thing to look into.
4. And finally, someone might want to check out the evil Microsoft Direct2D api. I know it's locked into Windows, but it sure should take care of everything you'd ever need, and be blazing fast too boot.
I'll leave you with some screenshots of my glsl fill shaders in action:
http://imagebot.org/snapshops/colorful-radial-gradient-shader.jpg http://imagebot.org/snapshops/blend-gradients.jpg http://imagebot.org/snapshops/linear-gradient-reflect-brush-shader.jpg http://imagebot.org/snapshops/radial-gradient-reflect-brush-shader.jpg