summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS192
1 files changed, 189 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index e39f957..410899a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,189 @@
+Release 0.9.2 (2005-08-13 Carl Worth <cworth@cworth.org>)
+=========================================================
+Release numbering
+-----------------
+ * You will notice that this release jumped from 0.9.0 to 0.9.2. We've
+ decided to use an odd micro version number (eg. 0.9.1) to indicate
+ in-progress development between releases. As soon as 0.9.2 is
+ tagged, the version will be incremented in CVS to 0.9.3 where it
+ will stay until just before 0.9.4 is built, uploaded, and tagged.
+
+ So, even-micro == a released version, odd-micro == something in-between.
+
+Libpixman dependency dropped
+----------------------------
+ * As of this release, the dependency on an internal libpixman has
+ been dropped. Instead, the code from libpixman needed for cairo has
+ been incorporated into the cairo source tree. The motivation for
+ this change is that while cairo's API is stable and ready to be
+ maintained after the 1.0 release, libpixman's API is not, so we do
+ not want to expose it at this time.
+
+ Also, the incorporation of libpixman into cairo also renames all
+ previously-public libpixman symbols in order to avoid any conflict
+ with a future release of libpixman
+
+API additions
+-------------
+ * Macros and functions have been added so that the version of cairo
+ can be queried at either compile-time or at run-time. The version
+ is made available as both a human-readable string and as a single
+ integer:
+
+ CAIRO_VERSION_STRING eg. "0.9.2"
+ CAIRO_VERSION eg. 000902
+
+ const char*
+ cairo_version_string (void); /* eg. "0.9.2" */
+
+ int
+ cairo_version (void); /* eg. 000902 */
+
+ A macro is provided to convert a three-part component version into
+ the encoded single-integer form:
+
+ CAIRO_VERSION_ENCODE(X,Y,Z)
+
+ For example, the CAIRO_VERSION value of 000902 is obtained as
+ CAIRO_VERSION_ENCODE(0,9,2). The intent is to make version
+ comparisons easy, either at compile-time:
+
+ #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(0,9,2)
+ ...
+ #endif
+
+ Or at run-time:
+
+ if (cairo_version() >= CAIRO_VERSION_ENCODE(0,9,2)) { /* ... */ }
+
+Thread safety
+-------------
+ * This release adds pthread-based locking (when available) to make
+ the caches used by cairo safe for threaded programs. Some may
+ remember a failed experiment with this locking between the 0.5.1
+ and 0.5.2 snapshots, (where even single-threaded programs that
+ linked with -lpthread would deadlock). We believe that that problem
+ has been fixed, so we are looking forward to testing and reports
+ from users with threaded applications.
+
+Bug fixes
+---------
+ * The XCB and Quartz backends failed to compiled in the 0.9.0 release
+ due to minor syntax errors. These have now been fixed.
+
+ * Various crashes in glitz and pixman due to size 0 glyphs have been
+ fixed.
+
+Release 0.9.0 (2005-08-08 Carl Worth <cworth@cworth.org>)
+=========================================================
+Soname change
+-------------
+ * In all prior snapshots, the libtool library versioning was set to
+ 1:0:0. As this release is intended to mark the beginning of
+ backwards-compatible releases, the versioning has been incremented
+ to 2:0:0. You will notice that the numeric extension on the
+ installed library filename will change similarly.
+
+ This change will also require all cairo-using applications to be
+ recompiled. We recognize that this may cause some frustration since
+ this release is backwards-compatible with 0.6.0 and in that sense
+ "shouldn't" require re-compilation. However, since all historical
+ snapshots have used the same 1:0:0 version in spite of incompatible
+ API changes between them, it was essential that the upcoming 1.0
+ release series have distinct library versioning.
+
+ All future releases will use the library versioning to properly
+ indicate compatibility between releases. So, any application
+ re-compiled now to work with the 0.9.0 will not need to be
+ recompiled when a compatible 1.0 release of cairo is made in the
+ future.
+
+API additions
+-------------
+ * Add new function calls to set/get the current antialiasing mode in
+ the graphics state:
+
+ cairo_set_antialias
+ cairo_get_antialias
+
+ This call accepts the same modes recently added for font options
+ (NONE or GRAY) but affects the rendering of geometry other than
+ text. The intent of this call is to enable more precise control of
+ which pixels are affected by each operation, for example to allow
+ for full-scene antialiasing for seam-free rendering. It is not
+ expected that non-antialiased rendering will perform better than
+ anti-aliased rendering.
+
+ * Three new functions were added to provide support for mixed cairo-
+ and non-cairo drawing to the same surface:
+
+ cairo_surface_mark_dirty
+ cairo_surface_mark_dirty_rectangle
+ cairo_surface_flush
+
+ * The return type of the several "reference" functions was change,
+ (API compatibly), from void to the same type as the argument. The
+ affected functions are:
+
+ cairo_font_face_reference
+ cairo_scaled_font_reference
+ cairo_pattern_reference
+ cairo_surface_reference
+ cairo_reference
+
+ This allows a convenient way to assign and reference in a single
+ statement.
+
+Semantic changes
+----------------
+ * The behavior of cairo_set_source with a pattern with a non-identity
+ matrix was previously not well-defined. The new behavior is as
+ follows:
+
+ The pattern's transformation matrix will be locked to the
+ user space in effect at the time of cairo_set_source(). This means
+ that further modifications of the CTM will not affect the source
+ pattern.
+
+cairo-win32
+-----------
+ * Some portability improvements, (eg. workaround for missing stdint.h).
+
+cairo-ft
+--------
+ * Updated to allow compilation with older versions of freetype.
+
+Bug fixes
+---------
+ * Fix the unbounded operators to actually produce a correct result,
+ (previously the results were artificially restricted to the
+ bounding box of whatever shape was being drawn rather than
+ extending out infinitely). The fixed operators are:
+
+ CAIRO_OPERATOR_CLEAR
+ CAIRO_OPERATOR_SOURCE
+ CAIRO_OPERATOR_OUT
+ CAIRO_OPERATOR_IN
+ CAIRO_OPERATOR_DEST_IN
+ CAIRO_OPERATOR_DEST_ATOP
+
+ * Fix cairo_mask and cairo_mask_surface to transform the mask by the
+ current transformation matrix (CTM).
+
+ * Fix cairo_set_source to lock the CTM used to transform the pattern.
+
+ * Workaround for X server Render bug involving repeating patterns
+ with a general transformation matrix.
+
+ * cairo_get_font_face fixed to return a "nil" font face object rather
+ than NULL on error.
+
+ * cairo_set_font_face fixed to not crash if given a NULL font face,
+ (which is the documented interface for restoring the default font
+ face).
+
+ * Fix xlib glyphset caching to not try to free a NULL glyph.
+
Snapshot 0.6.0 (2005-07-28 Carl Worth <cworth@cworth.org>)
==========================================================
API changes
@@ -125,7 +311,7 @@ API additions
cairo_xlib_surface_set_drawable
- which allos the target drawable for an xlib cairo_surface_t to be
+ which allows the target drawable for an xlib cairo_surface_t to be
changed to another with the same format, screen, and display. This
is necessary in certain double-buffering techniques.
@@ -190,7 +376,7 @@ Bug fixes
* Fix glyph caches to not eject entries that might be immediately
needed, (fixing intermittent crashes when rendering text).
-* Fix all memory leaks found by running "make check-valigrind".
+* Fix all memory leaks found by running "make check-valgrind".
ATSUI backend changes
---------------------
@@ -1132,7 +1318,7 @@ close_path). The cairo_current_path_flat function does not accept a
curve_to callback. Instead, all curved portions of the path will be
converted to line segments, (within the current tolerance value). This
can be handy for doing things like text-on-path without having to
-manually interpolate bezier splines.
+manually interpolate Bézier splines.
New XCB backend
---------------