[cairo] cairo snapshot 1.7.2 now available

Behdad Esfahbod behdad at behdad.org
Mon Aug 11 10:05:45 PDT 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

A new cairo snapshot 1.7.2 is now available from:

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

    which can be verified with:

	http://cairographics.org/snapshots/cairo-1.7.2.tar.gz.sha1
	29569943dad4a4e5bbe16495404288a466e1bd0f  cairo-1.7.2.tar.gz

	http://cairographics.org/snapshots/cairo-1.7.2.tar.gz.sha1.asc
	(signed by Behdad Esfahbod)

  Additionally, a git clone of the source tree:

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

    will include a signed 1.7.2 tag which points to a commit named:
	057a832f9e806f9321648e47ee314a62e82e6ba4

    which can be verified with:
	git verify-tag 1.7.2

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

Release 1.7.2 (2008-08-11 Behdad Esfahbod <behdad at behdad.org>)
==============================================================
The cairo community is finally ready to announce availability of the 1.7.2
snapshot of the cairo graphics library.  This is embarrissingly the first
snapshot in the 1.7 unstable series of cairo, leading to the eventual release
of cairo 1.8, currently planned for late September.

This snapshot comes four months after the 1.6.4 release.  We have done a
really bad job on getting development stapshots out this cycle, but
hopefully all the API changes for 1.8 are now finished and the remaining
weeks will be spent on bug-fixing.  There is more than 400 commits worth
of changes in this snapshot, and those can use some testing.  Read on!

Text, text, and more text!
- --------------------------
The dominant theme of this release, and 1.8 in general, is improvements
around cairo text API.  Here is a high-level list of changes with text
handling:

User fonts
- ----------
This is new API allowing the user of cairo API to provide drawings for glyphs
in a font.  This is most useful in implementing fonts in non-standard formats,
like SVG fonts and Flash fonts, but can also be used by games and other
applications to draw "funky" fonts.  See test/user-font.c and
test/user-font-proxy.c for usage examples.  This is based on early work by
Kristian Høgsberg.  Thanks Kristian!

show_text_glyphs
- ----------------
This new API allows the caller of cairo to mark text glyphs with their
original text.  The PDF backend implements this new API and latest Pango
master uses it.  The result is (when bugs are fixed) that complex text can be
copied out of pangocairo's PDF output correctly and reliably.  There are bugs
to fix though.  A few poppler bugs, and some more in cairo and pango.

To test show_text_glyph, just grab pango master and this cairo snapshot and
print text in gedit.  Open in acroread or evince, select all, copy, paste
in gedit and compare.  The Arabic text with diacritic marks is particularly
showing bad.  Try with pango/pango-view/HELLO.txt if you are brave
enough.  The Indic text is showing improvements, but is still coming out
buggy.

LCD subpixel filtering using FreeType
- -------------------------------------
FreeType 2.3.5 added support for various LCD subpixel filtering, and
fontconfig 2.6.0 added support for configuring LCD filter on a font by font
basis.  Cairo now relies on FreeType and fontconfig for subpixel filtering.
This work is based on David Turner's original patch to cairo, maintained
and tested by Sylvain Pasche and others.  Thanks all!

Toy font face constructor and getter
- ------------------------------------
Mostly for API completion, but also useful for higher level (like Pango) to
hook into what the user has set using cairo_select_font_face(), making that
toy API a bit more useful.

FreeType: respecting FC_FT_FACE
- -------------------------------
Previously it was impossible to instruct cairo to do emboldening on a font
face object created from an FT_Face.  Cairo now respects and uses the
FC_FT_FACE fontconfig pattern element, so emboldening can be achieved by
using cairo_ft_font_face_create_for_pattern() and a carefully crafted pattern
using FC_FT_FACE and FC_EMBOLDEN.


PS/PDF: More efficient output
- -----------------------------
Adrian Johnson has been busy fixing all kinds of bugs in PS and PDF
backends, as well making them generate much more compact output by avoiding
things like re-emitting the color or linestyle on every drawing operation.
Thanks Adrian!


Xlib: Dithering
- ---------------
Cairo now does simple dithering when rendering to legacy X servers.  This is
mostly visible with 8-bit visuals.

Xlib: Avoid rendering glyphs out of surface bounds
- --------------------------------------------------
This seemingly harmless change manifested a bug with OpenOffice.org 3 versions
where OO.o was passing bogus surface extents to cairo, resulting in no text
rendered in OO.o.  Please contact your distro's OO.o maintainers if you see
this bug and point them to the following URL:

  https://bugs.freedesktop.org/show_bug.cgi?id=16209

Xlib: Improved performance with Xrender-less X servers
- ------------------------------------------------------
Cairo now performs better on remote, Xrender-less X servers by being smarter
about using X core protocol facilities instead of falling back to doing all
rendering on the client side.


Directfb: backend improvements
- ------------------------------
The directfb backend, though still unsupported, has seen a good deal of
improvements.  Thanks Vlad!


Bug fixing and optimizations
- ----------------------------
Countless bugs have been fixed and optimizations made, many of them thanks to
Chris Wilson.  Thanks Chris!


API additions
- -------------

cairo_show_text_glyphs

  This is a new text rendering API.  Being a more advanced version of
  cairo_show_glyphs(), it is aimed for use by higher-level text toolkits like
  Pango, and enables better text extraction from output generated by backends
  like PDF and SVG.  The PDF backend already implements it, and the upcoming
  Pango release will use it.

  To make that API work, a bunch of other additions were made:

cairo_glyph_allocate
cairo_glyph_free
cairo_text_cluster_t
cairo_text_cluster_allocate
cairo_text_cluster_free
cairo_has_show_text_glyphs


cairo_user_font_face_create

  This is the "user" font face constructor, accompanied by a variety of method
  signatures, getters, and setters for a callback-based font backend:

CAIRO_FONT_TYPE_USER
cairo_user_scaled_font_init_func_t
cairo_user_scaled_font_render_glyph_func_t
cairo_user_scaled_font_text_to_glyphs_func_t
cairo_user_scaled_font_unicode_to_glyph_func_t
cairo_user_font_face_set_init_func
cairo_user_font_face_set_render_glyph_func
cairo_user_font_face_set_text_to_glyphs_func
cairo_user_font_face_set_unicode_to_glyph_func
cairo_user_font_face_get_init_func
cairo_user_font_face_get_render_glyph_func
cairo_user_font_face_get_text_to_glyphs_func
cairo_user_font_face_get_unicode_to_glyph_func


cairo_scaled_font_text_to_glyphs

  We were previously reluctant to provide this function as text-to-glyphs
  support in cairo was limited to "toy" font functionality, not really
  interesting for real-world text processing.  However, with user-fonts
  landing, this API is needed to expose full access to how user-fonts
  convert text to glyphs.  This is expected to be used by text toolkits like
  Pango, as well as "proxy" user-font implementations.


cairo_lcd_filter_t
cairo_font_options_set_lcd_filter
cairo_font_options_get_lcd_filter

  These add the possibility to choose between various available LCD subpixel
  filters.  The available filter values are modeled after what FreeType
  provides.


cairo_toy_font_face_create
cairo_toy_font_face_get_family
cairo_toy_font_face_get_slant
cairo_toy_font_face_get_weight

  These provide access to functionality and settings provided by
  cairo_select_font_face().


cairo_scaled_font_get_scale_matrix
cairo_surface_get_fallback_resolution

  For API completeness.


Various new values for cairo_status_t enum


Known issues:

- - Type3 fonts generated by cairo's PDF backend may show up in poppler/Evince
  in a different color than expected.  This is fixed in poppler master branch.
  This mostly affects cairo user fonts.  The test case test/user-font.c
  demonstrates this.

- - User fonts using other fonts in their rendering are currently embedded in
  PDF as fallback bitmap glyphs.  This will be (hopefully) fixed before 1.8.
  The test case test/user-font-proxy.c demonstrates this.


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

	http://cairographics.org/download

Documentation on using cairo and frequently-asked questions:

	http://cairographics.org/documentation
	http://cairographics.org/FAQ

Mailing lists for contacting cairo users and developers:

	http://cairographics.org/lists

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

	http://cairographics.org/roadmap
	http://cairographics.org/todo

What's new in cairo 1.7.2 compared to 1.6.4
===========================================
Adrian Johnson (67):
      PS: Fix inefficient implementation of Tm/Td operators that was crashing printers
      Refresh text-rotate PS reference image
      win32: Fix broken printing of type1 fonts
      Add "Since: 1.6" to win32 printing surface
      PDF: Fix gradients with one stop
      PS: Fix gradients with one stop
      PDF: Fix unbalanced save/restore
      Fix group-paint PDF test failure
      Make cairo_win32_surface_get_dc work with win32 printing surface
      Fix win32-printing show_glyphs analysis for Type 1 fonts
      Make win32-printing surface work with bitmap fonts
      Fix win32 bitmap font metrics when device scale != 1
      Fix bug in win32 font metrics with bitmap fonts
      Eliminate warning in win32 load_truetype_table with bitmap fonts
      win32-font: Check status in load_truetype_table
      Add missing argument to _cairo_pdf_surface_show_glyphs()
      Ensure eexec encryption in subsetted Type 1 font is compliant (#13679)
      Make font subsetting output fonts in order of the font subset id
      Remove UniqueID key from subsetted Type 1 fonts
      Remove XUID key from subsetted Type 1 fonts
      Disable UniqueID font check in Type 1 subset font
      Add _cairo_pdf_operators_flush()
      PDF: Remember the current color
      PDF: Don't emit a new text object for every call to show_glyphs
      Store y_advance in cairo_scaled_font_subsets_glyph_t
      Rewrite _cairo_pdf_operators_show_glyphs()
      PS: Make PDF emulation work with the new show_glyphs optimizations
      Optimize PDF operators show_glyphs() to use Tj operator
      Bit swap when writing FORMAT_A1 to PNG on little endian
      Update PDF/PS ref images of text-rotate and ft-show-glyphs-positioning
      Fix win32-printing show_glyphs analysis
      Change _cairo_font_face_is_user() from static to cairo_private
      Implement PDF Type 3 font subsetting of user fonts
      Implement PS Type 3 font subsetting of user fonts
      Implement PS Type 3 font image support
      Update user-font test PS/PDF ref images
      PDF: Ensure text object is closed before emitting fill or stroke
      Add index_to_ucs4 font backend function and FT implementation
      Implement win32 index_to_ucs4 font backend function
      Add _cairo_truetype_index_to_ucs4()
      Add _cairo_ucs4_to_utf8
      Allow _cairo_scaled_font_subsets_map_glyph() to specify utf8 mapping
      Use subset utf8 mapping in PDF ToUnicode stream
      Use subset utf8 mapping to create the glyph names for PS fonts
      Removed unused cairo_truetype_create_glyph_to_unicode_map()
      Remove unused map_glyphs_to_unicode functions
      Add show_text_glyphs to PDF operators
      Add show_text_glyphs to PDF surface
      Add missing status checks
      PS: Remember position when changing font
      PDF: Fix glyph positioning bug in TJ operator
      PDF: Fix glyph positioning bug in Tj operator
      PS: Remember current color
      PDF: remove meta surface group clean
      PDF: Ensure clip is not emitted outside of stream
      PDF: Limit precision of Td operands
      Add paginated surface backend function _set_fallback_images_required
      PDF: Don't use a Form dictionary for the content stream
      PS: Ensure the color is re-emitted after resetting the clip path
      PDF: Oops - turn compression back on
      Add PDF operators function to reset any remembered state
      PDF/PS: Remember the current line style
      win32-font: Make cairo_show_text() work again
      Fix _cairo_sub_font_map_glyph() to return correct unicode value
      Win32-printing: Fix Type 1 font printing so fallback is not used
      Update _cairo_scaled_font_subsets_map_glyph() docs
      NEWS: Win32 font backend has been fixed

Behdad Esfahbod (230):
      Add doc/tutorial/src/singular.c
      [Makefile.am] Document why beos was removed from build, and remove some cruft
      [doc/tutorial/src/singular.c] Fix a bug in delta computation
      [Makefile.am] Sort source files
      [Makefile.am] Rename cairo_all_source_file to cairo_all_source_files
      [src/check-doc-syntax.sh] Use cairo_all_source_files if available
      Add XXX marker
      [src/check-doc-syntax.sh] Fix some bugs in the check and fix errors found
      [cairo-deprecated.h] Remove mention of cairoint.h from public header
      [image surface] Rename cairo_image_surface_backend to _cairo_image_surface_backend
      [cairo-surface] Tone down a Caution comment
      [_cairo_surface_set_device_scale] zero xy and yx matrix entries
      Define CAIRO_RECT_INT_MIN/MAX such that ints do not overflow when converted to fixed
      [cairo-font-face] Tolerate null font_face->backend->destroy()
      [cairo-scaled-font] Tolerate null scaled_font->backend->fini
      [cairo-surface] Call backend->flush even if backend->finish is null
      [cairoint.h] Fix file name in comments
      [cairo-rectangle] Add new convenience functions for working with cairo_box_t
      [cairo-path-fixed] Add a couple consts to function signatures
      [cairo-path-fixed] Add _cairo_path_fixed_append()
      Add more consts to function signatures and remove stale prototype
      [cairo-matrix] Add _cairo_matrix_transform_bounding_box_fixed()
      [cairo-analysis-surface] Use _cairo_matrix_transform_bounding_box_fixed()
      [cairo-analysis-surface] Add _cairo_analysis_surface_[gs]et_ctm()
      Add CAIRO_STATUS_FONT_TYPE_MISMATCH
      [cairo-win32-font.c] Return error on font type mismatch
      [cairo-ft-font.c] Throw error on font type mismatch and remove unused function
      [cairo-analysis-surface] Hold reference to target surface
      [cairo-paginated-surface] Clean up reference counting mess
      [cairo-pattern] Extend infinite pattern extents to negative coordinates too
      [cairo-analysis-surface] Initialize page bounding box
      [_cairo_surface_get_extents()] return UNSUPPORTED if surface has no bounds
      [cairo-meta/analysis-surface] Make width/height of -1,-1 mean unbounded surface
      [cairo-traps] Add _cairo_traps_path()
      [cairo-meta-surface] Add _cairo_meta_surface_get_path()
      Add CAIRO_INTERNAL_SURFACE_TYPE_NULL and cairo_nul_surface_create()
      [cairo-scaled-font] Add a meta-surface member to scaled glyphs
      [cairo-scaled-font] In _cairo_scaled_glyph_lookup, better handle UNSUPPORTED
      [cairo-test] Implement cairo_test_log_path() to dump a cairo_path_t to logs
      Fix gtk-doc warnings
      [cairo-quartz-image-surface] Remove one abuse of out-of-memory status
      [doc] Remove cairo-quartz-image-surface from docs
      [cairo-user-font] Implement user fonts
      [user-font] Round glyph origin position
      [user-font] Normalize the space we compute extents in
      [test/user-font] Add some more glyphs
      [cairo-path-fixed] Implement full-matrix _cairo_path_fixed_transform()
      [user-font] Set correct device-offset for rotated text
      [test/user-font] Another minor tweak to the font
      [cairo-pattern] Make a free() call conditional
      [cairo-surface] Add cairo_surface_get_fallback_resolution()
      [cairo-xlib-surface.c] Fix memmove bug
      [test/Makefile.am] Add 'make run' target
      [cairo-surface] Fix compiler warnings
      [cairo-fixed] Implement _cairo_fixed_mul_div()
      [cairo-traps] Fix overflow in traps_path code
      [user-font] Use opaque colors such that PS backend gets tested
      [cairo-surface] Allow flush and finish calls after surface is finished
      [cairo-xlib] Remove unused variable
      [cairo-xlib] Fix show_glyphs when failing to upload a glyph
      [cairo-xlib] Fix max-request size calculations
      [test/large-font] Make the font REALLY LARGE
      [cairo-xlib] Some code reshuffling, in preparation for a fix
      [cairo-xlib] Shift range of allowed glyph positions
      [cairo-xlib] Upon seeing glyphs with large position, just let fallback handle
      [cairo-surface] Minor code reshuffling
      [cairo-xlib] Fix bug introduced in yesterday's code shuffling.  Oops.
      [cairoint] Sort prototypes
      [cairo-scaled-font] Implement _cairo_scaled_font_get_max_scale()
      [cairo-gstate] Drop glyphs out of surface boundaries in show_glyphs()
      [test/surface-finish-twice.c] Adapt to recent change that multiple finish is ok
      [src] Make make check pass
      Add public API cairo_scaled_font_get_scale_matrix()
      [test/user-font-proxy] New test using fonts inside a user-font
      [src/cairo-scaled-font] Only take fontmap mutex if touching it
      [user-font] Release fontmap lock around user callback
      [user-font] Note possible locking issue
      Fix typos
      One more typo fix
      [user-font] Lock the font mutex such that user doesn't accidentally use it yet
      [user-font] Fix fontmap locking
      [cairo-matrix] Move IS_FINITE(det) checks before det==0 checks
      [cairo-scaled-font] Clean up recent locking changes
      Fix typo.
      [cairo-gstate] Add code for switching to path;fill for huge show_glyph()s
      [util/backtrace-symbols] Implement backtrace_symbols_fd()
      [cairo-xlib] Delay using fallback if xrender is not available
      [cairo-mutex] Prepare mutex infrastructure for adding mutex debugging facilities
      [test/user-font] Use user_data to access glyphs array
      [cairo-gstate] Add _cairo_gstate_int_clip_extents()
      [cairo-gstate] Use clip, not surface, extents to drop invisible glyphs
      [cairo-scaled-font] Fix assertion failure
      [src/check-def.sh] Improve test comment
      Add support for byteswap macros bswap_16 and bswap_32
      [cairo-xlib] Add recently-added byteswap macros (#16128)
      [src/check-def.sh] Also check for public variables (#16129)
      [cairo-user-font] Make backend struct static
      [configure.in] Dont let a missing FcFini disable the freetype font backend!
      [src/check-def.sh] Don't report anything if skipping test
      [cairo-xlib] Fix compiler warning
      [cairoint.h] Add COMPILE_TIME_ASSERT()
      [cairo-xlib] Use newly-added COMPILE_TIME_ASSERT
      Fix two more compile errors
      One more remaining_glyphs compile fix
      [cairo-compiler-private] Make it build with wine
      [cairo-win32-surface] Remove unused variable
      [cairo-path-fixed] Fixe compiler warning
      [cairo-unicode] Make unicode conversion funcs take const char *utf8
      [test/user-font.c] Fix compiler warnings
      [cairo-xlib] Rewrite cairo_xlib_glyph_t as a union of cairo_glyph_t
      Fix whitespace
      Remove some bogus XXX marks
      [user-font] Handle antialiasing font option
      [cairo-user-font] Add comment about possibly doing metrics-hinting
      [user-font] Remove completed TODO item
      [user-font] Handle the case of a null render_glyph callback
      [user-font] Cache extent-space scale in the scaled font
      [user-font] Handle metrics-hinting font option
      [doc] Add stub for user-fonts
      [doc] Document remaining CAIRO_HAS_* macros
      [doc] Add Index of 1.8 symbols
      Fix doc syntax.
      [user-font] Document all public functions
      [user-font] Improve docs.
      [cairo-xcb] Oops.  Fix build.
      [cairo-mutex] Remove debugging stuff that I accidentally committed
      [src/check-doc-syntax.sh] Detect malformatted enums starting the line
      Fix newly detected doc syntax issues
      [src/check-doc-syntax.sh] Detect malformatted functions at line start
      Fix now-detected doc formatting issues
      [cairo-gstate] Return immediately if clip bounds is empty
      [cairo-ft] Respect FC_FT_FACE element of pattern
      [user-font] Add XXX mark about metrics-hinting the font extents
      [user-font] Let user decide to fall back to unicode_to_glyph in text_to_glyphs
      [user-font] Reorder methods to the order they should appear in docs
      [user-font] Add XXX mark for text_to_glyphs memory allocation issue
      [configure.in] Change version to 1.7.1
      [doc] Document user-font callback types
      [cairo-xlib-screen] Protect fontconfig call with CAIRO_HAS_FT_FONT
      [cairo-ft-font] Fix thinko in _cairo_ft_unscaled_font_keys_equal()
      [cairo-ft-font] Make font face caching work again
      [xlib-visual] Allocate 8-entry gray ramp instead of 16-entry
      [xlib-visual] Make the 5x5x5 color cube better approximate the rgb333 space
      Make check-*.sh scripts more portable (#16299)
      [cairo-xlib-xrender] Simplify dummy XRender function stubs
      [cairo-pattern] Fix solid surface cache to check for content match too
      [src/check-def.sh] Make sure no global variables are named cairo_*
      Rename cairo_* global vars to _cairo_*
      [cairo-pattern] Remove stale comment
      [cairo-pattern] Don't call _cairo_stock_color() directly
      [cairo-pattern] In init_solid() convert COLOR_ALPHA to COLOR if color is opaque
      Remove opaque solid pattern COLOR_ALPHA optimization from call sites
      Fix comment
      [cairo-pattern] Clean up _cairo_pattern_acquire_surface_for_solid()
      [cairo-surface] Remove optional pattern argument from create_similar_solid()
      Add a create_solid_pattern_surface surface backend method
      [cairo-xlib-surface] Remove unused macro
      [xlib] Implement dithering
      [cairo-xlib-surface] Force buggy_repeat to TRUE if Render is not available
      [cairo-xlib-surface] In _get_image_surface only use pixman formats >= 24bpp
      [cairo-xlib-surface] Make _draw_image_surface handle arbitrary image formats
      [cairo-xlib-surface] Implement create_solid_pattern_surface
      [cairo-xlib-surface] Fix core solid_fill_rectangles to do dithering
      [cairo-xlib] Don't undither pseudocolor, doesn't look good
      [gstate] Fix huge-font path;fill fallback options
      Rename cairo_win32_scaled_font_backend to _cairo_win32_scaled_font_backend
      Rename cairo_quartz_scaled_font_backend to _cairo_quartz_scaled_font_backend
      Rename _cairo_font_reset_static_data to _cairo_font_face_reset_static_data
      Use #include "cairo-*." instead of #include <cairo-*.h>
      Protect against NULL glyphs array in text API
      [doc] Update doc/public/Headers.mk
      Add status CAIRO_STATUS_NEGATIVE_COUNT
      Return CAIRO_STATUS_NEGATIVE_COUNT if num_glyphs is negative
      Make sure cairo_int_status_t values fit in int8_t
      Cleanup _set_error functions a bit
      Oops.  Fix thinko in previous commit.
      Update .gitignore files
      [xlib] Use _cairo_xlib_surface_create_internal() directly
      [cairo-types] fix doc syntax
      Allow NULL output in _cairo_utf8_to_ucs4()
      Add cairo_show_text_glyphs API
      [analysis-surface] Implement show_text_glyphs
      [paginated-surface] Implement show_text_glyphs
      [meta-surface] Implement show_text_glyphs; Remove show_glyphs
      Change cairo_text_cluster_t members signed
      [PDF] Remove show_glyphs that was a wrapper to show_text_glyphs
      [show_text_glyphs] Allow clusters with zero text
      Remove _cairo_surface_show_glyphs() in favor of _cairo_surface_show_text_glyphs()
      [cairo-pdf-operators] Fix backward cluster iteration
      [analysis-surface] Fallback between show_glyphs and show_text_glyphs
      [analysis-surface] Fix crashers introduced in my previous commit
      [cairo-pattern] Fix crash in solid-pattern-surface cache
      [configure.in] Cosmetic
      [cairo-ft] Use FcFreeTypeCharIndex instead of FT_Get_Char_Index
      [win32] Fix build
      Finish off lcd-filter merge
      [test/user-font] Document that Poppler is buggy with glyph 0
      Fix Ubuntu-specific issue with FC_LCD_NONE et al
      Remove unnecessary checks for CAIRO_STATUS_INVALID_STRING
      [docs] Update private header list
      Add toy font constructor and getters
      [gstate] Check for NULL font_face in _cairo_gstate_set_font_face
      Check for NULL pointer in cairo_set_scaled_font
      [user-font] Add a cairo_t argument to cairo_user_scaled_font_init_func_t
      Add cairo_glyph/text_cluster_allocate/free
      [unicode] Add _cairo_utf8_get_char_validated()
      [cairo-scaled-font-subsets] Fix bug with utf8 handling
      Add cairo_scaled_font_text_to_glyphs()
      [test/user-font] Document glyph-not-found situation
      [cairo-scaled-font-subsets] Make utf8 handling more robust
      [truetype] Fix gcc warning about possibly-infinite-loops
      Make utf8 handling in font subsets more consistent
      [pdf-operators] Add note about clusters with no glyphs
      [scaled-font-subsets] Fix UTF-8 mapping
      [test/user-font] Fix comments
      Document all new API
      Add note about zero-glyph clusters
      [doc] Add short user-font section docs
      [NEWS] Add some notes about recent happenings
      [test/Makefil.am] Cosmetic
      [gstate] Revert Check for NULL font_face in _cairo_gstate_set_font_face
      [test] Update ref image list
      [RELEASING] Update for external pixman
      Fix doc syntax
      [RELEASING] Easier to see API diff than log
      [ChangeLog.mk] Revert 21ab44f11d3d20eead5d988c7a6cf48eebff08c7
      [RELEASING] Update for cairo-features-win32.h
      [doc] Update templates
      [configure.in,NEWS] Release 1.7.2
      [configure.in] Increment version to 1.7.3 post release

Carl Worth (12):
      Increment cairo version to 1.5.21 after the 1.5.20 snapshot
      Merge in  origin/master, (just a few 1.5.21 changes alongside 1.6.0 release)
      Merge in origin/master, (a few changes in parallel to 1.6.2 release)
      Increment version to 1.6.5 after the 1.6.4 release
      README: Note that quartz is no longer experimental
      Merge in '1.6'
      RELEASING: Send announcement of major releases to pr at lwn.net as well
      Extend fallback-resolution test to expose bug with groups
      BUGGY: Add surface_backend->acquire_source_image_transformed
      Add large-font test to exercise a cairo-xlib bug.
      Revert "BUGGY: Add surface_backend->acquire_source_image_transformed"
      cairo.h: Remove trailing comma in enumeration

Chris Wilson (79):
      [test/filter-bilinear-extents] Memleak.
      Check surface->status and finished in cairo_surface_write_to_png_stream
      [test] Add group-paint
      [xlib] Add locking around GC cache.
      [xlib] Convert the Visual cache to use the screen mutex.
      [xlib] Clear the Visual cache upon display closure.
      [cairo] Return defaults when the context is in error.
      [cairo-arc] Check that the context is not error before proceeding.
      [cairo-font-options] Eliminate internal use of cairo_font_options_create()
      [test] Handle TEST_CONTENT_COLOR_ALPHA_FLATTENED similar surfaces.
      [test] Add a regression test for bug 10921
      [xlib] Clear the gc_needs_clip_reset after use.
      [cairo-test] Spelling fixes in comments.
      [test/a1-mask] Perform the stride API checking once.
      [test/a8-mask] Perform the stride API checking once.
      [Makefile.am] Add cairo-pdf-operators*.[ch] to ps_sources
      [Makefile.am] Fix breakage in previous commit.
      [cairo-meta-surface] Save and restore the original clip.
      [cairo-png] Create an ARGB32 surface for paletted PNGs.
      [test/create-from-png] Check loading of various colour types.
      [cairo-png] Recheck png_info after setting transformation options.
      [cairo-png] Call png_set_filler() before png_read_update_info().
      [test/Makefile.am] EXTRA_DIST += create-from-png*-ref.png
      [cairo-ft] Remove unused private aliases.
      [test/ft-font-create-for-ft-face] Fix the lifetime issues of FT_Face.
      [cairo-ft] Correct the function references in the docs.
      [cairo-ft-font] Fixup doc reference to cairo_ft_font_face_create_for_ft_face()
      [cairo-ft] Add a demonstration of how to handle the lifetime of the FT_Face.
      [check] Filter programlistings for check-doc-syntax.sh
      [test] Add test case for a leaky dashed rectangle.
      [configure.in] Add lcov-1.6 to list of valid versions.
      [test] Enable floating point exceptions.
      [test/invalid-matrix] Disable floating point exception.
      [test] Add degenerate-arc
      [cairo-arc] Protect against division-by-zero.
      [cairo-pattern] Repaint existing cached similar solid surfaces.
      [cairo-xlib] Cache standard xrender formats.
      [cairo-xlib] Enlarge the on-stack arrays.
      [cairo-scaled-font] Mark the scaled font as finished during destruction.
      [cairo-xlib] Batch XRenderFreeGlyphs
      [cairo] Cache freed gstates.
      [cairo-hull] Attempt to allocate vertices on stack.
      [cairo-path-stroke] Avoid allocation for single rectangle.
      [cairo-pen] Embed a small array of vertices into cairo_pen_t.
      Enlarge the embedded arrays to eliminate frequent allocations.
      [cairo-perf] Only allocate arrays once.
      [cairo-boilerplate] Silence compiler warning.
      [cairo-xlib] Scan for a glyphset to match a pending free glyph.
      [cairo-pattern] Try to repaint the evicted surface from the solid surface cache.
      [cairo-pattern] Generate an opaque solid colour if alpha >= 1.
      Trivial warning fixes to silence the compiler.
      Allocate the correct pattern type on the stack.
      [check-def.sh] Ignore magic PPC symbols
      [cairo-xlib-surface] Handle a NULL visual along core FillRectangles path.
      [cairo-xlib-surface] Optimize away clip that covers the entire surface.
      [test/solid-pattern-cache-stress] Do what it says on the tin.
      [test/xlib-surface-source] Build under --disable-xlib-xrender.
      [cairo-pattern] Band-aid for the solid surface cache.
      [cairo-scaled-font-subsets] Add missing malloc check.
      [cairo-scaled-font] Suppress compiler warning about unused variables.
      [cairo-scaled-font-subsets] And free the allocated memory on failure.
      [cairo-scaled-font-subsets] Fix use of unitialised variable.
      [cairo-scaled-font-subsets] Fix memleak.
      [cairo-font-options] Add private alias for set_lcd_filter()
      [pdf] Fixup a couple of inverted tests.
      [pdf] Propagate status from emit_glyph()
      [valgrind] More suppressions for XrmGetStringDatabase().
      [pattern] Set the reference count for stack allocations to 0.
      [cairo-surface] Use the pre-computed device_transform_inverse.
      Check return from pixman_image_set_filter().
      [configure.in] Slight massage for recent Ubuntu autotools.
      [meta] Remove debugging assert.
      [meta] Use the pre-computed device_transform_inverse.
      [xlib] Free regions on failure.
      [matrix] Prefer a return parameter for _compute_determinant().
      [test] Update reference image for leaky-dashed-rectangle.
      [.gitignore] Update list of tests
      [xlib] Check for depth == 0 in create_surface_internal().
      [configure.in] Revert addition of MACRO_DIR()

Frederic Plourde (1):
      [win32] Make cairo-perf-diff run on win32

Ginn Chen (1):
      [cairo-xlib] Implement _cairo_xlib_surface_solid_fill_rectangles() (#11529)

Jeff Muizelaar (6):
      Avoid deadlock when clearing caches
      Add a test for scaling a surface with device offset.
      Fix scaling with a device offset
      Make cairo_scaled_font_glyph_extents() unconditionally zero the extents
      Add a test case showing the invariance of push/pop_group
      Center the group pattern transform around the device_transformed origin

Kouhei Sutou (1):
      Fix typo in documentation (missing stride argument)

M Joonas Pihlaja (1):
      Bug: tessellator sometimes ends rightmost trapezoids too late

Peter Weilbacher (1):
      [OS/2] Fix build

Richard Hult (1):
      Fix to install cairo-quartz-font.pc

Robert O'Callahan (1):
      Clone surface correctly when doing a deep clip copy

Sebastien Pouliot (1):
      [configure.in] Build fails on Solaris due to non-POSIX ctime_r()

Sylvain Pasche (8):
      [cairo-ft] LCD filtering patch from David Turner
      [cairo-ft] LCD filtering patch coding style corrections
      Add lcd filter type to the public API and font options
      [cairo-ft] Fontconfig defines for LCD constants when using Fontconfig < 2.6
      [cairo-xlib] Support to retrieve the LCD filter type from the Xrm database
      [cairo-ft] Interaction with Fontconfig to deal with the LCD filter type
      Add symbols for setting the LCD filter type on font options
      Add tests for the new LCD filter API

Søren Sandmann (7):
      New large-clip test
      Add the correct reference image for the large-clip test
      Use 32 bit pixman regions for cairo_region_t
      Fix xlib incarnation of the large-clip bug.
      Require pixman 0.11.2 for 32 bit regions
      Remove large-clip from xfail list
      Merge branch 'region32'

Vladimir Vukicevic (12):
      [quartz] Fix CGFont leaks when creating quartz fonts
      [quartz] Protect against NULL from CGFontGetHMetricsPtr
      [quartz] Take snapshot instead of using CGImageCreateCopy
      Fix cairo-quartz-image-surface compilation error
      [win32] Update win32 build, remove gcc dependency
      [win32] Adding cairo-features-win32.h to EXTRA_DIST
      [misc] Remove trailing comma on enum
      [dfb] convert RUN_CLIPPED macro to function with helpers
      [dfb] Propagate clip correctly to surface returned from acquire_dest_image
      [dfb] correctly handle case of 0 boxes in clip region
      [dfb] optimize DirectFB blits
      [dfb] fix crashes due to cached glyphs going away during operation
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkigcWUACgkQn+4E5dNTERXYfACgsL034MI5lg/sk1FTnh0UJyxI
CewAn1cpAf61yjmClGHdwlxscjfKxqdH
=EJPq
-----END PGP SIGNATURE-----


More information about the cairo mailing list