Check out the new USENIX Web site. next up previous
Next: Vector Paths Up: The GNOME Canvas: a Previous: Delayed Updates

The Libart Imaging Model

Up to now we have discussed the way the GNOME canvas operates internally. In this section we will describe the imaging model the canvas supports.

Libart is a library that provides a superset of the PostScript imaging model[2], and it extends it with support for antialiasing and alpha transparency. This means that the edges of graphics primitives such as Bézier paths are smoothed out to eliminate jaggies. Also, such primitives and images can be rendered and composited together using transparency information.

Libart is quite similar in design and scope to such ``next-generation'' imaging models as Adobe's Bravo[1], the Java 2D API[10], Adobe's Precision Graphics Markup Language (PGML)[11], and the W3C's Scalable Vector Graphics Specification (SVG)[12].

The GNOME canvas uses Libart to render its primitives when it is in antialiased mode. Also, it uses Libart's microtile arrays, described below, to represent the areas that need redrawing.

The following sections describe the main features of libart.



Subsections

Federico Mena Quintero
2000-05-08