[cairo-commit] 9 commits - configure.in doc/public NEWS src/cairo-gstate.c src/cairo-hull.c src/cairo-ps-surface.c src/cairo-quartz-font.c src/cairo-rectangle.c src/cairo-xlib-surface.c src/cairo-xlib-visual.c

Carl Worth cworth at kemper.freedesktop.org
Tue Apr 1 16:07:41 PDT 2008


 NEWS                            |  109 ++++++++++++++++++++++++++++++++++++++++
 configure.in                    |   14 +----
 doc/public/tmpl/cairo-ft.sgml   |    7 ++
 doc/public/tmpl/cairo-xlib.sgml |    7 ++
 src/cairo-gstate.c              |    2 
 src/cairo-hull.c                |    2 
 src/cairo-ps-surface.c          |    2 
 src/cairo-quartz-font.c         |    4 -
 src/cairo-rectangle.c           |    2 
 src/cairo-xlib-surface.c        |   14 ++---
 src/cairo-xlib-visual.c         |    2 
 11 files changed, 142 insertions(+), 23 deletions(-)

New commits:
commit 2f06284ad6154d1f5fac1a195edbcbc9ed3432cb
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 16:07:22 2008 -0700

    Increment cairo version to 1.5.17 after 1.5.16 snapshot

diff --git a/configure.in b/configure.in
index 7b391c3..89cdd3c 100644
--- a/configure.in
+++ b/configure.in
@@ -7,7 +7,7 @@ dnl For the micro number: odd => in-progress development (from git)
 dnl			  even => tar-file snapshot or release
 m4_define(cairo_version_major, 1)
 m4_define(cairo_version_minor, 5)
-m4_define(cairo_version_micro, 16)
+m4_define(cairo_version_micro, 17)
 
 AC_INIT([cairo],
       cairo_version_major.cairo_version_minor.cairo_version_micro,
commit 5366c8f483dc7bd40b5d0a184c9b16826007c032
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 15:52:41 2008 -0700

    Increment version to 1.5.16 and library versioning to 19:0:17

diff --git a/configure.in b/configure.in
index 6a83d58..7b391c3 100644
--- a/configure.in
+++ b/configure.in
@@ -7,7 +7,7 @@ dnl For the micro number: odd => in-progress development (from git)
 dnl			  even => tar-file snapshot or release
 m4_define(cairo_version_major, 1)
 m4_define(cairo_version_minor, 5)
-m4_define(cairo_version_micro, 15)
+m4_define(cairo_version_micro, 16)
 
 AC_INIT([cairo],
       cairo_version_major.cairo_version_minor.cairo_version_micro,
@@ -26,16 +26,16 @@ dnl ===========================================================================
 # libtool shared library version
 
 # Increment if the interface has additions, changes, removals.
-LT_CURRENT=18
+LT_CURRENT=19
 
 # Increment any time the source changes; set to
 # 0 if you increment CURRENT
-LT_REVISION=1
+LT_REVISION=0
 
 # Increment if any interfaces have been added; set to 0
 # if any interfaces have been removed. removal has
 # precedence over adding, so set to 0 if both happened.
-LT_AGE=16
+LT_AGE=17
 
 dnl ===========================================================================
 
commit eb6721f4ccc6ac861e16ec21c7b420645c4f572b
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 15:51:57 2008 -0700

    NEWS: Add notes for the cairo 1.5.16 snapshot

diff --git a/NEWS b/NEWS
index c6366e3..850a722 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,112 @@
+Snapshot 1.5.16 (2008-04-01 Carl Worth <cworth at cworth.org>)
+===========================================================
+This is the eighth snapshot in cairo's unstable 1.5 series. It comes
+less than two weeks after the 1.5.14 snapshot and it really is a
+legitimate snapshot, (in spite of sharing this date with that of many
+bogus announcements). The major change in this snapshot is that the
+cairo-quartz backend is now officially "supported", including new API
+to construct a font face from a CGFontRef . Also several bug fixes
+have been fixed in many backends. See below for details.
+
+general
+-------
+Cairo now depends on pixman 0.10.0 which was recently released. The
+latest pixman release can always be found alongside cairo releases at:
+
+   http://cairographics.org/releases
+
+Increase the precision of color stops for gradients. This fixes a
+regression in gradient rendering that had been present since the
+1.5.12 snapshot.
+
+paginated (all of ps, pdf, svg, and win32-printing)
+---------------------------------------------------
+Fix assertion failure when some drawing elements are outside the page
+boundaries, (this bug was noticed when using Inkscape to print a
+drawing with landscape orientation to a portrait-oriented piece of
+paper).
+
+cairo-ps
+--------
+Fix of bug causing incorrect glyph positioning.
+
+Fix handling of CAIRO_OPERATOR_SOURCE.
+
+cairo-pdf
+---------
+More reduction of unnecessary digits of precision in PDF output.
+
+Fix handling of CAIRO_OPERATOR_SOURCE.
+
+cairo-svg
+---------
+Fix bug in usage of libpng that was preventing cairo_mask from working
+with the svg backend.
+
+Fix transformation of source pattern for cairo_stroke().
+
+cairo-win32-printing
+--------------------
+Fix fallback resolution, (thanks again to inkscape users/developers
+for helping us find this one).
+
+cairo-quartz
+------------
+Mark the cairo-quartz backend as "supported" rather than
+"experimental". This means the following:
+
+    * The backend will now be built by default (if possible).
+
+    * We are committing that the backend-specific API (as published in
+      cairo-quartz.h) are stable and will be supported in all future
+      cairo 1.x releases.
+
+    * We are committing that the output quality of this backend
+      compares favorably with other cairo backends, (and that quality
+      is ensured by good results from the cairo test suite).
+
+    * We recommend that distributions build and distribute this
+      backend when possible.
+
+Note that the cairo_quartz_image API (in cairo-quartz-image.h) is
+still experimental, will not build by default, (pass
+--enable-quartz-image to configure to build it), and may see API
+changes before it is marked as "supported" in a future release.
+
+Put the CAIRO_FONT_TYPE_ATSUI name back into
+cairo-deprecated.h. Without this, the cairo 1.5.14 snapshot broke all
+builds for applications using the C++ cairomm bindings (and perhaps
+others) which have the CAIRO_FONT_TYPE_ATSUI name in their header
+files. This breakage happened even for applications not using
+cairo-quartz at all.
+
+    Note: Even though the CAIRO_FONT_TYPE_ATSUI name is provided to
+    avoid this build breakage, we still recommend that bindings and
+    applications move to the new, and more accurate,
+    CAIRO_FONT_TYPE_QUARTZ name.
+
+Replace the implementation of cairo-quartz-font to use CFFont instead
+of ATSUI. The CGFont API is a better fit than ATSUI, and this new
+implementation is also more correct than the old one as well.
+
+This also adds the following new API call:
+
+	cairo_public cairo_font_face_t *
+	cairo_quartz_font_face_create_for_cgfont (CGFontRef font);
+
+The previous cairo_quartz_font_face_create_for_atsu_font_id function
+continues to exist and is part of the supported API going
+forward. (However, the old name of that same function, which was
+cairo_atsui_font_face_create_for_atsu_font_id is officially
+deprecated. Any source code using the old name should be updated to
+use the new name.)
+
+Fix transformation of source pattern for cairo_stroke().
+
+cairo-win32
+-----------
+Avoid crash in create_similar is cairo_win32_surface_create fails.
+
 Snapshot 1.5.14 (2008-03-20 Carl Worth <cworth at cworth.org>)
 ===========================================================
 This is the seventh snapshot in cairo's unstable 1.5 series. It comes
commit 8707892b218cb79ef544ba396d4501827b900c32
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 15:40:54 2008 -0700

    Doc SGML template churn

diff --git a/doc/public/tmpl/cairo-ft.sgml b/doc/public/tmpl/cairo-ft.sgml
index 8414c86..0aac482 100644
--- a/doc/public/tmpl/cairo-ft.sgml
+++ b/doc/public/tmpl/cairo-ft.sgml
@@ -20,6 +20,13 @@ systems, but can be used on other platforms too.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### MACRO CAIRO_HAS_FT_FONT ##### -->
+<para>
+
+</para>
+
+
+
 <!-- ##### FUNCTION cairo_ft_font_face_create_for_ft_face ##### -->
 <para>
 
diff --git a/doc/public/tmpl/cairo-xlib.sgml b/doc/public/tmpl/cairo-xlib.sgml
index e0927d0..9e33a17 100644
--- a/doc/public/tmpl/cairo-xlib.sgml
+++ b/doc/public/tmpl/cairo-xlib.sgml
@@ -24,6 +24,13 @@ if it is available.
 <!-- ##### SECTION Stability_Level ##### -->
 
 
+<!-- ##### MACRO CAIRO_HAS_XLIB_SURFACE ##### -->
+<para>
+
+</para>
+
+
+
 <!-- ##### FUNCTION cairo_xlib_surface_create ##### -->
 <para>
 
commit 5d0b2ede52eb6d05a7d5579e6bcd1d4d1850300c
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 15:24:48 2008 -0700

    Mark cairo-quartz as officially supported
    
    An especial thanks to Vladimir Vukicevic and the Mozilla
    Foundation for a tremendous amount of work on cairo-quartz
    while it has been marked as "experimental"

diff --git a/configure.in b/configure.in
index 65080bd..6a83d58 100644
--- a/configure.in
+++ b/configure.in
@@ -355,7 +355,7 @@ CAIRO_BACKEND_ENABLE(xcb, XCB, xcb, XCB_SURFACE, no, [
 
 dnl ===========================================================================
 
-CAIRO_BACKEND_ENABLE(quartz, Quartz, quartz, QUARTZ_SURFACE, no, [
+CAIRO_BACKEND_ENABLE(quartz, Quartz, quartz, QUARTZ_SURFACE, auto, [
   dnl There is no pkgconfig for quartz; lets do a header check
   AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h, , [use_quartz="no (ApplicationServices framework not found)"])
   if test "x$use_quartz" != "xyes" ; then
@@ -1140,10 +1140,6 @@ if test x"$use_xcb" = "xyes" ; then
    echo "$WARNING_MESSAGE" | sed 's/@BACKEND@/XCB/'
 fi
 
-if test x"$use_quartz" = "xyes" ; then
-   echo "$WARNING_MESSAGE" | sed 's/@BACKEND@/Quartz/'
-fi
-
 if test x"$use_quartz_image" = "xyes" ; then
    echo "$WARNING_MESSAGE" | sed 's/@BACKEND@/Quartz Image/'
 fi
commit 07130a9061b012bb5c206dc547b4cc0cc69dcbf1
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 15:20:42 2008 -0700

    Include cairoint.h first to satisfy the test suite
    
    Forgetting to include cairoint.h (or not including it first) can
    cause some subtle bugs due to specific feature flags not being
    set, etc.

diff --git a/src/cairo-quartz-font.c b/src/cairo-quartz-font.c
index 52a5498..e8eaba9 100644
--- a/src/cairo-quartz-font.c
+++ b/src/cairo-quartz-font.c
@@ -34,10 +34,10 @@
  *	Vladimir Vukicevic <vladimir at mozilla.com>
  */
 
-#include <dlfcn.h>
-
 #include "cairoint.h"
 
+#include <dlfcn.h>
+
 #include "cairo-quartz.h"
 #include "cairo-quartz-private.h"
 
commit 46ea00d829bc50ab5316d2257e0d1ed1d8e3f4b6
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 14:53:55 2008 -0700

    More quieting of subtle potentially-uninitialized warnings
    
    The compiler isn't clever enough to notice that these
    variables are always initialized (in either the TrueColor
    or ! TrueColor conditions corresponding to the later
    identical conditions in which the variables are used).

diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 9e8776a..0662b70 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -648,11 +648,11 @@ _get_image_surface (cairo_xlib_surface_t    *surface,
 	uint32_t *row;
 	uint32_t in_pixel, out_pixel;
 	unsigned int rowstride;
-	uint32_t a_mask, r_mask, g_mask, b_mask;
-	int a_width, r_width, g_width, b_width;
-	int a_shift, r_shift, g_shift, b_shift;
+	uint32_t a_mask=0, r_mask=0, g_mask=0, b_mask=0;
+	int a_width=0, r_width=0, g_width=0, b_width=0;
+	int a_shift=0, r_shift=0, g_shift=0, b_shift=0;
 	int x, y;
-	XColor *colors;
+	XColor *colors = NULL;
 
 	/* The visual we are dealing with is not supported by the
 	 * standard pixman formats. So we must first convert the data
@@ -842,7 +842,7 @@ _draw_image_surface (cairo_xlib_surface_t   *surface,
     int native_byte_order = _native_byte_order_lsb () ? LSBFirst : MSBFirst;
     cairo_status_t status;
     cairo_bool_t own_data;
-    unsigned long *rgb333_to_pseudocolor;
+    unsigned long *rgb333_to_pseudocolor = NULL;
 
     _pixman_format_to_masks (image->pixman_format, &image_masks);
     
@@ -872,8 +872,8 @@ _draw_image_surface (cairo_xlib_surface_t   *surface,
 	unsigned int stride, rowstride;
 	int x, y;
 	uint32_t in_pixel, out_pixel, *row;
-	int a_width, r_width, g_width, b_width;
-	int a_shift, r_shift, g_shift, b_shift;
+	int a_width=0, r_width=0, g_width=0, b_width=0;
+	int a_shift=0, r_shift=0, g_shift=0, b_shift=0;
 
 	if (surface->depth > 16) {
 	    ximage.bits_per_pixel = 32;
commit 1489e66d250c070c46cb42a1db9ea9f447f464b9
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 14:49:03 2008 -0700

    Quiet a more subtle potentially-uninitialized warning
    
    The compiler isn't clever enough to notice that these
    variables are always initialized.

diff --git a/src/cairo-rectangle.c b/src/cairo-rectangle.c
index d2ec52d..6fb0ef2 100644
--- a/src/cairo-rectangle.c
+++ b/src/cairo-rectangle.c
@@ -108,7 +108,7 @@ _cairo_rectangle_intersect (cairo_rectangle_int_t *dest, cairo_rectangle_int_t *
 cairo_bool_t
 _cairo_box_intersects_line_segment (cairo_box_t *box, cairo_line_t *line)
 {
-    cairo_fixed_t t1, t2, t3, t4;
+    cairo_fixed_t t1=0, t2=0, t3=0, t4=0;
     cairo_int64_t t1y, t2y, t3x, t4x;
 
     cairo_fixed_t xlen, ylen;
commit afc6e3b69dcadc63b1dd26a6d67a7da20d7397fe
Author: Carl Worth <cworth at cworth.org>
Date:   Tue Apr 1 14:40:18 2008 -0700

    Quiet some trivial unused and potentially-uninitialized compiler warnings

diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index cf9f31a..0f35b7f 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -255,7 +255,7 @@ _cairo_gstate_clone (cairo_gstate_t *other, cairo_gstate_t **out)
 cairo_status_t
 _cairo_gstate_save (cairo_gstate_t **gstate)
 {
-    cairo_gstate_t *top;
+    cairo_gstate_t *top = NULL;
     cairo_status_t status;
 
     status = _cairo_gstate_clone (*gstate, &top);
diff --git a/src/cairo-hull.c b/src/cairo-hull.c
index a9e55e6..73d95c5 100644
--- a/src/cairo-hull.c
+++ b/src/cairo-hull.c
@@ -192,7 +192,7 @@ cairo_status_t
 _cairo_hull_compute (cairo_pen_vertex_t *vertices, int *num_vertices)
 {
     cairo_status_t status;
-    cairo_hull_t *hull;
+    cairo_hull_t *hull = NULL;
     int num_hull = *num_vertices;
 
     status = _cairo_hull_create (vertices, num_hull, &hull);
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index e906563..1ae2158 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -2889,7 +2889,7 @@ _cairo_ps_surface_paint (void			*abstract_surface,
 {
     cairo_ps_surface_t *surface = abstract_surface;
     cairo_output_stream_t *stream = surface->stream;
-    cairo_rectangle_int_t extents, surface_extents;
+    cairo_rectangle_int_t extents;
     cairo_status_t status;
 
     if (surface->paginated_mode == CAIRO_PAGINATED_MODE_ANALYZE)
diff --git a/src/cairo-xlib-visual.c b/src/cairo-xlib-visual.c
index 016ab00..882028a 100644
--- a/src/cairo-xlib-visual.c
+++ b/src/cairo-xlib-visual.c
@@ -63,7 +63,7 @@ _cairo_xlib_visual_info_create (Display *dpy, int screen, VisualID visualid)
     Colormap colormap = DefaultColormap (dpy, screen);
     XColor color;
     int gray, red, green, blue;
-    int i, distance, min_distance, index;
+    int i, index, distance, min_distance = 0;
 
     const unsigned short index5_to_short[5] = {
 	0x0000, 0x4000, 0x8000, 0xc000, 0xffff


More information about the cairo-commit mailing list