[cairo-announce] cairo snapshot 0.5.1 now available

Carl Worth cworth at cworth.org
Mon Jun 20 17:05:58 PDT 2005

A new cairo snapshot 0.5.1 is now available from:

        4bad34b337403e73637d2f6c752283f1  cairo-0.5.1.tar.gz

Have fun!


Snapshot 0.5.1 (2005-06-20 Carl Worth <cworth at cworth.org>)
API changes
* Removed cairo_status_string(cairo_t*) and add
  cairo_status_to_string(cairo_status_t) in its place. Code using
  cairo_status_string can be ported forward as follows:

	cairo_status (cr);
	cairo_status_to_string (cairo_status (cr));

* Removed the BAD_NESTING restriction which means that two different
  cairo_t objects can now interleave drawing to the same
  cairo_surface_t without causing an error.

* The following functions which previously had a return type of
  cairo_status_t now have a return type of void:


  See discussion of cairo_pattern_status below for more details.

API additions
* Improved error handling:

	cairo_pattern_status (cairo_pattern_t *pattern);

  This snapshot expands the status-based error handling scheme from
  cairo_t to cairo_path_t and cairo_pattern_t. It also expands the
  scheme so that object-creating functions, (cairo_create,
  cairo_pattern_create_*, cairo_copy_path_*), are now guaranteed to
  not return NULL. Instead, in the case of out-of-memory these
  functions will return a static object with
  status==CAIRO_STATUS_NO_MEMORY. The status can be checked with the
  functions cairo_status and cairo_pattern_status, or by direct
  inspection of the new status field in cairo_path_t.

  Please note that some objects, including cairo_surface_t and all of
  the font-related objects have not been converted to this
  error-handling scheme.

* In addition to the above changes, a new private function has been added:


  This function can be used to set a breakpoint in a debugger to make
  it easier to find programming error in cairo-using code. (Currently,
  _cairo_error is called when any error is detected within a cairo_t
  context, but is not called for non-cairo_t errors such as for
  cairo_path_t and cairo_pattern_t).

* Fixed cairo_path_data_t so that its enum is visible to C++ code, (as

Performance improvements
* Made a minor performance improvement for clipping, (restrict clip
  surface to the new intersected bounds).

* Optimize rendering of a solid source pattern with a pixel-aligned
  rectangular path to use backend clipping rather than rasterization
  and backend compositing.

* Optimize cairo_paint_with_alpha to defer to cairo_paint when alpha
  is 1.0.

Bug fixes
* Fixed memory leak in cairo_copy_path.

* A build fix for non-srcdir builds.

PDF backend fixes
* New support for path-based clipping.

* Fix for text rotated to angles other than multiples of π/2.

Win32 backend fixes
* Fix for text extents.

Xlib backend
* Implemented a complex workaround for X server bug[*] related to
  Render-based compositing with untransformed, repeating source
  pictures. The workaround uses core Xlib when possible for
  with an opaque source surface), and falls back to the pixman
  image-based compositing otherwise.

  [*] https://bugs.freedesktop.org/show_bug.cgi?id=3566

* Various bug fixes, particularly in the fallback paths.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo-announce/attachments/20050620/b2b502f0/attachment.pgp

More information about the cairo-announce mailing list