[cairo-announce] cairo release 1.4.0 now available
Carl Worth
cworth at cworth.org
Tue Mar 6 01:48:38 PST 2007
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.)
• Dramatic improvement when drawing objects that are mostly off-screen
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
███████████████████████████████████████████████▋
• 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
██████████████████████████▊
• Dramatic improvement to tessellation speed for complex objects:
image-rgb tessellate-256-100 874.16 -> 34.79: 25.13x speedup
████████████▏
xlib-rgba zrusin_another_fill-415 148.40 -> 13.85: 10.72x speedup
████▉
xlib-rgb world_map-800 680.20 -> 345.54: 1.97x speedup
▌
• 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
███████████▋
xlib-rgb box-outline-stroke-100 0.46 -> 0.06: 8.05x speedup
███▌
• Dramatic improvements to text rendering speeds:
xlib-rgba text_image_rgba_over-256 63.12 -> 9.61: 6.57x speedup
██▊
• 3x improvements to floating-point to fixed-point conversion speeds:
image-rgba pattern_create_radial-16 9.29 -> 3.44: 2.70x speedup
▉
• 2x improvements to linear gradient computation:
image-rgb paint_linear_rgb_source-512 26.22 -> 11.61: 2.26x speedup
▋
• 2x improvement to a case common in PDF rendering:
image-rgb unaligned_clip-100 0.10 -> 0.06: 1.81x speedup
▍
• 1.3x improvement to rectangle filling speed (note: this improvement
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
▎
xlib-rgba rectangles-512 7.48 -> 5.58: 1.34x speedup
▏
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 slowdown
▏
image-rgba box-outline-fill-100 0.01 -> 0.01: 1.26x slowdown
▏
image-rgba fill_solid_rgb_over-64 0.20 -> 0.22: 1.12x slowdown
image-rgba fill_image_rgba_over-64 0.23 -> 0.25: 1.10x slowdown
xlib-rgb paint_image_rgba_source-256 3.24 -> 3.47: 1.07x slowdown
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:
• Getting information about the current clip region
cairo_clip_extents
cairo_copy_clip_rectangle_list
cairo_rectangle_list_destroy
• Getting information about the current dash setting
cairo_get_dash_count
cairo_get_dash
• 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
• Getting the current scaled font
cairo_get_scaled_font
• 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
• 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
• 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
------------------------------------
• Fixed radial gradients
• Fixed dashing (degenerate and "leaky" cases)
• Fixed transformed images in PDF/PS output (eliminate bogus repeating)
• Eliminate errors from CAIRO_EXTEND_REFLECT and CAIRO_EXTEND_PAD
• cairo_show_page no longer needed for single-page output
• SVG: Fix bug preventing text from appearing in many viewers
• cairo-ft: Return correct metrics when hinting is off
• Eliminate crash in cairo_create_similar if nil surface is returned
• Eliminate crash after INVALID_RESTORE error
• Fix many bugs related to multi-threaded use and locking
• Fix for glyph spacing 32 times larger than desired (cairo-win32)
• Fixed several problems in cairo-atsui (assertion failures)
• Fix PDF output to avoid problems when printing from Acrobat Reader
• Fix segfault on Mac OS X (measuring a zero-length string)
• Fix text extents to not include the size of non-inked characters
• Fix for glyph cache race condition in glitz backend (Jinghua Luo)
• Fix make check to work on OPD platforms (IA64 or PPC64)
• Fix compilation problems of cairo "wideint" code on some platforms
• 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øgsberg, 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ézier 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 subsetting bbox
Type 1 fallback fonts - use binary encoding in PDF files
Type1 subsetting: Don't put .notdef in Encoding when there are 256 glyphs
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 symbols
Add
[x86-64] check-plt.sh: match on JU?MP_SLO as on x86-64 "SLOT" is truncated
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 headers
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 INCLUDES
[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 operations
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 translation (#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_extents() (#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 (#5177)
[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_REFLECT
[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_pattern_acquire_surface_for_surface
[cairo-pattern] Correctly delegate device_transform so tests pass again
[SVG] Use _cairo_pattern_acquire_surface instead of _cairo_surface_acquire_source_image
[surface] Copy device_transform_inverse in _cairo_surface_clone_similar
[test] Increase size of extend-reflect test to see that pattern repeats
[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 regular 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 public 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 supported
[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 already
[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 type them
[WIN32] Remove unused mutex cairo_toy_font_face_hash_table_mutex
[WIN32] Make cairo_ft_unscaled_font_map_mutex initialization conditional 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_reference_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 void.
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 surfaces.
[ATSUI] [1/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#9467)
[ATSUI] [2/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#9467)
[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-boilerplate.c
boilerplate: Remove custom read/write-png code in favor of using cairo 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 many 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 want 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 identify branch of interest.
pixman: Add pixman_private decorations to hide pixman symbols from public interface
Add many missing slim_hidden calls to bypass PLT entries for local use of public functions
slim_hidden_proto: Move smeicolon from definition to use for consistency and legibility
RELEASING: Add note on checking for local symbol PLT entries.
Move target tolerance to cairo_test_target structure (should let single-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 discard 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 last 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 style.
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 charstring_encode functions
Fix bitmap-font test failure by not generating a type1 font for a bitmap 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-deprecated.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 than 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 defined 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, cairo_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 with 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' functions.
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 coding.
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 propagate 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 cairo-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 some 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() and 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 particular 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 output 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 not 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 stress testing
Fix offset/extent bug in ps output for repeating source surface patterns
Fix typo
Add new cairo-perf-diff for finding the performance difference between 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 directory 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 suite changes.
Add zrusin-another test cases (tessellate and fill).
cairo-perf: Add command line options for test cases to run, listing tests, 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 tools can report times
cairo-perf-diff-files: Add support for diffing "raw" files from "cairo-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 rebuilding
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 more useful
Make _cairo_stroker_add_sub_edge use tessellate_convex_quad rather than tessellate_polygon
Make miter join code use tessellate_convex_quad rather than tessellate_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 distcheck 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 execute 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_glyphs
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 tessellator.
Switch from old tessellator to new tessellator
Make event_queue_insert ignore duplicate intersection events (not duplicate 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 Villar Burke
ROADMAP: Add _cairo_lround bug for 1.3.6. Note some completed items for 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 comments
pdiff: Rewrite Laplacian pyramid code from C++ to C
pdiff: Move function that depends on command-line argument class to same 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 to 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 values
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 snapshot
doc tmpl churn
Add rotate-image-surface-paint test case
Fix _cairo_pattern_acquire_surface_for_surface to not clone outside surface 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 and 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_font_create
Avoid public cairo_ft_scaled_font_lock_face for internal use
Add mutex to implement _cairo_ft_unscaled_font_lock_face and _cairo_ft_unscaled_font_unlock_face
Increase pthread-show-text thread count and add cairo_select_font_face 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_locked 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 file
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 rectangle.
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 cairo >= 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 fails
[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 identity 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 cairo-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_EXTEND_NONE
Use the offset attribute to improve cairo-svg handling of EXTEND_REPEAT 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/cairo
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-xrender.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-dash'
Rename tmp to step_length because that is what it actually is.
Use a closed interval when eliminating outliers from performance measurements
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 remainder.
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øgsberg (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 inline attribute.
Change license of tessellator tests to the MIT license.
Replace point sampling in the fill-degenerate-sort-order with rendering.
Rework the in-fill-empty-trapezoid test to not use the cairo_test() framework.
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 them 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 cases 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 into cairo-master
Improve make-html.pl, add self-contained output format
[win32] Fix boilerplate for win32 surfaces to use new _with_dib function
Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo into 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 everywhere
[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
-------------- 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/20070306/c6ef964c/attachment-0001.pgp
More information about the cairo-announce
mailing list