Cairo

From EDM2
Jump to: navigation, search
Cairo.png

Cairo is an open source two dimensional graphics kernel written in C that simplifies the development of common 2D graphics tasks in addition to facilitating cross platform development as the library is available for a number of operating systems, including Mac OS X, Microsoft Windows and most UNIX like systems. It is designed more for application graphics than games and suchlike, but can be used to a degree for almost any graphics task that does not require 3D support.

Cairo is conceptually similar to the graphic libraries that were derived from the old Xerox graphic engines such as Graphical Environment Manager and Display PostScript, it mimics normal PostScript to such as degree that it is possible to use it as a sort of an PostScript output device and it even has support for manipulation of TrueType fonts and support for PDF output.

Pixman

Cairo itself is built upon another C library known as Pixman that provides low-level functions for pixel by pixel manipulation including image compositing and trapezoid rasterization. The library was originally developed for X.org but is now mainly maintained by the people behind Cairo and you can fetch generic releases of the Pixman source code from the Cairo homepage although if you intend to use it for OS/2 it is recommended that you extract Pixman from the OS/2 Cairo source release.

Cairo & Pixman bindings

Although Cairo is a C library, it is delivered on OS/2 as a DLL that can be accessed from any language, but on top of that bindings have been developed for Ada, C++, Common Lisp, Harbour, Haskell, Java, Lua, Nickle, Objective Caml; Perl, PHP, Prolog, Python, Ruby, Scheme, Smalltalk and Vala.

Pixman on the other hand is a classic C library and would need compiler support if it is to be used from another language or have bindings expressly written for it. At this point in time we are only aware of Python bindings for Pixman and even that does not support all of the features the library has to offer. Some of the low level features are accessible via Cairo however.

Projects that use Cairo

Best known would be the Mozilla Gecko engine used by several programs.

Versions

Licence

Authors

  • Carl Worth (Original author)
  • Keith Packard (Original author)
  • Bryce Harrington et al.
  • Peter Weilbacher (Original OS/2 port/backend)
  • Dmitriy Kuminov (OS/2 port contributor)
  • Doodle (OS/2 port maintainer)

Links