| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- Cairo - Multi-platform 2D graphics library
- http://cairographics.org
- What is cairo
- =============
- Cairo is a 2D graphics library with support for multiple output
- devices. Currently supported output targets include the X Window
- System (via both Xlib and XCB), quartz, win32, and image buffers,
- as well as PDF, PostScript, and SVG file output. Experimental backends
- include OpenGL, BeOS, OS/2, and DirectFB.
- Cairo is designed to produce consistent output on all output media
- while taking advantage of display hardware acceleration when available
- (for example, through the X Render Extension).
- The cairo API provides operations similar to the drawing operators of
- PostScript and PDF. Operations in cairo include stroking and filling
- cubic Bézier splines, transforming and compositing translucent images,
- and antialiased text rendering. All drawing operations can be
- transformed by any affine transformation (scale, rotation, shear,
- etc.).
- Cairo has been designed to let you draw anything you want in a modern
- 2D graphical user interface. At the same time, the cairo API has been
- designed to be as fun and easy to learn as possible. If you're not
- having fun while programming with cairo, then we have failed
- somewhere---let us know and we'll try to fix it next time around.
- Cairo is free software and is available to be redistributed and/or
- modified under the terms of either the GNU Lesser General Public
- License (LGPL) version 2.1 or the Mozilla Public License (MPL) version
- 1.1.
- Where to get more information about cairo
- =========================================
- The primary source of information about cairo is:
- http://cairographics.org/
- The latest versions of cairo can always be found at:
- http://cairographics.org/download
- Documentation on using cairo and frequently-asked questions:
- http://cairographics.org/documentation
- http://cairographics.org/FAQ
- Mailing lists for contacting cairo users and developers:
- http://cairographics.org/lists
- Roadmap and unscheduled things to do, (please feel free to help out):
- http://cairographics.org/roadmap
- http://cairographics.org/todo
- Dependencies
- ============
- The set of libraries needed to compile cairo depends on which backends
- are enabled when cairo is configured. So look at the list below to
- determine which dependencies are needed for the backends of interest.
- For the surface backends, we have both "supported" and "experimental"
- backends. Further, the supported backends can be divided into the
- "standard" backends which can be easily built on any platform, and the
- "platform" backends which depend on some underlying platform-specific
- system, (such as the X Window System or some other window system).
- As an example, for a standard Linux build similar to what's shipped by
- your distro, (with image, png, pdf, PostScript, svg, and xlib surface
- backends, and the freetype font backend), the following sample commands
- will install necessary dependencies:
- Debian (and similar):
- apt-get build-dep cairo
- Fedora (and similar):
- yum install libpng-devel zlib-devel libXrender-devel fontconfig-devel
- Technically you probably don't need pixman from the distribution since
- if you're manually compiling Cairo you probably want an updated pixman
- as well. However, if you follow the default settings and install pixman
- to /usr/local, your Cairo build should properly use it in preference to
- the system pixman.
- Supported, "standard" surface backends
- ------------------------------------
- image backend (required)
- ------------------------
- pixman >= 0.30.0 http://cairographics.org/releases
- png support (can be left out if desired, but many
- ----------- applications expect it to be present)
- libpng http://www.libpng.org/pub/png/libpng.html
- pdf backend
- -----------
- zlib http://www.gzip.org/zlib
- postscript backend
- ------------------
- zlib http://www.gzip.org/zlib
- svg backend
- -----------
- [none]
- Supported, "platform" surface backends
- -----------------------------------
- xlib backend
- ------------
- X11 http://freedesktop.org/Software/xlibs
- xlib-xrender backend
- --------------------
- Xrender >= 0.6 http://freedesktop.org/Software/xlibs
- quartz backend
- --------------
- MacOS X >= 10.5 with Xcode >= 3.0
- win32 backend
- -------------
- Microsoft Windows 2000 or newer[*].
- xcb backend
- -----------
- XCB http://xcb.freedesktop.org
- Font backends (required to have at least one)
- ---------------------------------------------
- freetype font backend
- ---------------------
- freetype >= 2.1.9 http://freetype.org
- fontconfig http://fontconfig.org
- quartz-font backend
- -------------------
- MacOS X >= 10.4 with Xcode >= 2.4
- win32 font backend
- ------------------
- Microsoft Windows 2000 or newer[*].
- [*] The Win32 backend should work on Windows 2000 and newer
- (excluding Windows Me.) Most testing has been done on
- Windows XP. While some portions of the code have been
- adapted to work on older versions of Windows, considerable
- work still needs to be done to get cairo running in those
- environments.
- Cairo can be compiled on Windows with either the gcc
- toolchain (see http://www.mingw.org) or with Microsoft
- Visual C++. If the gcc toolchain is used, the standard
- build instructions using configure apply, (see INSTALL).
- If Visual C++ is desired, GNU make is required and
- Makefile.win32 can be used via 'make -f Makefile.win32'.
- The compiler, include paths, and library paths must be set
- up correctly in the environment.
- MSVC versions earlier than 7.1 are known to miscompile
- parts of cairo and pixman, and so should be avoided. MSVC
- 7.1 or later, including the free Microsoft Visual Studio
- Express editions, produce correct code.
- Experimental surface backends
- -----------------------------
- beos backend
- ------------
- No dependencies in itself other than an installed BeOS system, but cairo
- requires a font backend. See the freetype dependency list.
- os2 backend
- -----------
- Cairo should run on any recent version of OS/2 or eComStation, but it
- requires a font backend. See the freetype dependency list. Ready to use
- packages and developer dependencies are available at Netlabs:
- ftp://ftp.netlabs.org/pub/cairo
- skia backend
- ------------
- Requires the skia library as of June 2014. Since skia is not
- API stable, building against newer (or older) versions of skia
- will probably fail.
- Compiling
- =========
- See the INSTALL document for build instructions.
- History
- =======
- Cairo was originally developed by Carl Worth <cworth@cworth.org> and
- Keith Packard <keithp@keithp.com>. Many thanks are due to Lyle Ramshaw
- without whose patient help our ignorance would be much more apparent.
- Since the original development, many more people have contributed to
- cairo. See the AUTHORS files for as complete a list as we've been able
- to compile so far.
|