forked from KolibriOS/kolibrios
195 lines
6.4 KiB
Plaintext
195 lines
6.4 KiB
Plaintext
|
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, quartz, win32, and image buffers, as well as PDF, PostScript,
|
||
|
and SVG file output. Experimental backends include OpenGL, XCB, 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, (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 install libpng12-dev libz-dev libxrender-dev libfontconfig1-dev
|
||
|
|
||
|
Fedora (and similar):
|
||
|
|
||
|
yum install libpng-devel zlib-devel libXrender-devel fontconfig-devel
|
||
|
|
||
|
(Those commands intentionally don't install pixman from a distribution
|
||
|
package since if you're manually compiling cairo, then you likely want
|
||
|
to grab pixman from the same place at the same time and compile it as
|
||
|
well.)
|
||
|
|
||
|
Supported, "standard" surface backends
|
||
|
------------------------------------
|
||
|
image backend (required)
|
||
|
------------------------
|
||
|
pixman >= 0.18.4 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.4 with Xcode >= 2.4
|
||
|
|
||
|
win32 backend
|
||
|
-------------
|
||
|
Microsoft Windows 2000 or newer[*].
|
||
|
|
||
|
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
|
||
|
-----------------------------
|
||
|
xcb backend
|
||
|
-----------
|
||
|
XCB http://xcb.freedesktop.org
|
||
|
|
||
|
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
|
||
|
|
||
|
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.
|