11.12.2 (stable):
2
3* Remove new API that was not meant to be added in 1.12.1.
4
51.12.1 (stable):
6
7* C++11: Use nullptr instead of 0.
8* C++11: Use override keyword on destructors.
9* C++11: Make operator bool() explicit.
10  (Murray Cumming)
11
121.12.0 (stable):
13
14* Cairo::RefPtr: Add move constructors and move operator=().
15  (Murray Cumming)
16* MSVC build fixes.
17  (Chun-wei Fan)
18
191.11.4 (unstable):
20
21* Use (and require) C++11.
22  (Murray Cumming)
23* Add Script and ScriptSurface.
24  (Povilas Kanapickas)
25* Context: get_surface_wrapper(): Handle CAIRO_SURFACE_TYPE_SCRIPT,
26  returning a ScriptSurface.
27  (Povilas Kanapickas)
28* Surface: get_device(): Handle CAIRO_SURFACE_TYPE_SCRIPT,
29  returning a Script.
30  (Povilas Kanapickas)
31* Wrap cairo script device and script surface APIs.
32  (Povilas Kanapickas)
33* FtFontFace: Add get/set/unset_synthesize().
34  (Povilas Kanapickas)
35* Update MSVC.Net 2010 project files.
36  (David Weiß)
37
381.11.2 (unstable):
39
40* Pattern: Add set_extend() and get_extend().
41  (Povilas Kanapickas) Bug #73775
42* ScaledFont: Add the missing get_extents() method implementation.
43  (Murray Cumming) Bug #53981 (cheshirekow)
44* Allow use from Objective-C instead of just allowing building.
45  (Anton Bachin) Bug #66328
46* Avoid dereferencing empty std::vector<>s.
47  (Murray Cumming) Bug #36020 (Robert Kurjata)
48* Documentation improvements.
49  (Mark Vender)
50* Fix linker problems in examples.
51  (Murray Cumming)
52
531.10.0 (stable):
54
55* Documentation: Context::arc(): Correct the documentation, as in the C
56  documentation.
57  (Murray Cumming) Bug #31345 (Christopher Head)
58
591.9.8 (unstable):
60
61* Surface:
62  - added create() for creating a sub-surface representing a rectangle on a
63    target surface
64  - PDF versioning API: get_versions(), restrict_to_version(),
65    version_to_string()
66  - add get_device()
67  - add new surface type enum values
68* Device
69  - add acquire() and release() functions
70  - Add Device::Lock convenience class
71* Region
72  - UNSTABLE API CHANGE: Fix do_union(), subtract(), intersect() to throw
73    exceptions instead of returning error statuses to be consistent with the
74    rest of the cairomm API
75  - add xor() functions
76  - add API for creating a region from a list of rectangles
77  - implement copy()
78* Documentation:
79  - Context::arc(): Fix bug #31345 (Christopher Head) about bad math in arc()
80    documentation. (Murray Cumming)
81  - Add documentation for Device class
82  - Add documentation for Region class
83
841.9.6 (unstable):
85
86* Context: Added in_clip().
87* Surface: Added get_mime_data(), set_mime_data(), unset_mime_data().
88  (Murray Cumming)
89* Build: Added support for Windows 64-bit and Visual Studio 2010.
90  (Armin Burgmeier)
91
921.9.4 (unstable):
93
94* Added Device.
95  (Murray Cumming)
96
971.9.2 (unstable):
98
99* Context:
100  - set_dash(): Make the dashes parameter const.
101  - device_to_user(), device_to_user_distance(), user_to_device(),
102  user_to_device_distance(): Deprecate the non-const versions, adding const
103  versions.
104  (Murray Cumming)
105* Cleanup of most -Weffc++ warnings. Bug #28246.
106  (Ian Britten)
107
1081.9.1 (unstable):
109
110* Added Region.
111  (Murray Cumming)
112* Context: Don't allow this to be copied.
113  (Daniel Elstner)
114* Build:
115  - Fix the MSVC build.
116  (Armin Burgmeier)
117  - Fix the 64-bit build.
118  (Augusto Jun Devegil)
119  - Actually install cairomm-xlib-xrender-1.0.pc.
120  (Daisuke Nishikawa)
121
1221.8.4:
123
124* move to new mm-common build infrastructure
125* Contributors for this release:
126     1  Christopher Harvey
127     4  Daniel Elstner
128     4  David King
129     1  Jonathon Jongsma
130
1311.8.2:
132
133* Fix accidental ABI breakage from 1.8.0.  All users are urged to please upgrade
134  from 1.8.0 to 1.8.2 as soon as possible
135
1361.8.0:
137
138* No notable changes since 1.7.2
139
1401.7.2 (UNSTABLE):
141
142* API Changes (all API changes are in unstable API introduced in 1.7.x)
143  * UserFontFace is not implemented with virtual functions rather than by
144    registering callbacks
145  * Cairo::scaled_matrix() -> Cairo::scaling_matrix() to match other matrix
146    convenience functions
147* Bugfixes
148  * Incorrect refcounting on ScaledFont
149  * build fixes for Mac OSX
150* Contributors for this release:
151     1	Armin Burgmeier
152     1	Dave Evans
153    22	Jonathon Jongsma
154
155
1561.7.0 (UNSTABLE):
157
158 * API Changes
159   * ScaledFont: Change fontface constructor parameter to be a RefPtr
160     * This is an API break, but the old interface was essentially unusably
161       broken
162   * Cairo::Matrix now inherits from cairo_matrix_t
163     * Previously, we had used Cairo::Matrix throughout our API, but
164       Cairo::Matrix was just a typedef for cairo_matrix_t
165     * This could be considered an API change, but the new Cairo::Matrix still
166       is-a cairo_matrix_t even if it's not exactly a cairo_matrix_t.  This
167       change does not break ABI either, as there are no data members or virtual
168       functions.  So I believe this is a safe change, but feedback is appreciated.
169     * Provides a much more C++-friendly API for handling matrices
170     * Also added a set of standalone 'generator' functions for generating
171       starting matrices:
172       * Cairo::identity_matrix(), rotation_matrix(), translation_matrix(),
173         scaled_matrix().  This allows for convenient use such as:
174           cr->set_matrix(Cairo::identity_matrix());
175         rather than something like what was required before:
176           Cairo::Matrix identity_matrix;
177           cairo_matrix_init_identity(&identity_matrix);
178           cr->set_matrix(identity_matrix);
179   * Pattern: get/set_matrix() functions were using a cairo_matrix_t parameter in
180     the API.  This is the only place where we used this type and so it was
181     inconsistent with every other matrix-related API in cairomm.  Previously
182     this wasn't really an issue since cairo_matrix_t and Cairo::Matrix were
183     typedefed to the same type.  However, with the the change to Cairo::Matrix
184     mentioned above, this because a much bigger issue.
185     * This is an ABI-compatible change, but it is a minor API change that could
186       result in some warnings or compile problems in some situations`
187 * New API (some of these are new in cairo 1.8, some are older API that were
188   not wrapped in cairomm previously)
189   * Add Context::get/set_scaled_font()
190   * add Context::show_text_glyphs()
191   * add Context::get_font_options()
192   * Add Surface::has_show_text_glyphs()
193   * Add Surface::get_content() + test
194   * Added Surface::get_fallback_resolution()
195   * Add ScaledFont::text_to_glyphs()
196   * Add PsSurface::get_eps()
197   * Add missing Win32Surface API: create_with_ddb(), create_with_dib(), and get_image()
198   * Add Win32PrintingSurface
199   * Vastly improved font support
200     * ToyFontFace
201     * UserFontFace
202     * Add Freetype font support (FtFontFace, etc)
203     * Add win32 font support (Win32FontFace, etc)
204     * Add quartz font support (QuartzFontFace, etc)
205     * Add ScaledFont::get_scale_matrix()
206 * Fix API inconsistencies by adding overloads and deprecating old versions
207   * Deprecated FontFace::extents() in favor of FontFace::get_extents()
208   * Deprecated FontFace::text_extents() in favor of FontFace::get_text_extents()
209   * Deprecated FontFace::glyph_extents() in favor of FontFace::get_glyph_extents()
210   * Add sigc::slot versions of all of the functions that take a
211     cairo_write_func_t or cairo_read_func_t
212     * This adds a new dependency on libsigc++, but offers a much more flexible
213       and C++-like solution
214     * Old API using cairo_write_func_t / cairo_read_func_t still exist, but are
215       deprecated in favor of the new API
216   * Add a default value for the font_options parameter of the ScaledFont constructor
217 * Added new macros for determining library version:
218   * CAIROMM_MAJOR_VERSION, CAIROMM_MINOR_VERSION, and CAIROMM_MICRO_VERSION
219 * Add a bunch of extra .pc files for additional functionality
220   * like cairo, create convenience .pc files for using some of the optional
221     features.  For example, cairomm-ft-1.0, cairomm-pdf-1.0, cairomm-xlib-1.0, etc.
222 * Numerous windows build improvements
223 * Added a *lot* of automated tests
224
2251.6.2:
226
227 * Fix build on OSX when both Quartz and Xlib surfaces are enabled (Benjamin
228   Reed)
229 * updated the windows build (Armin Burgmeier)
230 * Fixed a bug where an exception message would often report "Success" when it
231   should have reported an error message
232 * Added ability to get the error status code from an exception:
233   Cairo::logic_error::get_status_code()
234 * Added new elements to the surface type enumeration
235
2361.6.0:
237
238 * wrap cairo_format_stride_for_width().  All new cairo 1.6 API should now be
239   implemented in cairomm
240
2411.5.0 (UNSTABLE):
242
243 * Unstable release wrapping new API in cairo 1.5 series
244 * Bugfixes
245   - Bug #14559: build failure in exception.cc on Solaris with Sun Workshop C++
246   - Bug #14558: cairomm 1.4.6 context.cc needs math.h on Solaris
247
2481.4.6:
249
250 * Bugfixes:
251   - Bug #11972: Cannot build cairomm with Quartz enabled
252
2531.4.4:
254
255 * Added the --enable-api-exceptions=yes/no configure option, to allow
256   cairomm to build when exceptions are disabled. For instance, when using
257   CXXFLAGS=-fno-exceptions with g++.
258
2591.4.2:
260
261 * Bugfixes:
262   - Bug #11596: Fixed broken shared library versioning (Dave Beckett)
263   - Bug #8511: RefPtr: refcounting broken with cast_*() methods (Murray
264     Cumming)
265
2661.4.0:
267
268 * Wrapped new API added in cairo 1.4
269 * Added support for Quartz surfaces
270 * ability to use dynamic casting for surfaces and patterns returned from
271   Context::get_target(), Context::get_source(), etc.
272 * Various build and bug fixes
273
2741.2.4:
275
276 * Fixed an error that prevented Cairo::RefPtr<>::cast_static() and
277   Cairo::RefPtr<>::cast_dynamic() from compiling.
278
2791.2.2:
280
281* Fixed an issue when compiling on windows with MSVC
282
2831.2.0:
284
285* This is the first release that guarantees API and ABI stability
286* Changed API:
287  - Context::clear_path() is now Context::begin_new_path()
288  - Context::new_sub_path() is now Context::begin_new_sub_path()
289* new API:
290  - Win32Surface::get_dc()
291  - Win32Surface::create() for device-independent bitmaps
292* Bugfixes
293  - fixed a memory leak where C++ wrapper objects were not being destroyed
294* Fixes for compiling with MSVC (also includes project and resource files for
295  Visual Studio 2005.  See the MSVC/ directory)
296
2971.1.10:
298
299* API:
300  - Wrap new API from cairo 1.2
301  - Wrap ScaledFont
302* Improved Documentation
303* Build fixes
304
3050.6.0:
306
307* API:
308  - enumerations are now wrapped within the Cairo namespace.  So, for example,
309    CAIRO_FORMAT_ARGB32 becomes Cairo::FORMAT_ARGB32
310* Examples: added simple text example translated from Cairo.
311* Bugfixes for the Glitz and Windows backends.
312* Build and installation improvements (Danilo Piazzalunga)
313
3140.5.0:
315
316* Surface:
317  - Created derived classes for PDF, PS, SVG, Glitz,
318  X11 and Win32 surfaces, which are only available if your copy
319  of cairo supports those surfaces. The X11 and Win32 Surface headers
320  must be #included explicitly.
321  (Jonathon Jongsma)
322  - Added write_to_png() and write_to_png_stream(), available when PNG
323  support is available in Cairo.
324  (Jonathon Jongsma)
325* Examples: Added PNG, PDF, PS, and SVG Surface examples.
326  (Jonathon Jongsma)
327* Added API documentation generation with doxygen (Jonathon Jongsma)
328
3290.4.0:
330
331* Add Cairo::RefPtr<> and use all reference-counted
332  objects via it. Use the static create() methods
333  instead of new for these classes.
334* Context:
335  - Change set_dash(void) to unset_dash().
336  - Change rotate_deg() to rotate_degrees().
337  - Change identity_matrix() to set_identity_matrix().\
338  - Change new_path() to clear_path().
339* FontFace: Remove get/set_user_data(), because it seems useless.
340
3410.3.0:
342
343* Context:
344  - Change mask_surface() to mask() and
345    set_source_surface() to set_source().
346  - Add typedef for Matrix, but a real Matrix
347  class would be nice.
348* Pattern: Created hierarchy of classes.
349* Check for errors in constructors.
350* Exception: Rename to logic_error, and throw
351  std::bad_alloc or std::io_base::failure instead
352  when appropriate.
353  (Murray Cumming)
354