GNOME 3622 Published by

A new cairo release 1.4.0 is now available from:

http://cairographics.org/releases/cairo-1.4.0.tar.gz

which can be verified with:

http://cairographics.org/releases/cairo-1.4.0.tar.gz.sha1
2ce727347d8285cee4ce0c3feb0a2df18316a5d3 cairo-1.4.0.tar.gz

http://cairographics.org/releases/cairo-1.4.0.tar.gz.sha1.asc
(signed by Carl Worth)



Additionally, a git clone of the source tree:

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

will include a signed 1.4.0 tag which points to a commit named:
5dfa8c23f13f5cafac5cf56f34888a6e01dc79ba

which can be verified with:
git verify-tag 1.4.0

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

The many people who have been working hard on cairo are very
pleased to announce the long-awaited release of cairo 1.4. This
release comes 4 months after the last stable update release (1.2.6)
and 9 months since the initial release of 1.2.0.

The release notes below are intended to capture the highlights of the
changes that have occurred from the 1.2 series to the new 1.4.0
release.

Everyone, have fun with cairo!

-Carl

Overview of changes from 1.2.6 to 1.4.0
=========================
==============
Performance improvements
------------------------
Within the cairo project, the last 6 months or so has seen an intense
effort focusing on the performance of cairo itself. That effort has
paid off considerably, as can be seen in the following highlights of
some of the performance differences from cairo 1.2.6 to cairo 1.4.0.

(Note: The performance results reported here were measured on an x86
laptop. Many of the improvements in 1.4---particular those involving
text rendering---are even more dramatic on embedded platforms without
hardware floating-point units. Such devices played an important part
of many of the optimizations that found their way into cairo over the
last few months.)

=E2=80=A2 Dramatic improvement when drawing objects that are mostly off-scr
een
with the image backend (with the xlib backend this case is still
slow due to an X server bug):

image-rgba long-lines-uncropped-100 479.64 -> 4.98: 96.24x speedup
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96
=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=8B

=E2=80=A2 Dramatic improvement when copying a small fraction of an image
surface to an xlib surface:

xlib-rgba subimage_copy-512 3.93 -> 0.07: 54.52x speedup
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2
=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96
=88=E2=96=88=E2=96=8A

=E2=80=A2 Dramatic improvement to tessellation speed for complex objects:

image-rgb tessellate-256-100 874.16 -> 34.79: 25.13x speedup
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=8F
xlib-rgba zrusin_another_fill-415 148.40 -> 13.85: 10.72x speedup
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=89
xlib-rgb world_map-800 680.20 -> 345.54: 1.97x speedup
=E2=96=8C

=E2=80=A2 Dramatic improvement to the speed of stroking rectilinear shapes,
(such as the outline of a rectangle or "box"):

image-rgb box-outline-stroke-100 0.18 -> 0.01: 24.22x speedup
=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88=E2=96=88
=E2=96=88=E2=96=88=E2=96=88=E2=96=8B
xlib-rgb box-outline-stroke-100 0.46 -> 0.06: 8.05x speedup
=E2=96=88=E2=96=88=E2=96=88=E2=96=8C


=E2=80=A2 Dramatic improvements to text rendering speeds:

xlib-rgba text_image_rgba_over-256 63.12 -> 9.61: 6.57x speedup
=E2=96=88=E2=96=88=E2=96=8A

=E2=80=A2 3x improvements to floating-point to fixed-point conversion speed
s:

image-rgba pattern_create_radial-16 9.29 -> 3.44: 2.70x speedup
=E2=96=89

=E2=80=A2 2x improvements to linear gradient computation:

image-rgb paint_linear_rgb_source-512 26.22 -> 11.61: 2.26x speedup
=E2=96=8B

=E2=80=A2 2x improvement to a case common in PDF rendering:

image-rgb unaligned_clip-100 0.10 -> 0.06: 1.81x speedup
=E2=96=8D

=E2=80=A2 1.3x improvement to rectangle filling speed (note: this improveme
nt
is new since 1.3.16---previously this test case was a 1.3x slowdown
compared to 1.2.6):

image-rgba rectangles-512 6.19 -> 4.37: 1.42x speedup
=E2=96=8E
xlib-rgba rectangles-512 7.48 -> 5.58: 1.34x speedup
=E2=96=8F

NOTE: In spite of our best efforts, there are some measurable
performance regressions in 1.4 compared to 1.2. It appears that the
primary problem is the increased overhead of the new tessellator when
drawing many, very simple shapes. The following test cases capture
some of that slowdown:

image-rgba mosaic_tessellate_lines-800 11.03 -> 14.29: 1.30x slowdo
wn
=E2=96=8F
image-rgba box-outline-fill-100 0.01 -> 0.01: 1.26x slowdo
wn
=E2=96=8F
image-rgba fill_solid_rgb_over-64 0.20 -> 0.22: 1.12x slowdo
wn

image-rgba fill_image_rgba_over-64 0.23 -> 0.25: 1.10x slowdo
wn

xlib-rgb paint_image_rgba_source-256 3.24 -> 3.47: 1.07x slowdo
wn

We did put some special effort into eliminating this slowdown for the
very common case of drawing axis-aligned rectangles with an identity
matrix (see the box-outline-stroke and rectangles speedup numbers
above). Eliminating the rest of this slowdown will be a worthwhile
project going forward.

Also note that the "box-outline-fill" case is a slowdown while
"box-outline-stroke" is a (huge) speedup. These two test cases
resulted from the fact that some GTK+ theme authors were filling
between two rectangles to avoid slow performance from the more natural
means of achieving the same shape by stroking a single rectangle. With
1.4 that workaround should definitely be eliminated as it will now
cause things to perform more slowly.

Greatly improved PDF output
---------------------------
We are very happy to be able to announce that cairo-generated PDF
output will now have text that can be selected, cut-and-pasted, and
searched with most capable PDF viewer applications. This is something
that was not ever possible with cairo 1.2.

Also, the PDF output now has much more compact encoding of text than
before. Cairo is now much more careful to not embed multiple copies of
the same font at different sizes. It also compresses text and font
streams within the PDF output.

API additions
-------------
There are several new functions available in 1.4 that were not
available in 1.2. Curiously, almost all of the new functions simply
allow the user to query state that has been set in cairo (many new
"get" functions) rather than providing any fundamentally new
operations. The new functionality is:

=E2=80=A2 Getting information about the current clip region

cairo_clip_extents
cairo_copy_clip_rectangle_list
cairo_rectangle_list_destroy

=E2=80=A2 Getting information about the current dash setting

cairo_get_dash_count
cairo_get_dash

=E2=80=A2 Getting information from a pattern

cairo_pattern_get_rgba
cairo_pattern_get_surface
cairo_pattern_get_color_stop_rgba
cairo_pattern_get_color_stop_count
cairo_pattern_get_linear_points
cairo_pattern_get_radial_circles

=E2=80=A2 Getting the current scaled font

cairo_get_scaled_font

=E2=80=A2 Getting reference counts

cairo_get_reference_count
cairo_surface_get_reference_count
cairo_pattern_get_reference_count
cairo_font_face_get_reference_count
cairo_scaled_font_get_reference_count

=E2=80=A2 Setting/getting user data on objects

cairo_set_user_data
cairo_get_user_data
cairo_pattern_set_user_data
cairo_pattern_get_user_data
cairo_scaled_font_set_user_data
cairo_scaled_font_get_user_data

=E2=80=A2 New cairo-win32 functions:

cairo_win32_surface_create_with_ddb
cairo_win32_surface_get_image
cairo_win32_scaled_font_get_logical_to_device
cairo_win32_scaled_font_get_device_to_logical

API deprecation
---------------
The CAIRO_FORMAT_RGB16_565 enum value has been deprecated. It never
worked as a format value for cairo_image_surface_create, and it wasn't
necessary for supporting 16-bit 565 X server visuals.

A sampling of bug fixes in cairo 1.4
------------------------------------
=E2=80=A2 Fixed radial gradients
=E2=80=A2 Fixed dashing (degenerate and "leaky" cases)
=E2=80=A2 Fixed transformed images in PDF/PS output (eliminate bogus repe
ating)
=E2=80=A2 Eliminate errors from CAIRO_EXTEND_REFLECT and CAIRO_EXTEND_PAD
=E2=80=A2 cairo_show_page no longer needed for single-page output
=E2=80=A2 SVG: Fix bug preventing text from appearing in many viewers
=E2=80=A2 cairo-ft: Return correct metrics when hinting is off
=E2=80=A2 Eliminate crash in cairo_create_similar if nil surface is retur
ned
=E2=80=A2 Eliminate crash after INVALID_RESTORE error
=E2=80=A2 Fix many bugs related to multi-threaded use and locking
=E2=80=A2 Fix for glyph spacing 32 times larger than desired (cairo-win32)
=E2=80=A2 Fixed several problems in cairo-atsui (assertion failures)
=E2=80=A2 Fix PDF output to avoid problems when printing from Acrobat Rea
der
=E2=80=A2 Fix segfault on Mac OS X (measuring a zero-length string)
=E2=80=A2 Fix text extents to not include the size of non-inked characters
=E2=80=A2 Fix for glyph cache race condition in glitz backend (Jinghua Lu
o)
=E2=80=A2 Fix make check to work on OPD platforms (IA64 or PPC64)
=E2=80=A2 Fix compilation problems of cairo "wideint" code on some platfo
rms
=E2=80=A2 Many, many others...

Experimental backends (quartz, XCB, OS/2, BeOS, directfb)
---------------------------------------------------------
None of cairo's experimental backends are graduating to "supported"
status with 1.4.0, but two of them in particular (quartz and xcb), are
very close.

The quartz baceknd has been entirely rewritten and is now much more
efficient. The XCB backend has been updated to track the latest XCB
API (which recently had a 1.0 release).

We hope to see these backends become supported in a future release,
(once they are passing all the tests in cairo's test suite).

The experimental OS/2 backend is new in cairo 1.4 compared to cairo
1.2.

Documentation improvements
--------------------------
We have added documentation for several functions and types that
were previously undocumented, and improved documentation on other
ones. As of this release, there remain only two undocumented
symbols: cairo_filter_t and cairo_operator_t.

Thanks to everyone
---------------------
I've accounted for 41 distinct people with attributed code added to
cairo between 1.2.6 and 1.4.0, (their names are below). That's an
impressive number, but there are certainly dozens more that
contributed with testing, suggestions, clarifying questions, and
encouragement. I'm grateful for the friendships that have developed as
we have worked on cairo together. Thanks to everyone for making this
all so much fun!

Adrian Johnson, Alfred Peng, Alp Toker, Behdad Esfahbod,
Benjamin Otte, Brian Ewins, Carl Worth, Christian Biesinger,
Christopher (Monty) Montgomery, Daniel Amelang, Dan Williams,
Dave Yeo, David Turner, Emmanuel Pacaud, Eugeniy Meshcheryakov,
Frederic Crozat, Hans Breuer, Ian Osgood, Jamey Sharp, Jeff Muizelaar,
Jeff Smith, Jinghua Luo, Jonathan Watt, Joonas Pihlaja, Jorn Baayen,
Kalle Vahlman, Kjartan Maraas, Kristian H=C3=B8gsberg, M Joonas Pihlaja,
Mathias Hasselmann, Mathieu Lacage, Michael Emmel, Nicholas Miell,
Pavel Roskin, Peter Weilbacher, Robert O'Callahan,
Soren Sandmann Pedersen, Stuart Parmenter, T Rowley,
Vladimir Vukicevic

What is cairo
=============
Cairo is a 2D graphics library with support for multiple output
devices. Currently supported output targets include the X Window
System, win32, and image buffers, as well as PDF, PostScript, and SVG
file output. Experimental backends include OpenGL (through glitz),
Quartz, XCB, 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 including stroking and filling
cubic B=C3=A9zier splines, transforming and compositing translucent images,
and antialiased text rendering. All drawing operations can be
transformed by any affine transformation (scale, rotation, shear,
etc.).

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
1.1.

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

http://cairographics.org/

The latest releases of cairo can be found at:

http://cairographics.org/releases

Snapshots of in-development versions of cairo:

http://cairographics.org/snapshots

The programming manual for using cairo:

http://cairographics.org/manual

Mailing lists for contacting cairo users and developers:

http://cairographics.org/lists

Answers to some frequently asked questions about cairo:

http://cairographics.org/FAQ

Summary of every commit from 1.2.6 to 1.4.0
=========================
==================
Adrian Johnson (38):
Fix Type 1 embedding in PDF
Correct the value of /LastChar in the PDF Type 1 font dictionary.
Improve error checking in TrueType subsetting
Generate Type 1 fonts from glyph outlines
cairo-type1-fallback.c: return correct error status
Correct an unsigned to signed conversion problem in truetype subsetti
ng bbox
Type 1 fallback fonts - use binary encoding in PDF files
Type1 subsetting: Don't put .notdef in Encoding when there are 256 gl
yphs
PS: Add cairo version to PS header
PDF: Add cairo version to document info dictionary
type1 fallback: ensure all functions perform correct status checking
PS: Use xshow/yshow/xyshow for strings of glyphs
Add OpenType/CFF Subsetting
PDF: Use Td where possible instead of Tm for positioning glyphs
Add cairo-deflate-stream.c
PDF: Compress the content stream
TrueType Subsetting: Add comment
TrueType Subsetting: Whitespace change
TrueType: Include notdef glyph in the subset
PDF: Add Encoding dictionary to TrueType fonts
PDF: Fix TrueType font metrics
PS: Correct the TrueType Encoding and Charstrings
PDF: Correct the y value of Td in show_glyphs
PDF: Make text selection and extraction work
PDF: Another fix for TrueType metrics
PDF: Fix Type3 font metrics to make text selection work
PDF: Compress Type3 fonts
Output-stream: Omit the minus sign from negative zero
PDF: Remove dead code
CFF: Fix Visual C++ compile problem
output-stream: coding style fix
PDF: Add missing character code to Differences array
TrueType: Add post table and 3,0 cmap encoding
TrueType: fix bug #9998 - build error with gcc 2.95
PDF/PS: Don't embed multiple copies of the same font
Win32: Fix _cairo_win32_scaled_font_map_glyphs_to_unicode return type
Subsetting: Add check for malloc() error
PDF: Ensure ToUnicode CMap name is unique

Alfred Peng (2):
Add Sun Pro C definition of pixman_private
Use pixman_private consistently as prefix not suffix

Alp Toker (1):
Fix various code/comment typos

Behdad Esfahbod (179):
[test] Use $(srcdir) to find valgrind supressions
[test] Use FcFreeTypeQuery
[configure] Invalidate cached warning flags if list of flags changes
[Makefile] Fix typo
[Makefile] Add perf to DIST_SUBDIRS
Update
[perf/Makefile] Unset DIST_SUBDIRS
[test/Makefile] Unset DIST_SUBDIRS
Add scripts to sanity check the shared object for exported and PLT sy
mbols
Add
[x86-64] check-plt.sh: match on JU?MP_SLO as on x86-64 "SLOT" is trun
cated
configure.in: Require automake version 1.9 here too
cairo_show_glphs: Mark glyphs argument as const.
[ROADMAP] Check RGB16_565 deprecated
[ROADMAP] Add polling API
check-headers.sh: Add a test for cairo_public decorators in public h
eaders
cairo-pdf.h: Add missing cairo_public decorators
cairo-directfb.h: Add missing cairo_public decorators
cairo-nquartz.h: Add missing cairo_public decorators.
check-def.sh: Only allow _cairo_.*_test_.* symbols, not all _cairo.*
ones
[configure] Print out whether SVG and PDF surfaces can be tested
[check-headers.sh] Don't use '\>' regexp syntax
[Makefile.am] Pass srcdir down to the tests
[slim] hide cairo_pattern_status() #8551
[slim] hide cairo_glitz_surface_create() (#8551)
[configure.in] Require pkg-config 0.19. (#8686)
[test] Make sure tests are not relinked unnecessarily
[perf] Remove SUBDIRS=../boilerplate and add explicit dependencies
Make autogen.sh extract required versions from configure.in
Require automake 1.7 again
[PDF] Set CTM before path construction
[autogen.sh] Make sed script portable
[Makefile.am] Minor fixes in release-publish output
[Makefile.am] Pass tag message to git-tag in release-publish
[configure] Err if a suitable pkg-config is not found
Fix typo.
Add notes for the 1.2.6 release.
[SVG] Define enum _cairo_svg_version.
[PS] Eliminate compiler warnings about unoptimizable loops
[PS] Rename n_glyphs to num_glyphs_unsigned
[SVG] Fix compiler warning
[test|perf|boilerplate/Makefile.am] Add -I$(top_builddir)/src to INCL
UDES
[configure] Remove the pkg-config minimum version requirement
[.gitignore] Add big-trap
[test] Break the "make clean" target into serveral rm calls
[docs] Document various CAIRO_VERSION_* macros
[doc/public/Makefile.am] Move the list of private headers generatable
[docs] Hook various new API into cairo-sections.txt
[docs] Document CAIRO_VERSION_STRING.
[doc] Minor wording improvement.
[pixman] Remove unused slim_internal.h
[slim] Define slim macros to dummy prototypes for non-gcc compilers (
#9150)
[docs] Generate index of new symbols in 1.4
[docs] Update templates
[FreeType] Do not return large structs from functions
[FreeType] Remove "UNSUPPORTED" show_glyphs stub and NULL its entry
Add/remove const to cairo_glyph_t* arguments consistently
[cairoint] Define CAIRO_STACK_BUFFER_SIZE (defaults to 2kb)
[cairo-gstate] Use a local buffer on the stack for small glyph operat
ions
Cache rounded glyph advance values
[Xlib] Rewrite an optimized cairo_xlib_show_glyphs()
[pdiff] Fix compiler warnings, that were causing crashes
[pdiff] Use CAIRO_CFLAGS, to make sure warnings are enabled
[cairo-gstate] Don't bypass glyph transformation if font_matrix has t
ranslation (#9365)
[test] Fix typo in test comment
[test] Add ft-text-vertical-layout-type3-ps-argb32-ref.png
[configure] Use AC_C_INLINE to correctly define inline
[pdiff] Don't use float math functions if not using gcc with C99
[pdiff] Define _GNU_SOURCE to get correct symbols out of <math.h>
[PS] Fix typo in comment emitted for Type1 fallback font subsets
[type1-subset] Return UNSUPPORTED for vertical fonts
[tests/ft-text-vertical-layout-type3] Remove comment that this emits
Type3 font
[test] Fix typo in test comment, again
[cairo-scaled-font] Skip invisible glyphs (like space) in glyph_exten
ts() (#9422)
Don't call into backends if num_glyphs is zero (#5177)
[test] Add new test text-zero-len (#5177)
In _cairo_scaled_font_text_to_glyphs, bail if text is zero-length (#5
177)
[src/Makefile.am] Don't remove cairo-features.h in "make clean"
Spell check the docs
[cairo-type1-subset] Do not use an array of pointers, to reduce .data
size
[TODO] Move some items from ROADMAP, and some new ones, into TODO
PDF: Fix approximate diagonal in recent commit
[pixman/src/fbmmx.c] Hide "dereferencing type-punned pointer" warnings
[configure.in] Use AC_MSG_RESULT in PKG_CHECK_MODULES's second branch
[pixman/src/fbmmx.c] Add comment around M64
[configure] Improve win32 detection
[test/Makefile.am] Document why svg2png and pdf2png use LDADD
[win32] Make win32-surface compile without win32-font
[test] Add test case for bug #7965 to the get-path-extents test
[test] Remove ft-text-vertical-layout-type1 from XFAIL
[PS] Fix rotated image pattern emission by correcting setting the bbox
[test] Remove text-rotate test from XFAIL as the bugs are fixed now
[test] Fix syntax typo in text-rotate
[Makefile.am] Include boilerplate/ in SUBDIRS
[FreeType] Truely return unhinted advance width if metrics hinting is
off
[xlib/xcb] Check for same_screen in is_compatible
[test] Add ref image for extend-reflect
[cairo-surface] Do not err on CAIRO_EXTEND_PAD and CAIRO_EXTEND_REFLE
CT
[PS] Update surface_pattern_supported() from PDF
Support CAIRO_EXTEND_REFLECT on surface patterns
[cairo-pattern] Fall back on cairo_surface_create_similar in _cairo_p
attern_acquire_surface_for_surface
[cairo-pattern] Correctly delegate device_transform so tests pass aga
in
[SVG] Use _cairo_pattern_acquire_surface instead of _cairo_surface_ac
quire_source_image
[surface] Copy device_transform_inverse in _cairo_surface_clone_simil
ar
[test] Increase size of extend-reflect test to see that pattern repea
ts
[PS/PDF] Accept CAIRO_EXTEND_REFLECT surface patterns natively
[test] Update surface-pattern test to include transformations
[test] Remove non-existing test extend-pad
[PS] Fix surface patterns with transforms
[test] Add a new, XFAIL, extend-pad test
[TODO] Add various TODO items
[SVG] Rename a local variable for clarity
[SVG] Fix warnings
[TODO] More TODO items
[PS] Add note about possible need for fix.
[Makefile.am] Remove ChangeLog.cache-* in distclean
[test] Add tests that show xstep/ystep failures in PS/PDF backends
[PS/PDF] Fix xstep/ystep values for CAIRO_EXTEND_NONE
[test] Add ref images for new tests
[cairo.h] Reorder function prototypes a bit for clarity
[cairo.c] Reorder some function implementations for clarity
[quartz] Remove comment syntax that is recognized by gtkdoc from regu
lar comments
Implement cairo_get_scaled_font()
Slim-hidden cairo_scale()
[doc] Add new APIs to cairo-sections.txt
[paginated] Automatically issue a final cairo_show_page()
[paginated] Also do an automatic show page if nothing ever drawn
[boilerplate/test-paginated] Issue a show_page before writing buffer
Revert the solid-pattern cache
[TODO] Add/remove items
[RELEASING] Add notifying desktop-devel-list
[paginated] Also increase page number in copy_page
[TODO] Add cairo_surface_copy_page()
[xlib] Drop XrmFinalize() stuff. That didn't ever exist in any publi
c X server
[test] Plug a leak in the test suite
[test] Add leak-revealing path to rectilinear-stroke
Fix leak in rectilinear stroking code
[test] Add more valgrind suppressions
[boilerplate] Add correct dependency on libcairo.la
[test] Move .la dependencies around
[PS/PDF] Mark CAIRO_EXTEND_PAD for surface patterns as natively suppo
rted
[test] Support passing extra valgrind flags
[NEWS] Fix typos
[doc] Update list of header files to ignore
[doc] Some documentation love
Beautify cairo.h
[doc] Docuemnt all symbols but cairo_filter_t and cairo_operator_t
[doc] Update templates
[NEWS] Add note about documentation improvements
[test] Update list of refrerence images
[ChangeLog.mk] Adapt to latest git-describe output format
[Makefile.am] Check for ChangeLog sanity in release-publish
[test] Include romedalen.png in dist, oops
[RELEASING] Add note about ChangeLog sanity
[configure.in] Increase version to 1.3.16 in preparation for release
[configure.in] Increase version to 1.3.17 post-release
[RELEASING] Fix git-tag invocation
[RELEASING] Reorder pushing tag and commits
[RELEASING] Note that two versions should be added to bugzilla
[RELEASING] Update announcement mail instructions
[Makefile.am] Remove releasing instructions that are in RELEASING alr
eady
[Makefile.am] --enable-test-surfaces in distcheck
[ROADMAP] Remove 1.3.14 items, add 1.4.2 ones
[SVG] Cast -1 values to unsigned to indicate we really did mean to ty
pe them
[WIN32] Remove unused mutex cairo_toy_font_face_hash_table_mutex
[WIN32] Make cairo_ft_unscaled_font_map_mutex initialization conditio
nal of ft
[OS2] Remove unused mutex cairo_toy_font_face_hash_table_mutex
[OS2] Add mutex initializer for cairo_font_face_mutex
[beos] Update mutex initializers
Rename all mutex variables to start with an underscore
[test] In the bitmap-font test, break cairo_text_path() call into two
Make cairo_text_path() set current point correctly
Uniform object handling in _reference(), _destroy(), and _get_referen
ce_count()
In cairo_text_path(), bail out if zero glyphs
In cairo_append_path(), allow excess path_data elements
[quartz] Make utility functions static
[test] Remove unused variable
[test] Remove some ref images from random-intersections
[test] Modify extend-reflect to need a smaller reference image

Benjamin Otte (3):
boilerplate: Fix compilation for glitz.
perf: Add yield and fix double comparison
perf: Make cairo_perf_timer structure private. Make timer functions v
oid.

Brian Ewins (22):
[ATSUI] Support disabling antialiased text
[ATSUI] Round glyph locations to nearest pixel
[ATSUI] Use screen metrics instead of ideal metrics to compute glyph
extents
[ATSUI] Compute glyph extents from the bounding boxes of their paths
(#9350)
[test/text-rotate] Use the same text for measuring and printing
[ATSUI] Scale glyphs using _cairo_matrix_compute_scale_factor (#9350)
[perf/cairo-perf-diff] Pass CAIRO_AUTOGEN_OPTIONS to autogen.
[ATSUI] Select Bitstream Vera and CSS font families reliably.
[ATSUI] correct the rotation of glyph paths. (#9378)
[ATSUI] Refactor code for creating CGBitmapContexts from cairo surfac
es.
[ATSUI] [1/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#946
7)
[ATSUI] [2/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#946
7)
[test] Test handling of out-of-range glyph indexes. (#9530)
[ATSUI] Handle deleted glyphs correctly. (#9530)
[ATSUI] out-of-range glyphs should be treated as deleted. (#9530)
[ATSUI] Some glyph operations cannot be 'unsupported'. (#9530)
Unreleased lock typo in cairo-scaled-font.c
[ATSUI] scale fonts using font size not font matrix
[ATSUI] implement load_truetype_table
[configure.in] --enable-quartz should require atsui and no xlib
[quartz,atsui] separate the quartz surface and atsui font backend
[quartz] remove unnecessary flushes

Carl Worth (316):
Split libcairotest files out from test/ and into boilerplate/
test: Add link to test log file in HTML output
Add boilerplate/README explaining its purpose
Separate the sharable stuff out of cairo-test.c into cairo-boilerplat
e.c
boilerplate: Remove custom read/write-png code in favor of using cair
o surfaces
Move test-specific stuff out of boilerplate/ and back into test/
test: Ignore single-bit errors for SVG backend.
perf: Add initial skeleton of performance monitoring suite
Require librsvg >= 2.14.0 to test SVG backend
boilerplate: Fix missing include of config.h which was preventing man
y backends from being tested
perf: Don't measure meta-surface-backed surface types.
Initial hookup of Vlad's timer/alarm code
perf: Remove unused util.c
perf: Collapse timing.[ch] down into cairo-perf.[ch]
perf: Don't require a separate counter from the timer for perf loops.
perf: More simplification of PERF_LOOP macros.
perf: Rename timer-alarm files to cairo-perf-timer
perf: More consistency improvements for names.
perf: Drop separate setup function from each test case.
Make perf interface return a rate. Start print target and test names.
perf: Fix typo in backend blackballing so that image tests now run
perf: Add indication of content to output
perf: Run for multiple iterations and print std. deviation
perf: Switch from alarm to setitimer for more fine-grained control of
timers
Two big improvements to bring the std. deviation down to where we wan
t it.
perf: Add README file explaining how to add a new test
perf/README: Fix typo
bug 8104: Eliminate unused variables. Replicate assert statement to i
dentify branch of interest.
pixman: Add pixman_private decorations to hide pixman symbols from pu
blic interface
Add many missing slim_hidden calls to bypass PLT entries for local us
e of public functions
slim_hidden_proto: Move smeicolon from definition to use for consiste
ncy and legibility
RELEASING: Add note on checking for local symbol PLT entries.
Move target tolerance to cairo_test_target structure (should let sing
le-pixel SVG errors pass)
perf: Remove unused alarm functions
perf: Fold cairo-perf-timer.h into cairo-perf.h
perf: Rename functions in line with cairo's naming guidelines
perf: Report times not rates. Interface in integers not doubles.
perf: Move sorting and discarding outside of compute_stats. Adjust di
scard to slowest 15% only.
perf-paint: Spend more iterations on smaller sizes to balance testing.
perf/README: Update due to cairo_perf_timer API changes
Prefer CPU performance counters (if available) over gettimeofday.
perf: Fix cairo_perf_ticks_per_second to avoid wraparound
perf: Handle 32-bit wraparound of performance counter
perf: Allow CAIRO_TEST_TARGET to limit targets tested.
perf: Add tessellate test case (in -16, -64, and -256 varieties)
autogen.sh: Require automake version 1.9
test: Report details errors when image output files cannot be found.
Make _cairo_output_stream_destroy return the stream's status as a las
t gasp.
Use new return value from _cairo_output_stream_destroy
Check status value of output_stream object at time of destroy
Remove font->status from cairo_type1_font_t
cairo_type1_font_create: Fix missing NO_MEMORY check and cleanup styl
e.
cairo-type1-fallback.c: Regularize some whitespace.
Add _cairo_array_size to allow querying the allocated size
type1: Enforce pre-allocation usage and fail-proof behavior of charst
ring_encode functions
Fix bitmap-font test failure by not generating a type1 font for a bit
map font.
boilerplate: Rename cairo_test_target_t to cairo_boilerplate_target_t
Use unsigned consistently to avoid compiler warning.
test/bitmap-font: Fix arguments to FcFreeTypeQuery to avoid warnings.
boilerplate: Allow targets to distinguish between test and perf.
boilerplate-xlib: New perf-specific surface creation for xlib backend.
perf: Don't skip COLOR tests
perf: Make xlib testing wait for the X server to finish rendering.
Deprecated CAIRO_FORMAT_RGB16_565. Add cairo-deprecated.h .
Move the REPLACED/DEPRECATED_BY macros from cairo.h to cairo-deprecat
ed.h
Fix typo in error message (enhacement -> enhancement)
Add missing pixman_private to _FbOnes when a function.
Add test case from bug #8379 demonstrating infinite loop during round
join
Add assert statement so the infinite-join test simply exits rather th
an looping infinitely.
ROADMAP: Add infinite-join bug (#8379) to the list for 1.4
ROADMAP: Add a couple of URLs for user-font API discussion
Fix cairo_copy_path and cairo_copy_path_flat to propagate errors.
Rename test from stale path-data name to copy-path
perf: Rework the suite to allow multiple performance tests to be defi
ned in one file.
Fix typo in documentation of cairo_in_fill (thanks to Jonathan Watt)
and clarify a bit.
tmpl: obnoxious churn
Use consistent wording to document cairo_in_fill, cairo_in_stroke, ca
iro_fill_extents, and cairo_stroke_extents.
Fix Makefile bug preventing 'make doc' from succeeding
Rename docs-publish target to doc-publish in order to be consistent w
ith the doc target.
Fix dependency of 'make doc' so that necessary header files are built
first.
Add documentation for cairo_rectangle_list_destroy
Add missing 'Since: 1.4' tags to documentation of 'clip getter' funct
ions.
perf/paint: Make all sizes use a consistent number of iterations
perf: Move the per-size loop from cairo_perf_run to main
perf: Make cairo_t* available to perf functions
perf/paint: Dramatically simplify now that we don't need one callback
per run.
perf/paint: Use loops for sources and operators rather than open codi
ng.
perf/paint: Test image surface as well as similar surface sources
Fix cairo_image_surface_create to report INVALID_FORMAT errors.
Cast to squelch warning message
Add new _cairo_pattern_create_for_status so that patterns properly pr
opagate errors.
Rename the create_for_status pattern to create_in_error.
Remove unused variable
perf: Move iteration over sources and operators from paint to new cai
ro-perf-cover
perf: Add stroke and fill tests
Shorten test names in output (drop unneeded _source and _surface)
perf: Add linear and radial gradients to the coverage
perf: Bail if cairo_status returns non-success at the end of a test.
Fix typo that was resulting in device glyph_extents of INT16_MAX in s
ome cases.
perf: Add text test
perf: Add subimage_copy test to demonstrate performance bug found by
monty
perf: Do backend synchronization in cairo_perf_timer_start as well as
cairo_perf_timer_stop
perf: Rename finalize to synchronize as it is used in both start() an
d stop() now
Fix typo of , instead of || which was causing a test to be ignored
perf: Make iterations adaptive (bailing as soon as std. deviation is
<= 3% for 5 consecutive iterations
Rename wait_for_rendering to syncrhonize
Bug #7497: Change _cairo_color_compute_shorts to not rely on any part
icular floating-point epsilon value.
perf: Change minimum size of paint test to 256
cairo-perf: Remove wasted whitespace in output. Squelch wanring.
perf: Print ticks as well as ms in output.
Add cairo-perf-diff program for comparing two cairo-perf reports.
test/infinite-join: Modify to draw something visible, and make the ou
tput a more reasonable size.
Fix infinite-join test case (bug #8379)
Merge branch '8379' into cairo
Add neglected reference images for infinite-join test
Use zero-size change bar for a speedup/slowdown of 1.0
test: Add clip-push-group to demonstrate crash in cairo_push_group
clip-push-group: Adjust test slightly to ensure mask-based clip is no
t anchored at the origin
Fix bug in _cairo_clip_init_deep_copy (fixes clip-push-group crash)
test: Update reference images due to previous change to _cairo_color_
compute_shorts
8711: Fix transformed source surface patterns with xlib backend.
Fix repeating source surface patterns with xlib backend.
Add new paint-repeat test
test/paint-repeat: Use offset larger than source surface for better s
tress testing
Fix offset/extent bug in ps output for repeating source surface patte
rns
Fix typo
Add new cairo-perf-diff for finding the performance difference betwee
n any 2 revisions.
Make xlib and xcb backends tolerant of single-bit errors in the test
suite output.
cairo-perf-diff: Simplify git usage and just run cairo-perf that gets
built with cairo revision
cairo-perf: Change outlier elimination and report minimum times.
Remove typo (mean vs median)
Increment CAIRO_VERSION to 1.3.1 now that a 1.2.6 release exists
cairo-perf-diff: Fix to still function if run from the top-level dire
ctory containing .git
cairo-perf-diff: Build and run latest cairo-perf program rather than
whatever was in the old checkout
Don't rely on NQUARTZ or OS2 surface types unless they exist.
cairo-perf-diff: Use two-part hash to avoid stale data when perf suit
e changes.
Add zrusin-another test cases (tessellate and fill).
cairo-perf: Add command line options for test cases to run, listing t
ests, and new raw mode.
test/Makefile.am: Fix typo in EXTRA_DIST that was breaking distcheck
Rewrite _cairo_matrix_transform_bounding_box to actually accept a box
not a rectangle
boilerplate: Add xrealloc function
perf: Move statistics code into new cairo-stats.h for sharing
cairo-perf: Print ticks_per_ms value in raw mode so raw analysis tool
s can report times
cairo-perf-diff-files: Add support for diffing "raw" files from "cair
o-perf -r"
perf: Eliminate CAIRO_STATS_MIN_VALID_SAMPLES
perf/Makefile.am: Add missing zrusin-another.h file to list
perf: Add world-map performance test case.
Fix broken size calculation for xrealloc
cairo-perf-diff: Allow incremental refinement of performance results
cairo-perf-diff: Separate old and new build directories
cairo-perf-diff: Use rsync instead of cp to avoid some unnecessary re
building
cairo-perf-diff: rsync only git-managed files from boilerplate/perf
Add a status field to cairo_traps_t to enable less error checking
Rewrite tessellate_rectangle as tessellate_convex_quad to make it mor
e useful
Make _cairo_stroker_add_sub_edge use tessellate_convex_quad rather th
an tessellate_polygon
Make miter join code use tessellate_convex_quad rather than tessellat
e_polygon
cairo-perf-diff: Run git-ls-tree from the correct directory
Remove non-existent reference images from Makefile to avoid breaking
distcheck target
Fix get-clip test for surfaces not implementing set_clip_region
Add missing pattern-getters-ref.png to Makefile to avoid breaking dis
tcheck target
NEWS: Add notes for 1.3.2 snapshot
Update cairo version and libtool version for 1.3.2 snapshot
Increment cairo version to 1.3.3 after 1.3.2 snapshot
ROADMAP: Set cairo 1.4 to early January for sake of Gnome 2.18
cairo-perf: When iteration count is given on command-line, never exec
ute fewer
perf: Add box_outline test case.
Add const qualifier to cairo_path_t* parameter of cairo_append_path
Require librsvg 2.15.0 (was 2.14.0) for testing of SVG backend.
test/clip-operator: Use round to pass only integers to cairo_show_gly
phs
test: Use round to pass only integers to cairo_show_glyphs (in 3 more
tests)
give the big-trap test the XFAIL treatment.
Add skip list implementation (many thanks to Keith Packard)
Add new tessellator (unused) in cairo-bentley-ottmann.c
Adapt new tessellator to match the interface provided by the old tess
ellator.
Switch from old tessellator to new tessellator
Make event_queue_insert ignore duplicate intersection events (not dup
licate start/stop events)
Add some missing cairo_private decorators
Add Daniel Amelang and Joonas Pihlaja to the AUTHORS file
NEWS: Add notes for 1.3.4 snapshot
Increment cairo version to 1.3.4
Bump version to 1.3.5 after making 1.3.4 snapshot
RELEASING: Fix typo
Add an initial BIBLIOGRAPHY for cairo
Add perceptualdiff program totest/pdiff.
Use uint32_t instead of the non-standard uint32
Remove all libtiff-related code by #ifdef
Hook up Makefiles for perceptualdiff.
pdiff: Add missing newlins at end of files.
Add a textbook recommendation to the bibliography
BIBLIOGRAPHY: Add Joseph O'Rourke's book as recommended by Rafael Vil
lar Burke
ROADMAP: Add _cairo_lround bug for 1.3.6. Note some completed items f
or 1.4.0
ROADMAP: Note that the Banker's rounding bug is fixed
Fix 'make distcheck' by mentioning test/pdiff in DIST_SUBDIRS
NEWS: Add notes for 1.3.6 snapshot
Increment cairo version to 1.3.6 (and libtool versioning to 12:1:10)
Bump version to 1.3.7 after making 1.3.6 snapshot
test: Simplify buffer_diff by handling device offset in advance
pdiff: Factor out a comparison function that doesn't read the 'args'
structure
pdiff: Teach pdiff code to accept cairo image surfaces
test: Rework buffer_diff interface as new compare_surfaces
pdiff: Compile pdiff algorithm as a libtool convenience library
pdiff: Fix line endings
pdiff: Re-indent all code
pdiff: Delete all trailing whitespace.
pdiff: Convert C++-style comments to good old-fashioned C-style comme
nts
pdiff: Rewrite Laplacian pyramid code from C++ to C
pdiff: Move function that depends on command-line argument class to s
ame file as main
pdiff: Rip out unused ImgDiff code, (dropping -output option)
pdiff: Rewrite main program to use cairo-based pdiff_compare interface
pdiff: Remove old, unused Yee_Compare interface
pdiff: Add .gitignore for perceptualdiff binary
pdiff: Remove intermingled statements and declarations
pdiff: Remove hideous C++ reference passing
pdiff: Remove RGBAImage classes now that we're just using cairo image
surfaces
pdiff: Remove all uses of std::string
pdiff: Fix return value from perceptualdiff program
pdiff: Replace CompareArgs class with args_t struct
pdiff: Rename everything to .c and fix an last littele C++ isms.
pdiff: Remove casts since we're out of the land of X++ where void* is
stupidly broken
Hook up pdiff to the test suite now that its written in C
test: Remove svg-specific reference images no longer needed thanks to
pdiff
test: Remove ps-specific reference images no longer needed thanks to
pdiff
Fix 'make distcheck' after recent file removals
Fix a couple of more stale images holding up 'make distcheck'
NEWS: Add notes for cairo 1.3.8 snapshot
Increment cairo version to 1.3.8 (and libtool versioning to 12:2:10)
Bump cairo version to 1.3.9 after making 1.3.8 snapshot
Merge branch 'master' of git.cairographics.org:/git/cairo into cairo
test/.gitignore: Ignore binarries for some recently added tests
Rename cairo-path.c to cairo-path-fixed.c
Rename cairo-path-data.c to cairo-path.c (and similar)
Rename remaining cairo_path_data to cairo_path in function names, etc.
Add new rectilinear-stroke test
Reimplement path.has_current point as a 1-bit bitfield
Put ft-text-vertical-layout-type1 back on the XFAIL list
Add optimization for rectilinear stroke
Ignore another test case binary
Annoying template churn
NEWS: Add notes for 1.3.10 snapshot
Increment cairo version to 1.3.10 (and libtool versioning to 12:3:10)
Bump version to 1.3.11 after making 1.3.10 snapshot
Add long-lines perf case
Restrict _clip_and_composite_trapezoids to destination extents
Add unaligned_clip perf case courtesy of Jeff Muizelaar
cairo-path-fixed: Don't add redundant, succesive MOVE_TO operations t
o the path
Fix cairo_get_dash and cairo_get_dash_count APIs
Add new scale-down-source-surface-paint test
PDF: Fix CAIRO_EXTEND_NONE for source surface patterns
Fix two misspellings in a recent comment.
ROADMAP: Add 3 bugs to fix before the next snapshot
.gitignore: Add text-glyph-range
cairo-wideint: Fix to eliminate comparison of signed and unsigned val
ues
NEWS: Add notes for 1.3.12 snapshot
configure.in: Increment cairo version to 1.3.12
configure.in: Increment version to 1.3.13 after making the 1.3.12 sna
pshot
doc tmpl churn
Add rotate-image-surface-paint test case
Fix _cairo_pattern_acquire_surface_for_surface to not clone outside s
urface extents
Add two tests of cairo_surface_finish to test/nil-surface.c
Fix crashes in cairo_surface_finish for NULL or nil
Don't finish a finished surface in cairo_surface_destroy
ROADMAP: Add bug about broken cairo_show_text on win32
ROADMAP: Note that linear gradient bug is fixed.
Don't hold mutex over backend->scaled_font_create
Avoid holding lock when calling _cairo_scaled_font_fini
Move scaled font holdovers magic from reference to create to fix race
condition
Add scaled_font->mutex to allow locking for all subordinate objects
Remove half-leftover debugging code from previous commit
Remove dead cff_dict_remove function
ROADMAP: Note that the 8801 locking bug is fixed.
ROADMAP: Drop 1.3.6 which is already in the past and note 8379 fix an
d pixman gradient improvements
test/pthread-show-text: Increease iterations to expose locking bug
Expand font_map locking to cover call to backend->scaled_font_create
Add missing locking to _cairo_scaled_font_text_to_glyphs
Add missing _cairo_ft_unscaled_font_unlock_face to _cairo_ft_scaled_f
ont_create
Avoid public cairo_ft_scaled_font_lock_face for internal use
Add mutex to implement _cairo_ft_unscaled_font_lock_face and _cairo_f
t_unscaled_font_unlock_face
Increase pthread-show-text thread count and add cairo_select_font_fac
e to expose more bugs.
Add locking to cairo_font_face_reference/destroy
Rename cairo_toy_font_face_hash_table_mutex to cairo_font_face_mutex
ROADMAP: Note that text spacing issues for win32 are fixed
Add missing call to set_scale of unscaled_font in scaled_glyph init
Fix cairo_ft_unscaled_font_t to have a lock_count again not an is_loc
ked Boolean
Mark test/rotate-image-surface-paint as XFAIL
NEWS: Add notes for the 1.3.14 snapshot
Increment cairo version to 1.3.14 (and libtool versioning to 12:4:10)
Bump cairo version to 1.3.15 after making the 1.3.14 snapshot
Add radial-gradient test case
Rename radial gradient inner/outer to c1/c2
Fix implementation of radial gradients for inner radius != 0
Fix gradient walker to not reset needlessly
SVG: Support CAIRO_EXTEND_NONE for radial gradients.
Merge branch 'radial-gradient-fixes' into cairo
Implement CAIRO_MUTEX_INIT with memcpy instead of pthread_mutex_init
Cast away a const to quiet a compiler warning.
Cast -1 values to unsigned to quiet the compiler.
Update documentation for cairo_get_scaled_font and cairo_get_font_face
Don't crash if backend->create_similar returns a nil surface
Fix yet another backend (quartz) for the gradient renaming
Add test of cairo_get_* after INVALID_RESTORE to nil-surface
Fix INVALID_RESTORE case to avoid crashes
Fix leak in pdiff lpyramid
Add a couple of missing test cases to .gitignore
Add even more XrmGetFileDatabase leaks to the valgrind suppressions f
ile
Augment cairo_test_init with cairo_test_fini to avoid leak
Fix leak in pattern-getters test (missing cairo_pattern_destroy)
More tightening of test cleanup to avoid valgrind complaints.
Fix leak of an output stream in cairo_type1_font_destroy
Add notes for 1.3.16
Optimize filling of a path that is a single device-axis-aligned recta
ngle.
Mark 5 tests that are currently failing as XFAIL (that is, not to be
fixed before 1.4)
Update AUTHORS with 47 (!) new authors since 1.0
NEWS: Add release notes for 1.4.0 release
Clarify that extra elements in cairo_path_data is only available in c
airo >= 1.4
Increment cairo version to 1.4.0
NEWS: Note the x86 nature of the quoted performance results

Christian Biesinger (11):
fix comment: pixman_private needs to be before the type of a variable
[win32] Add missing void
Fix win32 build when pthreads are available
Add missing ) in comment
Actually return a value from _cairo_type1_fallback_init_*
Fix prototype warning by including cairo-test-directfb.h
Don't return an uninitialized value if _cairo_output_stream_create fa
ils
[beos] Fix build error
[win32] Add parentheses around & operator
[beos] make tests compile again
[beos] Allow a pixel error of 1 for BeOS tests

Christopher (Monty) Montgomery (1):
Add extents to clone_similar (fixing subimage_copy performance bug)

Dan Amelang (20):
Add new perf test "pattern_create_radial"
Add autoconf macro AX_C_FLOAT_WORDS_BIGENDIAN
Change _cairo_fixed_from_double to use the "magic number" technique
Add _cairo_matrix_is_translation
Refactor _cairo_matrix_is_integer_translation
Add and incorporate _cairo_gstate_transform_glyphs_to_backend
Optimize _cairo_matrix_to_pixman_matrix for the common case of an ide
ntity matrix
Change _cairo_matrix_to_pixman_matrix to use a pixman_transform_t as
the template, thus avoiding a forced memcpy
Add configure option --disable-some-floating-point
Purge cairo-test of all calls to round()
[perf] Provide watered-down implementations of getline and strndup for
[configure] Add -a option to grep calls in AX_C_FLOAT_WORDS_BIGENDIAN
[configure] Fix --disable-some-floating-point to force value to 'no'
if none given
Change _cairo_lround to use arithmetic rounding
Change _cairo_lround to correctly handle edge cases previously missed
Don't use the GNU-only grep option "-a"
Use the "-" option (instead of "-a") when calling "strings"
Add "rectangles" perf test
Fix Win32 text spacing problem
Update Win32 makefiles

Dan Williams (1):
Implement pixman fbCompositeSrc_8888x0565mmx

Daniel Amelang (2):
Add _cairo_lround for much faster rounding
Replace existing rounding code with _cairo_lround

Dave Yeo (1):
[test] Fix build on Win32

David Turner (2):
Optimize gradient computations
fixing gradient repeat mode computations

Emmanuel Pacaud (8):
Add SVGPrint support.
Use SVG multipage capability.
test/pixman-rotate.c: Don't issue a show_page, it's already done in c
airo-test.c
Merge branch 'svgprint'
SVG: plug a memory leak
Set overflow to visible for symbols.
Remove broken special-casing of radial gradient fx,fy under CAIRO_EXT
END_NONE
Use the offset attribute to improve cairo-svg handling of EXTEND_REPE
AT and EXTEND_REFLECT

Eugeniy Meshcheryakov (7):
[PDF-CFF] Fix bad /LastChar value for CFF fonts in PDF backend
CFF Subsetting: Add charset data to embedded font
TrueType Subsetting : Correct the checksum calculation
TrueType Subsetting: Correct the checksum calculation of 'head' table
TrueType Subsetting: Sort table directory
[cairo-surface] Use a macro definition for all nil surfaces
[PS/PDF/SVG] Return a write_error nil surface on write errors

Frederic Crozat (1):
[check-defs.sh] Fix make check for OPD platforms

Hans Breuer (1):
Fix mutex initialization for win32 (missing cairo_font_face_mutex)

Ian Osgood (12):
Update XCB names for XCB 1.0 RC2 release.
Replace static fn with xcb-renderutil library fn.
XCB: Remove unnecessary differences with the Xlib surface.
Move XCB sections next to XLIB sections.
XCB: glyph rendering support
XCB: find_standard_format using wrong enumeration.
Merge branch 'master' of git+ssh://iano@git.cairographics.org/git/cai
ro
XCB: implement subimage_copy fix
XCB: bring composite, trapezoids up-to-date with Xlib
XCB: make create_internal match Xlib
bug: wrong xcb_copy_area param order
don't squish tiny images in test/index.html

Jamey Sharp (9):
XCB: add slim_hidden_proto and slim_hidden_def for cairo_xcb_surface_
create_with_xrender_format.
XCB: update cairo-boilerplate to test for an error connection rather
than NULL.
Update .gitignore in boilerplate and test.
[slim] hide cairo_version_string()
XCB: Add the have_clip_rects field to cairo_xcb_surface, to match the
Xlib surface.
XCB: Move slim_hidden_def to cairo-xcb-surface.c, not cairo-xcb-xrend
er.h.
Add clip-push-group to .gitignore.
perf: cairo-perf-diff-files.c should generate cairo-perf-diff-files
XCB/perf: implement boilerplate_xcb_synchronize for fair performance
tests.

Jeff Muizelaar (7):
Add two new test cases to degenerate-path test
Add a new dashing test
Add a comment about the point choice when capping degenerate paths
Rename has_sub_path to has_initial_sub_path
Fix several issues with dashed stroking code, particularly 'leaky-das
h'
Rename tmp to step_length because that is what it actually is.
Use a closed interval when eliminating outliers from performance meas
urements

Jeff Smith (5):
Change type of cairo_stroker_t's dash_on from int to cairo_bool_t
Modify how _cairo_stroker_add_caps handles zero-length sub-paths
Minor changes to shorten the stroking code
Add or reword several comments in the stroking code
Clean up some inconsistent spacing in the stroking code

Jinghua Luo (12):
glitz: fix a crash in _cairo_glitz_surface_get_image.
glitz: fix for clone similar.
glitz: fix test case glyph-cache-pressure.
glitz: don't go fackback path for bitmap glyphs.
glitz: my previous changes in _cairo_glitz_surface_create_similar is
glitz: further fix for clone_similar.
glitz: fix a memory leak in _cairo_glitz_surface_composite_trapezoids.
Glitz: fix a potential use after free bug in _cairo_glitz_surface_old
_show_glyphs.
glitz: fix all compiler warnings in glitz backend.
Glitz: position large glyph correctly.
type1-subset: fix error handling.
glitz: fix build error.

Jonathan Watt (2):
revert accidental mode changes in my previous commit
Remove WINVER from public header file

Joonas Pihlaja (11):
A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit rema
inder.
Replace the 128 bit divrem by a 96/64 bit one.
Use an LFSR instead of random().
Special cases for skip list comparators.
Avoid a skip-list lookup when deactivating edges.
Separate start and stop events from intersections (first try.)
Tweak comparators.
Malloc less using a free list of nodes.
Make the skip list check for uniqueness.
Sort pointers instead of cairo_bo_events in the tessellator.
perf: new-tessellator: Deferred trapezoid generation (first try)

Jorn Baayen (1):
[cairo-pattern] Cache surface for solid patterns

Kalle Vahlman (2):
Add --use-ms option to cairo-perf-diff-files
[cairoint] Make it compile with libpng disabled

Kjartan Maraas (1):
Remove unused variables (#7963)

Kristian H=C3=B8gsberg (1):
Compute right index when looking up left side bearing.

M Joonas Pihlaja (16):
cairo-perf-diff-files: Don't segfault reading cooked perf reports.
test: tessellator event comparator test case for degenerate edges.
test: check if cairo_in_fill() is reporting false positives for empty
trapezoids.
test: check for tessellator regression from missed stop events
tessellator bug fix: fill-degenerate-sort-order
tessellator bug fix: fill-missed-stop
tessellator bug fix: in-fill-empty-trapezoid
tessellator: offset working coordinates to be nonnegative
tessellator: input validation and guard bit removal
tessellator bug fix: linking fails on x86_64 due to superfluous inlin
e attribute.
Change license of tessellator tests to the MIT license.
Replace point sampling in the fill-degenerate-sort-order with renderi
ng.
Rework the in-fill-empty-trapezoid test to not use the cairo_test() f
ramework.
test: random-intersections
New performance test case "mosaic" for splines.
Make UTF-8 output from cairo-perf-diff-files optional

Mathias Hasselmann (1):
[test/pdiff] Fix build problem with certain flavors of make

Mathieu Lacage (1):
bugfix: fix cairo-wideint.c uint64_t usage and const return qualifiers

Michael Emmel (6):
Fixed directfb test code
Fixed test to compile
Fixed test to compile
Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo
Turned off acclerated rectangle drawing in dfb backend
Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo

Nicholas Miell (2):
Make the SLIM macros robust in the face of macro-renamed symbols
Fix the AMD64 final link by removing SLIM from pixman

Pavel Roskin (1):
Clean up _fbOnes()

Peter Weilbacher (6):
OS/2 backend files
OS/2 build changes
Add OS/2 backend and its requirement to INSTALL and README, following
the example of BeOS.
Fix for OS/2 display drivers that cannot handle 32bit output (feed th
em a 24bit buffer instead).
Correct scaled font mutex definitions for OS/2
Oops, correct typo in previous commit

Robert O'Callahan (5):
Fix _cairo_matrix_transform_bounding_box to return tightness info
Fix stroke/fill extents bounding boxes
Add clip getters API + tests
Remove redundant call to _cairo_surface_get_extents
Rename cairo_copy_clip_rectangles to cairo_copy_clip_rectangle_list

Soeren Sandmann (1):
Add SRC and IN implementations to avoid CompositeGeneral in some case
s hit by PDF rendering

Soren Sandmann Pedersen (2):
Remove left-over assert and some alpha checks from
Apply patch from Marco Gritti and Jordan Crouse to correctly detect

Stuart Parmenter (1):
[win32] correct win32 show_glyphs for non-y-aligned text

T Rowley (1):
Add linear-gradient-reflect test case

U-JONATHAN-X60S\jonathan (2):
Fix a couple of character spacing issues on Windows
Merge branch 'master' of git://git.cairographics.org/git/cairo

Vladimir Vukicevic (40):
Add useful pieces from Vladimir's cairo-bench
[win32] Make cairo as a win32 static library possible
[win32] Misc win32 compilation fixes
[win32] win32-specific Makefiles for building with MSVC
Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo in
to cairo-master
Improve make-html.pl, add self-contained output format
[win32] Fix boilerplate for win32 surfaces to use new _with_dib funct
ion
Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo in
to cairo-master
Correctly acquire/release mutex in _cairo_scaled_font_map_destroy
[win32] Makefile.win32: fix test and add html targets
[win32] Makefile.win32: use correct (/MD) runtime library flag everyw
here
[win32] Set win32 assertion failure handlers for tests to stderr
Check for valid path status value before calling _cairo_set_error
[win32] Support for DDBs, AlphaBlend fix
[nquartz] Initial commit of native quartz surface
[win32,perf] Fix cairo-perf-win32
[perf] Change perf output format, report times in ms, add a few paint
tests
Add win32 output files to gitignore
dash and pattern getter functions
[nquartz] Return correct values from operation setup function
[test] Fix composite-integer-translate-over test
[win32] Update pixman MMX code to work with MSVC
[win32] clean up win32_surface_composite
[win32] implement EXTEND_REPEAT in composite when possible
[test] add big-trap test
Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo
[nquartz] use pattern snapshots, and correctly setup/teardown source
[nquartz] add test reference files for nquartz backend
Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo
[atsui] add function prototype for a public 10.4 function that's
[win32] regression with win32 glyph y-offsets (mozbug#365021)
[mmx] avoid casts between int32 and __m64 types
[quartz] Rename nquartz to quartz
[quartz] rename NQUARTZ -> QUARTZ in defines
[quartz] rename test override images from nquartz to quartz
[quartz] Rename public function parameter from surf -> surface
[quartz] Remove (disabled) support for rendering via AGL/CGGL
[core] Add user_data and reference count getters to all objects
[core] put back REF_COUNT_INVALID to be -1, fix finish
[quartz] Bug 3939 - Fix Quartz backend endianness problem