|
The GNOME imaging architecture provides developers with tools for
creating interactive graphics displays, high-quality
printing, and typographic-quality fonts. There are four
components in the GNOME Imaging Architecture, and although not all of
them are completed, they promise a development environment that has
never been offered in the Linux and UNIX worlds.
The four components of the GNOME Imaging Architecture are: the
Canvas, Libart, GNOME Print, and GNOME Fonts. At the writing of this
paper the canvas and Libart are complete and GNOME Print and
GNOME Fonts are still being developed.
GNOME Canvas.
The GNOME canvas[1] is a high-level display engine
for creating structured graphics. A canvas displays collections of
items that can be lines, rectangles, elipses, and text.
The canvas is an extensible, high-level, object-oriented drawing
widget. Applications can use the basic drawing primitives in the
canvas to create interactive displays, or define their custom
canvas item types for complex displays.
The GNOME Canvas can render the images in two different modes. One
mode uses Xlib to render in a fast but lower quality method. The
second mode uses Libart to render a very high quality image, but
requires more system resources to do so.
Libart.
Libart is a rendering engine that provides a superset of the
PostScript imaging model, with the addition of alpha transparency
and native anti-aliasing. Libart is a high-quality rendering
engine that uses a combination of rendering technologies to
enhance performance; for example, microtile arrays and sorted
vector paths.
A microtile array is a grid-like data structure that lets the
canvas keep an efficient representation of the regions that need
to be repainted.
With Libart, the programmer can create a vector path or a
Bzier path, and later ask the library to create a sorted
vector path for performance. A sorted vector path is a vector
path whose segments have been sorted in a
monotonically-increasing Y order. This allows for more efficient
rasterization or scan conversion.
Libart also utilizes GdkRGB, which creates a 24 bit rendering
space for all images, no matter what bit depth the final display
will be. If the image needs to be displayed in a lower bit depth
it will still be calculated in a 24 bit, RGB space prior to
display. The image then goes through a conversion to adjust it to
the X visual depth. Using this method increases the performance
in rendering. Performing the calculations in 24 bit depth allows
for the highest quality image available to the user.
Notes
|