1Cairo - Multi-platform 2D graphics library
2http://cairographics.org
3
4What is cairo
5=============
6Cairo is a 2D graphics library with support for multiple output
7devices. Currently supported output targets include the X Window
8System, win32, and image buffers, as well as PDF, PostScript, and SVG
9file output. Experimental backends include OpenGL (through glitz),
10Quartz, XCB, BeOS, OS/2, and DirectFB.
11
12Cairo is designed to produce consistent output on all output media
13while taking advantage of display hardware acceleration when available
14(for example, through the X Render Extension).
15
16The cairo API provides operations similar to the drawing operators of
17PostScript and PDF. Operations in cairo include stroking and filling
18cubic Bézier splines, transforming and compositing translucent images,
19and antialiased text rendering. All drawing operations can be
20transformed by any affine transformation (scale, rotation, shear,
21etc.).
22
23Cairo has been designed to let you draw anything you want in a modern
242D graphical user interface. At the same time, the cairo API has been
25designed to be as fun and easy to learn as possible. If you're not
26having fun while programming with cairo, then we have failed
27somewhere---let us know and we'll try to fix it next time around.
28
29Cairo is free software and is available to be redistributed and/or
30modified under the terms of either the GNU Lesser General Public
31License (LGPL) version 2.1 or the Mozilla Public License (MPL) version
321.1.
33
34Where to get more information about cairo
35=========================================
36The primary source of information about cairo is:
37
38 http://cairographics.org/
39
40The latest versions of cairo can always be found at:
41
42 http://cairographics.org/download
43
44Documentation on using cairo and frequently-asked questions:
45
46 http://cairographics.org/documentation
47 http://cairographics.org/FAQ
48
49Mailing lists for contacting cairo users and developers:
50
51 http://cairographics.org/lists
52
53Roadmap and unscheduled things to do, (please feel free to help out):
54
55 http://cairographics.org/roadmap
56 http://cairographics.org/todo
57
58Dependencies
59============
60The set of libraries needed to compile cairo depends on which backends
61are enabled when cairo is configured. So look at the list below to
62determine which dependencies are needed for the backends of interest.
63
64For the surface backends, we have both "supported" and "experimental"
65backends. Further, the supported backends can be divided into the
66"standard" backends which can be easily built on any platform, and the
67"platform" backends which depend on some underlying platform-specific
68system, (such as the X Window System or some other window system).
69
70As an example, for a standard Linux build, (with image, png, pdf,
71PostScript, svg, and xlib surface backends, and the freetype font
72backend), the following sample commands will install necessary
73dependencies:
74
75 Debian (and similar):
76
77 apt-get install libpng12-dev libz-dev libxrender-dev libfontconfig1-dev
78
79 Fedora (and similar):
80
81 yum install libpng-devel zlib-devel libXrender-devel fontconfig-devel
82
83(Those commands intentionally don't install pixman from a distribution
84package since if you're manually compiling cairo, then you likely want
85to grab pixman from the same place at the same time and compile it as
86well.)
87
88Supported, "standard" surface backends
89------------------------------------
90 image backend (required)
91 ------------------------
92 pixman >= 0.10.0 http://cairographics.org/releases
93
94 png support (can be left out if desired, but many
95 ----------- applications expect it to be present)
96 libpng http://www.libpng.org/pub/png/libpng.html
97
98 pdf backend
99 -----------
100 zlib http://www.gzip.org/zlib
101
102 postscript backend
103 ------------------
104 zlib http://www.gzip.org/zlib
105
106 svg backend
107 -----------
108 [none]
109
110Supported, "platform" surface backends
111-----------------------------------
112 xlib backend
113 ------------
114 X11 http://freedesktop.org/Software/xlibs
115
116 xlib-xrender backend
117 --------------------
118 Xrender >= 0.6 http://freedesktop.org/Software/xlibs
119
120 quartz backend
121 --------------
122 MacOS X >= 10.4 with Xcode >= 2.4
123
124 win32 backend
125 -------------
126 Microsoft Windows 2000 or newer[*].
127
128Font backends (required to have at least one)
129---------------------------------------------
130 freetype font backend
131 ---------------------
132 freetype >= 2.1.9 http://freetype.org
133 fontconfig http://fontconfig.org
134
135 quartz-font backend
136 -------------------
137 MacOS X >= 10.4 with Xcode >= 2.4
138
139 win32 font backend
140 ------------------
141 Microsoft Windows 2000 or newer[*].
142
143 [*] The Win32 backend should work on Windows 2000 and newer
144 (excluding Windows Me.) Most testing has been done on
145 Windows XP. While some portions of the code have been
146 adapted to work on older versions of Windows, considerable
147 work still needs to be done to get cairo running in those
148 environments.
149
150 Cairo can be compiled on Windows with either the gcc
151 toolchain (see http://www.mingw.org) or with Microsoft
152 Visual C++. If the gcc toolchain is used, the standard
153 build instructions using configure apply, (see INSTALL).
154 If Visual C++ is desired, GNU make is required and
155 Makefile.win32 can be used via 'make -f Makefile.win32'.
156 The compiler, include paths, and library paths must be set
157 up correctly in the environment.
158
159 MSVC versions earlier than 7.1 are known to miscompile
160 parts of cairo and pixman, and so should be avoided. MSVC
161 7.1 or later, including the free Microsoft Visual Studio
162 Express editions, produce correct code.
163
164Experimental surface backends
165-----------------------------
166 glitz
167 -------------
168 glitz >= 0.4.4 http://freedesktop.org/Software/glitz
169
170 xcb backend
171 -----------
172 XCB http://xcb.freedesktop.org
173
174 beos backend
175 ------------
176 No dependencies in itself other than an installed BeOS system, but cairo
177 requires a font backend. See the freetype dependency list.
178
179 os2 backend
180 -----------
181 Cairo should run on any recent version of OS/2 or eComStation, but it
182 requires a font backend. See the freetype dependency list. Ready to use
183 packages and developer dependencies are available at Netlabs:
184 ftp://ftp.netlabs.org/pub/cairo
185
186Compiling
187=========
188See the INSTALL document for build instructions.
189
190History
191=======
192Cairo was originally developed by Carl Worth <cworth@cworth.org> and
193Keith Packard <keithp@keithp.com>. Many thanks are due to Lyle Ramshaw
194without whose patient help our ignorance would be much more apparent.
195
196Since the original development, many more people have contributed to
197cairo. See the AUTHORS files for as complete a list as we've been able
198to compile so far.
199