[cairo-announce] cairo release 1.12.16 now available

Chris Wilson chris at chris-wilson.co.uk
Mon Aug 26 10:54:14 PDT 2013

A new cairo release 1.12.16 is now available from:


    which can be verified with:

	4f6e337d5d3edd7ea79d1426f575331552b003ec  cairo-1.12.16.tar.xz

	(signed by )

  Additionally, a git clone of the source tree:

	git clone git://git.cairographics.org/git/cairo

    will include a signed 1.12.16 tag which points to a commit named:

    which can be verified with:
	git verify-tag 1.12.16

    and can be checked out with a command such as:
	git checkout -b build 1.12.16

Release 1.12.16 (2013-08-21 Chris Wilson <chris at chris-wilson.co.uk>)
Thanks to everybody who reported a bug and helped us develop a fix,
we have amassed quite a few bug fixes. There are still more outstanding
bugs that seek attention and a little bit of TLC, but this release has
been delayed long enough...

Bug fixes

  Set the correct orientation for simple boxes with a negative scale

  Fix the creation of the shading dictionary in PDF.

  Fix a crash in PDF when incorporating an image with CAIRO_EXTEND_PAD.

  Avoid upscaling bitmap fonts if possible.

  Fix an assertion failure within the mempool allocator for shared memory.

  Fix allocation size for CFF subsets.

  Export cairo_matrix_t for GObject bindings.

  Fix a double free in the Quartz backend.

  Fix origin of GDI StretchBlits for the Windows backend

  Fix error propagation for requests to create a similar surface with
  negative size.

  Fix complex clipping of trapezoids with regions

  Stop leaking the image data when loading PNGs

  Fix unbounded operations with a clip mask through the span compositor

  Add missing checks before rendering to a finished surface - so we return
  an error rather than hit an assert.

  Prevent an assertion failure when creating similar GL surfaces larger
  than supported by hardware.

  Prevent a double free of a similar image under Windows.

Complete list of changes from 1.12.14 to 1.12.16

Adrian Johnson (3):
      pdf: add missing 'endobj' to shading dict
      pdf: fix typo in bbox check
      type1-subset: Don't try to rename non winansi glyphs

Behdad Esfahbod (12):
      [FT] Prefer downscaling bitmap glyphs to upscaling
      [test] Set font size
      [ft] I meant fabs(), not abs()
      [ft] Fix memory bug in copying bitmaps
      [ft] Fix wrong assumptions
      Towards support loading color glyphs from FreeType
      Support 2bit and 4bit embedded bitmaps
      [ft] Fix math
      [ft] Add missing include
      Revert accidentally committed stuff
      [ft] Fix alignment
      [ft] Ensure alignment of bitmaps received from FreeType

Bryce W. Harrington (16):
      test: Fix typo in sample_horizontal to use horizontal, not vertical.
      image: Quell warning about signed/unsigned int comparison.
      type1-subset: Quell warning about uninitialized array_start
      type1-subset: Fix typos in function comment
      pdf: Assure compiler that data, data_size will always be initialized
      gl: Quell warning about incompatible pointer type
      test: Note naming scheme for XFAIL images in README
      test: Fix make check-ref-dups due to move of ref images to reference/
      test: Add script to check for redundant reference images
      test: Use cmp to catch byte-by-byte identical files
      test: Make check-ref-dups utilize perceptualdiff for comparisons
      pdiff: Quell warning about signed/unsigned comparisons
      pdiff: Drop unused variable
      test: Add special cases for create-from-png and fallback-resolution
      HACKING: Make mention of the separate cairo-traces repo
      perf: Move macro-benchmark documentation to cairo-traces

Chris Wilson (45):
      Post release version bump to 1.12.15
      spans: Mark the surface as cleared in preparing for recording surface playback
      recording: Avoid indirection through indices array if not reduced
      path: Fix bbox computation for negative scale factors
      test: Exercise replaying a recording surface through a flip matrix
      win32: Free the fallback upon finish
      image: Compare against the true size of the embedded buffer
      xlib: Fix invocation of XRenderFindFormat()
      gl: Fix typo s/bool/cairo_bool_t/
      mempool: Reduce an assert into an error return for get_buddy()
      perf: Iteratively prune outliers
      xlib: Wrap errors generating sources in an error surface
      xlib: Trim uploads for surfaces extended by PAD
      png: Avoid marking the surface as in error after a png warning
      directfb: Correctly chain up map-to-image/unmap to the image backend
      traps: Ensure that we correctly clip when using multiple clip boxes
      xlib: Unlike the visual when destroying it
      test: Expand testing of caps for fine strokes
      test: Extend testing of joins for fine lines
      trace: Improve operand emission
      recording: Fix inconsistent usage of types for indices
      perf: Rudimentary histogram printing for cairo-perf-print
      perf: Rescale the histogram for the terminal
      perf: Avoid vertically stretching the histogram
      perf: Remove a debug artifact
      recording: Prevent invalid memory access with zero length command array
      scaled-font: Prevent a recursive mutex lock for removing a failed glyph
      pdf: Improve consistency in use of cairo_int_status_t
      pdf: Fix compiler warning for use of unitialised variable along error path
      image: Mark the data as owned after stealing the snapshot's image
      test/get-path-extents: Check exact matches within tolerance
      gstate: Speed up stroked path extents
      svg: Unwrap recording surfaces
      xml: Handle clip-boxes in the updated cairo_clip_t
      cairo-perf-print: Do not free the uninitialised histogram
      test: Use the highest precision rendering for shapes for generating ref results
      check: Fix check-def.sh for variations in GCC's linker
      test: Remove all identical (cmp & pdiff) reference images
      test: Add a few reference images found lurking on my machine
      test: Remove conflicting .ref.png, .argb32.ref.png, .rgb24.ref.png
      test: Amend check-refs.sh to support out-of-tree builds
      Provide backwards compatibilty with old pixman
      win32: Prevent double-free of similar images
      Make "make check" happy
      1.12.16 release

Eric Anholt (1):
      gl: Move glGetUniformLocation to shader compile time.

Henry Song (8):
      gl: disable GL_DITHER
      gl: Export query for EGLContext and EGLDisplay from device
      gl: Fix typo in gles2 shader cache lookup
      gl/msaa: Resolve multisampling on surface flush
      gl/msaa: Properly destroy stencil buffer clip cache
      gl/msaa: Disable stencil and scissor during framebuffer blit
      gl/msaa: Always use scissor when clipping
      gl/msaa: Clean up msaa depth/stencil buffer for OpenGLES

Jana Saout (1):
      pdf: Fix crash

Marc-André Lureau (1):
      win32: fix corrupted drawing

Marek Kasik (1):
      cff-subset: Fix allocation of width arrays

Martin Robinson (12):
      gl: Setup operands when the vertex size changes
      path: Fix a bug in line intersection
      stroke: Fix large line widths for fallback stroke shaper
      stroke: Use round-joins near inflection points of splines
      boilerplate: Add a mode for running threaded perf tests
      boilerplate/gl: Disable thread awareness
      gl: Separate framebuffer bind from destination selection
      gl: Update transformation when surface size changes
      gl: Bind the default framebuffer before calling gl{Read|Draw}Buffer
      gl: Fix compiler warnings in the GL backend
      gles: Switch default framebuffer destinations properly
      gl: Return surface in error when creating oversized texture surfaces

Matt Sealey (1):
      gitignore: negate gitignore for static pkgconfig files

Matthew Fischer (1):
      Adding a simple usage statement to cairo-perf-chart

Michael Hutchinson (1):
      quartz: Don't release memory we don't own

Nicola Fontana (1):
      gobject: Add wrapper around cairo_matrix_t

Uli Schlachter (13):
      test: Fix CAIRO_REF_DIR
      test: Fix handling of dots in CAIRO_TEST_TARGET
      boilerplate: rename xcb-render-0.0 to xcb-render-0_0
      Fix "make check" standalone header check
      xcb: Clear temporary replay image in recording playback
      Fix caps-tails-curve reference images
      Add new test for bug 61592
      image compositor: Always finish the span renderer
      xcb: Fix some uninitialized variable warnings
      api-special-cases: Also test contexts
      surface: Error out on finished surfaces
      push_group: Refuse working with unusable surface
      surface_get_extents: Reject finished or error surface

egag (1):
      xlib: Aquire display before using it in DEBUG message.

What is cairo
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System (via both Xlib and XCB), quartz, win32, and image buffers,
as well as PDF, PostScript, and SVG file output. Experimental backends
include OpenGL, BeOS, OS/2, and DirectFB.

Cairo is designed to produce consistent output on all output media
while taking advantage of display hardware acceleration when available
(for example, through the X Render Extension).

The cairo API provides operations similar to the drawing operators of
PostScript and PDF. Operations in cairo include stroking and filling
cubic Bézier splines, transforming and compositing translucent images,
and antialiased text rendering. All drawing operations can be
transformed by any affine transformation (scale, rotation, shear,

Cairo has been designed to let you draw anything you want in a modern
2D graphical user interface.  At the same time, the cairo API has been
designed to be as fun and easy to learn as possible. If you're not
having fun while programming with cairo, then we have failed
somewhere---let us know and we'll try to fix it next time around.

Cairo is free software and is available to be redistributed and/or
modified under the terms of either the GNU Lesser General Public
License (LGPL) version 2.1 or the Mozilla Public License (MPL) version

Where to get more information about cairo
The primary source of information about cairo is:


The latest versions of cairo can always be found at:


Documentation on using cairo and frequently-asked questions:


Mailing lists for contacting cairo users and developers:


Roadmap and unscheduled things to do, (please feel free to help out):


Chris Wilson, Intel Open Source Technology Centre
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.cairographics.org/archives/cairo-announce/attachments/20130826/8a30cd57/attachment.pgp>

More information about the cairo-announce mailing list