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