[cairo-announce] cairo snapshot 1.3.2 now available

Carl Worth cworth at cworth.org
Wed Nov 15 15:28:54 PST 2006


A new cairo snapshot 1.3.2 is now available from:

        http://cairographics.org/snapshots/cairo-1.3.2.tar.gz

    which can be verified with:

        http://cairographics.org/snapshots/cairo-1.3.2.tar.gz.sha1
        2d380e89dc4d1c5be1460884e953b01f42fd5c1a  cairo-1.3.2.tar.gz

        http://cairographics.org/snapshots/cairo-1.3.2.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.3.2 tag which points to a commit named:
        804e20b55d049a26fe4d96bb6d79890c65e43ab5

    which can be verified with:
        git verify-tag 1.3.2

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

This snapshot is a chance to play with some of the recent performance
improvements that have been made to cairo (see below). But we're
really just getting started and there should be a lot more performance
improvements coming soon.

I hope that this snapshot is just the beginning of a steady stream of
ever-improving cairo snapshots. Ideally, we would see a new cairo
snapshot every week or two, and each faster than the one
before. Please help us make that happen!

We do have several performance problems identified and patches in
progress for several issues that still aren't in this snapshot, so
there's definitely some more exciting stuff to come, (more about that
in my follow ups to the cairo list). But please test this snapshot out
and let us know if it helps performance for your applications or not.

Have fun with cairo, everybody!

-Carl

Snapshot 1.3.2 (2006-11-14 Carl Worth <cworth at cworth.org>)
==========================================================
This is the first development snapshot since the 1.2 stable series
branched off shortly after the 1.2.4 release in August 2006.

This snapshot includes all the bug fixes from the 1.2.6 release,
(since they originated here on the 1.3 branch first and were
cherry-picked over to 1.2). But more importantly, it contains some new
API in preparation for a future 1.4 release, and most importantly, it
contains several performance improvements.

The bug fixes will not be reviewed here, as most of them are already
described in the 1.2.6 release notes. But details for the new API and
some performance improvements are included here.

As with all snapshots, this is experimental code, and the new API
added here is still experimental and is not guaranteed to appear
unchanged in any future release of cairo.

API additions
-------------
Several new API additions are available in this release. There is a
common theme among all the additions in that they allow cairo to
advertise information about its state that it was refusing to
volunteer earlier. So this isn't groundbreaking new functionality, but
it is essential for easily achieving several tasks.

The new functions can be divided into three categories:

	Getting information about the current clip region
	-------------------------------------------------
	cairo_clip_extents
	cairo_copy_clip_rectangles
	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

In each of these areas, we have new API for providing a list of
uniform values from cairo. The closest thing we had to this before was
cairo_copy_path, (which is rather unique in providing a list of
non-uniform data).

The copy_clip_rectangles/rectangle_list_destroy functions follow a
style similar to that of cairo_copy_path. Meanwhile, the dash and
pattern color stop functions introduce a new style in which there is a
single call to return the number of elements available (get_dash_count
and get_color_stop_count) and then a function to be called once to get
each element (get_dash and get_color_stop_rgba).

I'm interested in hearing feedback from users of these new API
functions, particularly from people writing language bindings. One
open question is whether the clip "getter" functionality should adopt
a style similar to that of the new dash and color_stop interfaces.

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.

XCB backend changes
-------------------
The XCB backend has been updated to track the latest XCB API (which
recently had a 1.0 release).

New quartz backend
------------------
Vladimir Vukicevic has written a new "native quartz" backend which
will eventually replace the current "image-surface wrapping" quartz
backend. For now, both backends are available, (the old one is
"quartz" and the new one is "nquartz"). But it is anticipated that the
new backend will replace the old one and take on the "quartz" name
before this backend is marked as supported in a release of cairo.

New OS/2 backend
----------------
Doodle and Peter Weilbacher have contributed a new, experimental
backend for using cairo on OS/2 systems.

Performance improvements
------------------------
Here are some highlights from cairo's performance suite showing
improvements from cairo 1.2.6 to cairo 1.3.2. The command used to
generate this data is:

	./cairo-perf-diff 1.2.6 HEAD

available in the perf/ directory of a recent checkout of cairo's
source, (the cairo-perf-diff script does require a git checkout and
will not work from a tar file---though ./cairo-perf can still be used
to generate a single report there and ./cairo-perf-diff-files can be
used to compare two reports).

Results are described below both for an x86 laptop (with an old Radeon
video card, recent X.org build, XAA, free software drivers), as well
as for a Nokia 770. First the x86 results with comments on each, (all
times are reported in milliseconds).

Copying subsets of an image surface to an xlib surface (much faster)
--------------------------------------------------------------------
 xlib-rgba              subimage_copy-512   10.50 ->   : 53.97x speedup
█████████████████████████████████████████████████████

Thanks to Christopher (Monty) Montgomery for this big performance
improvement. Any application which has a large image surface and is
copying small pieces of it at a time to an xlib surface, (imagine an
application that loads a single image containing all the "sprites" for
that application), will benefit from this fix. The larger the ratio of
the image surface to the portion being copied, the larger the benefit.

Floating-point conversion (3x faster)
-------------------------------------
 xlib-rgba  pattern_create_radial-16    27.75 ->   3.93 :  2.94x speedup
██
image-rgb   pattern_create_radial-16    26.06 ->   3.74 :  2.90x speedup
█▉

Thanks to Daniel Amelang, (and others who had contributed the idea
earlier), for this nice improvement in the speed of converting
floating-point values to fixed-point.

Text rendering (1.3 - 2x faster)
------------------------------
 xlib-rgba text_image_rgba_source-256  319.73 ->  62.40 :  2.13x speedup
█▏
image-rgb    text_solid_rgba_over-64     2.85 ->   0.88 :  1.35x speedup
▍

I don't think we've ever set out to improve text performance
specifically, but we did it a bit anyway. I believe the extra
improvement in the xlib backend is due to Monty's image copying fix
above, and the rest is due to the floating-point conversion speedup.

Thin stroke improvements (1.5x faster)
---------------------------------------------
image-rgb               world_map-800  1641.09 -> 414.77 :  1.65x speedup
▋
 xlib-rgba              world_map-800  1939.66 -> 529.94 :  1.52x speedup
▌

The most modest stuff to announce in this release is the 50%
improvement I made in the world_map case. This is in improvement that
should help basically anything that is doing strokes with many
straight line segments, (and the thinner the better, since that makes
tessellation dominate rasterization). The fixes here are to use a
custom quadrilateral tessellator rather than the generic tessellator
for straight line segments and the miter joins.

Performance results from the Nokia 770
--------------------------------------
 xlib-rgba          subimage_copy-512     55.88 ->     2.04 : 27.34x speedup
██████████████████████████▍
 xlib-rgb     text_image_rgb_over-256   1487.58 ->   294.43 :  5.05x speedup
████
image-rgb   pattern_create_radial-16     187.13 ->    91.86 :  2.04x speedup
█
 xlib-rgba              world_map-800  21261.41 -> 15628.02 :  1.36x speedup
▍

Here we see that the subimage_copy improvement was only about half as
large as the corresponding improvement on my laptop, (27x faster
compared to 54x) and the floating-point conversion fix also was quite
as significant, (2x compared to 3x). Oddly the improvement to text
rendering performance was more than twice as good (5x compared to
2x). I don't know what the reason for that is, but I don't think it's
anything anybody should complain about.

Shortlog of changes since 1.2.4
===============================
Adrian Johnson (14):
      Get correct unhinted outlines on win32.
      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

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

Behdad Esfahbod (47):
      [Makefile.am] Remove unnecessary parantheses that were causing trouble with old bash
      [ROADMAP] Add glyph cache inspection to 1.4 roadmap
      [TODO] Add cairo_get_scaled_font
      [ROADMAP] Remove 1.2.4 stuff out of the way
      [test] bufferdiff: take abs of the pixel diffs.  Oops!
      [image] Print out cairo version in the unsupported-format message
      Bug #7593: Avoid unsigned loop control variable to eliminate infinite, memory-scribbling loop.
      [xlib] Bug 7593: rewrite loop to be more readable, and fix warnings
      [PNG] Mark status volatile to fix gcc warning
      [test] Add 128 to any diff component such that differences are visible
      [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.

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.

Carl Worth (166):
      Increment version to 1.2.5 after making the 1.2.4 release
      Add -Wextra (as well as -Wno-missing-field-initializers -Wno-unused-parameter)
      Put static first to avoid compiler warning.
      Eliminate conditions checking for unsigned or enum values less than 0.
      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

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 (3):
      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

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.

Jinghua Luo (7):
      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.

Kristian Høgsberg (1):
      Compute right index when looking up left side bearing.

Michael Emmel (4):
      Fixed directfb test code
      Fixed test to compile
      Fixed test to compile
      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

Peter Weilbacher (2):
      OS/2 backend files
      OS/2 build changes

Robert O'Callahan (4):
      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

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

Vladimir Vukicevic (24):
      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

Yevgen Muntyan (1):
      Define WINVER if it's not defined. (bug 6456)

-------------- 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/20061115/0cfec3fc/attachment-0001.pgp


More information about the cairo-announce mailing list