Jump to content
Compatible Support Forums
Sign in to follow this  
news

cairomm release 1.7.0 (UNSTABLE) now available

Recommended Posts

**********************

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

_______________________________________________

 

Share this post


Link to post

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×