README 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. This directory contains libxmi, a machine-independent vector graphics
  2. rasterization library, and the sample program ./drawing.c. The source code
  3. for libxmi is distributed under the GNU GPL (see the file ./COPYING). The
  4. Web page for the package is: http://www.gnu.org/software/libxmi/libxmi.html .
  5. The file ./INSTALL explains how to install libxmi, and the file ./CUSTOMIZE
  6. explains how to customize it. Please read this file first, though.
  7. libxmi is based on the vector graphics code in the sample X server that is
  8. a part of the X Window System distribution. This code has been converted
  9. to ANSI C, extensively rearranged and commented, and somewhat extended.
  10. (In particular, by adding support for multicolored dashing.) The original
  11. X11 vector graphics code was written in the mid-to-late 1980's by Brian
  12. Kelleher, Joel McCormack, Todd Newman, Keith Packard, Robert Scheifler and
  13. Ken Whaley, who worked for Digital Equipment Corp., MIT, and/or the X
  14. Consortium. See ./README-X for an X Consortium permission notice. GNU
  15. extensions by Robert S. Maier <rsm@math.arizona.edu>.
  16. The public header file for libxmi is ./xmi.h. It declares the eight
  17. functions in libxmi's core API, e.g. miDrawPoints(), miDrawLines(),
  18. miFillPolygon(), miDrawRectangles(), miFillRectangles(), miDrawArcs(), and
  19. miFillArcs(). These functions have the same semantics as the corresponding
  20. X11 functions (XDrawPoints, XDrawLines, etc.). The libxmi API contains a
  21. reentrant function miDrawArcs_r() too, since miDrawArcs() is not reentrant.
  22. Each function in the core API adds painted points to an opaque miPaintedSet
  23. object, a pointer to which is passed as its first argument.
  24. The core API includes functions for creating, manipulating, and destroying
  25. miPaintSet objects. It also includes functions for creating, manipulating,
  26. and destroying miCanvas objects. The function miCopyPaintedSetToCanvas()
  27. moves the points in a miPaintedSet to the next stage of the graphics
  28. pipeline: it merges them onto a miCanvas. There is support in this second
  29. stage for sophisticated pixel-merging algorithms.
  30. In general, it should be easy to install libxmi as a standalone library, or
  31. incorporate libxmi bodily into another package's source tree. libxmi is
  32. written in `strict C', so it may be compiled with either an ANSI C compiler
  33. or a C++ compiler. See ./INSTALL.