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
.
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
Please send comments on these web pages to webmasters@gnu.org, send other questions to gnu@gnu.org.
Copyright (C) 2000 Free Software Foundation, Inc.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Updated: 09 Aug 2000 rsm