[image of the Head of a GNU]

What is libxmi?

GNU libxmi is a C/C++ function library for rasterizing 2-D vector graphics. It can draw 2-D graphical primitives, including wide polygonal lines and circular and elliptical arcs, into a user-supplied matrix of pixels. Sophisticated line styles, such as multicolored dashing patterns, can be specified. There is also support for filling and texturing polygons.

The current version of the libxmi package is version 1.2, released in June 2000. It can be installed on GNU/Linux, FreeBSD, and Unix systems. Since libxmi is written in ANSI C, it should be easy to compile and install on almost any system with a C compiler.

The libxmi package is free software. Here is information on obtaining the source code.

What is libxmi good for?

It can be used as a drop-in rendering module in any application that needs to scan-convert 2-D vector graphics. It is highly customizable. For example, the `pixel' datatype can be redefined at compile time. The algorithm used for compositing pixels can be redefined too. By default, libxmi uses the Painter's Algorithm (a new pixel value replaces an old one). But it would be trivial to install it so that it uses alpha compositing instead. The package, and its header file xmi.h, include full documentation.

Who wrote libxmi?

libxmi is based on the scan-conversion code in the X11 sample server, which was written in the late 1980s by programmers associated with the X Consortium. Even though it maintains pixel-level compatibility with X11 drawing functions, it has been decoupled from the X Window System: it no longer requires an X display. In 1999, Robert Maier extracted the scan-conversion code, converted it to ANSI C, and modified it to use a two-stage graphics pipeline (the second stage being the stage when pixel-merging takes place). The resulting code was incorporated as a rendering module in the GNU plotting utilities package, of which he is the maintainer. The rendering module is now being distributed separately, under the name libxmi.

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to There are also other ways to contact the FSF.

Please send comments on these web pages to, send other questions to

Copyright (C) 2000 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: 09 Aug 2000 rsm