cairo (graphics)

From Wikipedia, the free encyclopedia

Jump to: navigation, search
The cairo graphics library logo.
Developed by Carl Worth, Behdad Esfahbod
Stable release 1.8.6  (13 Dec 2008) [+/−]
Preview release 1.7.4  (11 Aug 2008) [+/−]
Written in C
Operating system Cross-platform
Type Graphics library
License GNU Lesser General Public License or Mozilla Public License

cairo is a software library used to provide a vector graphics-based, device-independent API for software developers. It is designed to provide primitives for 2-dimensional drawing across a number of different backends. Cairo is designed to use hardware acceleration when available.

Although written in C, there are bindings for using the cairo graphics library from many other programming languages, including Factor, Haskell, Lua, Perl, Python, Ruby, Scheme, Smalltalk and several others.[1] Dual licensed under the GNU Lesser General Public License and the Mozilla Public License, cairo is free software.


[edit] History

The cairo project was founded by Keith Packard and Carl Worth for use in the X Window System. It was originally called Xr or Xr/Xc. The name was changed to emphasize the idea that it was a cross-platform library and not tied to the X server. The name cairo was derived from the original name Xr, similar to the Greek letters chi and rho.[2]

[edit] Backends

Cairo supports output to a number of different backends. Backend support includes output to the X Window System, Win32 GDI, Mac OS X Quartz, the BeOS API, OS/2, OpenGL contexts (via glitz), local image buffers, PNG files, PDF, PostScript, DirectFB and SVG files.

[edit] Similar technologies

Cairo has been compared to similar technologies like WPF and GDI+ from Microsoft, Quartz 2D from Apple Inc, and Anti-Grain Geometry (AGG).

[edit] Notable usage

Cairo is popular in the open source community for providing cross-platform support for advanced 2D drawing.

  • GTK+, starting in 2005 with version 2.8, uses cairo to render the majority of its widgets.
  • The Mono Project, including Moonlight, has been using cairo since very early in conception, to power its backends of its GDI+ (libgdiplus) and System.Drawing namespaces.
  • The Mozilla project has made use of cairo in recent versions of its Gecko layout engine, used for rendering the graphical output of Mozilla products. Gecko 1.8, the layout engine for Mozilla Firefox 2.0 and SeaMonkey 1.0, used cairo to render SVG and <canvas> content. Gecko 1.9, the release of Gecko that serves as the basis of Firefox 3, uses cairo as the graphics backend for rendering both web page content and the user interface (or "chrome").
  • The WebKit framework uses cairo for all rendering in the GTK+ port. Support has also been added for SVG and <canvas> content using cairo.
  • The Poppler library uses cairo to render PDF documents. Cairo enables the drawing of antialiased vector graphics and transparent objects.
  • The Shoes windowing toolkit for Ruby uses cairo for 2D drawing.
  • The ShoeBot Python-based drawing robot uses cairo for 2D drawing.
  • The latest version of the vector graphics application Inkscape (version 0.46), uses the cairo library for its outline mode display, as well as for PDF and PostScript export.[3]
  • AmigaOS 4.1 developers based the new Workbench GUI upon cairo libraries. This means that this operating system has actually a complete vector based GUI, and due to its internal implements 3D hardware accelerated Porter-Duff composition engine can perform effects like instant zooming of entire GUI screen.
  • FontForge switched to cairo for all rendering since the middle of October 2008.

[edit] See also

[edit] References

[edit] External links

Personal tools