[cairo] [cairo-announce] cairomm release 1.7.0 (UNSTABLE) now available
Jonathon Jongsma
jonathon at quotidian.org
Sat Oct 25 21:46:16 PDT 2008
**********************
NOTE: This is an UNSTABLE release and contains MANY changes, including
some API changes (in addition to the normal API additions and bugfixes).
I have provided justifications for the API changes below, so please
read through them carefully and provide feedback if you disagree with
any of them. If you'd like to view the API documentation online as you
read through the list of changes below, you can do so at
http://www.cairographics.org/documentation/cairomm/reference/
**********************
cairomm is a C++ API for the cairo graphics library. For more
information, see http://cairographics.org/cairomm
A new cairomm release 1.7.0 is now available from:
http://cairographics.org/releases/cairomm-1.7.0.tar.gz
which can be verified with:
http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1
6d19e71717abf559ffb868423669ba23860fc94b cairomm-1.7.0.tar.gz
http://cairographics.org/releases/cairomm-1.7.0.tar.gz.sha1.asc
(signed by Jonathon Jongsma)
WHAT'S NEW
==========
* API Changes
* ScaledFont: Change fontface constructor parameter to be a RefPtr
* This is an API/ABI break, but the old interface was essentially
unusably
broken
* Cairo::Matrix now inherits from cairo_matrix_t
* Previously, we had used Cairo::Matrix throughout our API, but
Cairo::Matrix was just a typedef for cairo_matrix_t
* This could be considered an API change, but the new
Cairo::Matrix still
is-a cairo_matrix_t even if it's not exactly a cairo_matrix_t. This
change does not break ABI either, as there are no data members
or virtual
functions. So I believe this is a safe change, but feedback is
appreciated.
* Provides a much more C++-friendly API for handling matrices
* Also added a set of standalone 'generator' functions for generating
starting matrices:
* Cairo::identity_matrix(), rotation_matrix(), translation_matrix(),
scaled_matrix(). This allows for convenient use such as:
cr->set_matrix(Cairo::identity_matrix());
rather than something like what was required before:
Cairo::Matrix identity_matrix;
cairo_matrix_init_identity(&identity_matrix);
cr->set_matrix(identity_matrix);
* Pattern: get/set_matrix() functions were using a cairo_matrix_t
parameter in
the API. This is the only place where we used this type and so it was
inconsistent with every other matrix-related API in cairomm.
Previously
this wasn't really an issue since cairo_matrix_t and Cairo::Matrix
were
typedefed to the same type. However, with the the change to
Cairo::Matrix
mentioned above, this because a much bigger issue.
* This is an ABI-compatible change, but it is a minor API change
that could
result in some warnings or compile problems in some situations`
* New API (some of these are new in cairo 1.8, some are older API that
were
not wrapped in cairomm previously)
* Add Context::get/set_scaled_font()
* add Context::show_text_glyphs()
* add Context::get_font_options()
* Add Surface::has_show_text_glyphs()
* Add Surface::get_content() + test
* Added Surface::get_fallback_resolution()
* Add ScaledFont::text_to_glyphs()
* Add PsSurface::get_eps()
* Add missing Win32Surface API: create_with_ddb(),
create_with_dib(), and get_image()
* Add Win32PrintingSurface
* Vastly improved font support
* ToyFontFace
* UserFontFace
* Add Freetype font support (FtFontFace, etc)
* Add win32 font support (Win32FontFace, etc)
* Add quartz font support (QuartzFontFace, etc)
* Add ScaledFont::get_scale_matrix()
* Fix API inconsistencies by adding overloads and deprecating old versions
* Deprecated FontFace::extents() in favor of FontFace::get_extents()
* Deprecated FontFace::text_extents() in favor of
FontFace::get_text_extents()
* Deprecated FontFace::glyph_extents() in favor of
FontFace::get_glyph_extents()
* Add sigc::slot versions of all of the functions that take a
cairo_write_func_t or cairo_read_func_t
* This adds a new dependency on libsigc++, but offers a much more
flexible
and C++-like solution
* Old API using cairo_write_func_t / cairo_read_func_t still
exist, but are
deprecated in favor of the new API
* Add a default value for the font_options parameter of the
ScaledFont constructor
* Added new macros for determining library version:
* CAIROMM_MAJOR_VERSION, CAIROMM_MINOR_VERSION, and
CAIROMM_MICRO_VERSION
* Add a bunch of extra .pc files for additional functionality
* like cairo, create convenience .pc files for using some of the
optional
features. For example, cairomm-ft-1.0, cairomm-pdf-1.0,
cairomm-xlib-1.0, etc.
* Numerous windows build improvements
* Added a *lot* of automated tests
--
jonner
_______________________________________________
cairo-announce mailing list
cairo-announce at lists.cairographics.org
http://lists.cairographics.org/mailman/listinfo/cairo-announce
More information about the cairo
mailing list