svgl

svgl is a library that displays SVG graphics using OpenGL, and is used to implement demanding interaction techniques, such as ZUI, or see-through tools. It is available on unix platforms (Linux, MacOSX) and Windows (using cygwin), under the LGPL license.
svgl is part of the indigo project.

download

sources are hosted on sourceforge: http://sf.net/projects/svgl
in order to build it, you need glft and svgl:

$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/svgl login
passwd: <Hit Enter>
$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/svgl co glft
$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/svgl co svgl

follow instructions in glft/README and svgl/README.

SourceForge.net Logo

screenshots

The tiger edited with a toolglass.

 

status

consider it as alpha, though it works with quite a lot of usual examples, like the Scalable Gorilla, the BlueSphere and the KDE Crystal icons set.

rendering:

a lot of svg 1.0 features are implemented: simples shapes, path, gradient, clipping, viewBox, opacity, <use>, animations etc.
fonts are handled by the glft companion library, which allows for autoscaling according to the current scale, and automatic choice between vectorized glyphs or textures based on freetype2 rendering.
texturized fonts are antialiased by freetype, while every other drawings are FSAA by OpenGL.
next step is optimization by using various techniques like display list, culling, and cache rendering into textures.

interacting:

picking is provided under 2 forms:
- returns the deepest SVG element (leaf) corresponding to the shape designated by the user
- returns the stack of SVG elements under the cursor, so that UI techniques like toolglasses (see screenshot) is easily implemented

PanAndZoom done right (according to me...) : since it's fast and usable, we can really use it in an interface
Tansform so-called "consolidation" (concatenation of transform matrices) allows easy implementation of scale-independant D'n'D.
[...]

programming:

we try to make the api as simple as possible, for creating, manipulating, changing style, loading etc.
see demos/tutorial to see how to code with svgl.
a (pre-alpha) python extension allows for rapid application development and easy integration in wxPython.
[...]

links to similar free projects

batik
smoke
libart
agg2
zinc
xsvg, cairo and glitz
rsvg
ksvg

conversy .at. enac .dot. fr