[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