www.levien.comSee also the artofcode Libart page for a data sheet and information about licensing.
Libart is a library for high-performance 2D graphics. It is currently being used as the antialiased rendering engine for the Gnome Canvas. It is also the rendering engine for Gill, the Gnome Illustration app.
The source code of libart is in Gnome CVS (including Bonsai and LXR views).
Libart is free software (all components are either GPL or LGPL). Libart is also available for commercial licensing. I own the copyright to the libart code base.
Libart supports a very powerful imaging model, basically the same as SVG and the Java 2D API. It includes all PostScript imaging operations, and adds antialiasing and alpha-transparency.
Libart is also highly tuned for incremental rendering. It contains data structures and algorithms suited to rapid, precise computation of Region of Interest, as well as a two-phase rendering pipeline optimized for interactive display.
Libart currently supports the following data structures:
- Vector paths
- Bézier paths
- RGB and RGBA images
- Sorted Vector Paths
- MicroTile Arrays
- Affine transformations
Selected algorithms include:
- Converting Bézier paths into vector paths.
- Sorting vector paths into svp's.
- Antialiased rendering of svp's.
- Computation of stroke paths (with line cap and join options).
- Intersection, union, and difference of svp's.
- Finding covering uta's for rectangles, vector paths, and svp's.
- Union of uta's.
- Decomposition of uta's into minimal set of rectangles.
- Alpha-compositing.
- Affine transformation of paths and images.
More documentation to come...