|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 14-Feb-2021 | - |
| boilerplate/ | H | 14-Feb-2021 | - | 10,003 | 7,772 |
| build/ | H | 14-Feb-2021 | - | 26,422 | 21,895 |
| src/ | H | 14-Feb-2021 | - | 186,202 | 131,476 |
| AUTHORS | H A D | 14-Feb-2021 | 7.6 KiB | 111 | 109 |
| BIBLIOGRAPHY | H A D | 14-Feb-2021 | 4.2 KiB | 110 | 80 |
| BUGS | H A D | 14-Feb-2021 | 3.6 KiB | 86 | 63 |
| CODING_STYLE | H A D | 14-Feb-2021 | 8.8 KiB | 292 | 224 |
| COPYING | H A D | 14-Feb-2021 | 1.5 KiB | 34 | 27 |
| COPYING-LGPL-2.1 | H A D | 14-Feb-2021 | 25.9 KiB | 511 | 422 |
| COPYING-MPL-1.1 | H A D | 14-Feb-2021 | 25.2 KiB | 471 | 396 |
| ChangeLog | H A D | 14-Feb-2021 | 1.8 MiB | 45,142 | 33,506 |
| HACKING | H A D | 14-Feb-2021 | 5.1 KiB | 187 | 116 |
| INSTALL | H A D | 14-Feb-2021 | 6.4 KiB | 185 | 134 |
| KNOWN_ISSUES | H A D | 14-Feb-2021 | 445 | 11 | 9 |
| Makefile.am | H A D | 14-Feb-2021 | 1.7 KiB | 83 | 66 |
| Makefile.in | H A D | 14-Feb-2021 | 62.1 KiB | 1,738 | 1,538 |
| Makefile.win32 | H A D | 14-Feb-2021 | 668 | 28 | 19 |
| NEWS | H A D | 14-Feb-2021 | 247 KiB | 6,524 | 4,988 |
| PORTING_GUIDE | H A D | 14-Feb-2021 | 8.5 KiB | 266 | 215 |
| README | H A D | 14-Feb-2021 | 6.4 KiB | 195 | 150 |
| README.win32 | H A D | 14-Feb-2021 | 3 KiB | 67 | 55 |
| RELEASING | H A D | 14-Feb-2021 | 5.7 KiB | 141 | 105 |
| acinclude.m4 | H A D | 14-Feb-2021 | 1.6 KiB | 56 | 43 |
| aclocal.m4 | H A D | 14-Feb-2021 | 41.4 KiB | 1,163 | 1,057 |
| autogen.sh | H A D | 14-Feb-2021 | 5.4 KiB | 198 | 135 |
| cairo-version.h | H A D | 14-Feb-2021 | 148 | 9 | 6 |
| config.h.in | H A D | 14-Feb-2021 | 9.7 KiB | 366 | 258 |
| configure | H A D | 14-Feb-2021 | 1.3 MiB | 39,629 | 32,658 |
| configure.ac | H A D | 14-Feb-2021 | 27 KiB | 807 | 693 |
| depcomp | H A D | 14-Feb-2021 | 15.6 KiB | 531 | 330 |
| missing | H A D | 14-Feb-2021 | 10.8 KiB | 361 | 268 |
README
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, quartz, win32, and image buffers, as well as PDF, PostScript,
9and SVG file output. Experimental backends include OpenGL, XCB, BeOS,
10OS/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.18.4 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 xcb backend
167 -----------
168 XCB http://xcb.freedesktop.org
169
170 beos backend
171 ------------
172 No dependencies in itself other than an installed BeOS system, but cairo
173 requires a font backend. See the freetype dependency list.
174
175 os2 backend
176 -----------
177 Cairo should run on any recent version of OS/2 or eComStation, but it
178 requires a font backend. See the freetype dependency list. Ready to use
179 packages and developer dependencies are available at Netlabs:
180 ftp://ftp.netlabs.org/pub/cairo
181
182Compiling
183=========
184See the INSTALL document for build instructions.
185
186History
187=======
188Cairo was originally developed by Carl Worth <cworth@cworth.org> and
189Keith Packard <keithp@keithp.com>. Many thanks are due to Lyle Ramshaw
190without whose patient help our ignorance would be much more apparent.
191
192Since the original development, many more people have contributed to
193cairo. See the AUTHORS files for as complete a list as we've been able
194to compile so far.
195
README.win32
1Building Cairo on Windows
2=========================
3There are two primary ways to build Cairo on Windows. You can use a
4UNIX emulation based setup, such as Cygwin or MSYS, with the
5conventional configure script shipped with Cairo releases. In this
6configuration, you will build with GCC and (implicitly) libtool. In
7the Cygwin case you end up with a DLL that depends on Cygwin and
8should be used only from Cygwin applications. In the MSYS case you end
9up with a "normal" Win32 DLL that can be used either from GCC- or
10Microsoft Visual C++-compiled code. In theory, this technique is no
11different than the ordinary build process for the Cairo library. In
12practise there are lots of small details that can go wrong.
13
14The second way is to use a GNU-compatible make, but build using
15Microsoft's Visual C++ compiler to produce native libraries. This is
16the setup this README.win32 is written for. Also the DLL produced this
17way is usable either from GCC- or MSVC-compiled code.
18
19Tools required
20==============
21You will need GNU make, version 3.80 or later. Earlier versions or
22other modern make implementations may work, but are not guaranteed to.
23
24You will also need Microsoft Visual C++. Version 7 has been most
25heavily tested, but other versions are likely to work fine.
26
27Libraries required
28==================
29Cairo requires a compatible version of the pixman library. Full build
30instructions are beyond the scope of this document; however, using the
31same tools, it should be possible to build pixman simply by entering
32the pixman/src directory and typing:
33
34 make -f Makefile.win32 CFG=release
35
36Depending on your feature set, you may also need zlib and libpng.
37
38Building
39========
40There are a few files that you will need to edit. First, you must
41determine which features will be built. Edit
42build/Makefile.win32.features and set the features as desired. Note
43that most features have external dependencies; specifically,
44CAIRO_HAS_PNG_FUNCTIONS requires libpng to be present, and
45CAIRO_HAS_PS_SURFACE and CAIRO_HAS_PDF_SURFACE both require zlib.
46
47To ensure that the compiler can find all dependencies, you may need to
48edit build/Makefile.win32.common. In particular, ensure that
49PIXMAN_CFLAGS contains a -I parameter pointing to the location of
50your pixman header files and that PIXMAN_LIBS points to the actual
51location of your pixman-1.lib file. You may also need to edit the
52various occurrences of CAIRO_LIBS to point to other libraries
53correctly. Note also that if you wish to link statically with zlib,
54you should replace zdll.lib with zlib.lib.
55
56Finally, from the top Cairo directory, type:
57
58 make -f Makefile.win32 CFG=release
59
60If this command succeeds, you will end up with src/release/cairo.dll.
61To successfully use Cairo from your own programs, you will probably
62want to move this file to some central location. You will also
63probably want to copy the Cairo header files. These should be placed
64in a cairo subdirectory (for instance, c:/code/common/include/cairo).
65The exact set to copy depends on your features and is reported to you
66at the end of the build.
67