A new cairo release 1.4.0 is now available from: http://cairographics.org/releases/cairo-1.4.0.tar.gz which can be verified with: http://cairographics.org/releases/cairo-1.4.0.tar.gz.sha1 2ce727347d8285cee4ce0c3feb0a2df18316a5d3 cairo-1.4.0.tar.gz http://cairographics.org/releases/cairo-1.4.0.tar.gz.sha1.asc (signed by Carl Worth) Additionally, a git clone of the source tree: git clone git://git.cairographics.org/git/cairo will include a signed 1.4.0 tag which points to a commit named: 5dfa8c23f13f5cafac5cf56f34888a6e01dc79ba which can be verified with: git verify-tag 1.4.0 and can be checked out with a command such as: git checkout -b build 1.4.0 The many people[*] who have been working hard on cairo are very pleased to announce the long-awaited release of cairo 1.4. This release comes 4 months after the last stable update release (1.2.6) and 9 months since the initial release of 1.2.0. The release notes below are intended to capture the highlights of the changes that have occurred from the 1.2 series to the new 1.4.0 release. Everyone, have fun with cairo! -Carl Overview of changes from 1.2.6 to 1.4.0 ======================================= Performance improvements ------------------------ Within the cairo project, the last 6 months or so has seen an intense effort focusing on the performance of cairo itself. That effort has paid off considerably, as can be seen in the following highlights of some of the performance differences from cairo 1.2.6 to cairo 1.4.0. (Note: The performance results reported here were measured on an x86 laptop. Many of the improvements in 1.4---particular those involving text rendering---are even more dramatic on embedded platforms without hardware floating-point units. Such devices played an important part of many of the optimizations that found their way into cairo over the last few months.) • Dramatic improvement when drawing objects that are mostly off-screen with the image backend (with the xlib backend this case is still slow due to an X server bug): image-rgba long-lines-uncropped-100 479.64 -> 4.98: 96.24x speedup ███████████████████████████████████████████████▋ • Dramatic improvement when copying a small fraction of an image surface to an xlib surface: xlib-rgba subimage_copy-512 3.93 -> 0.07: 54.52x speedup ██████████████████████████▊ • Dramatic improvement to tessellation speed for complex objects: image-rgb tessellate-256-100 874.16 -> 34.79: 25.13x speedup ████████████▏ xlib-rgba zrusin_another_fill-415 148.40 -> 13.85: 10.72x speedup ████▉ xlib-rgb world_map-800 680.20 -> 345.54: 1.97x speedup ▌ • Dramatic improvement to the speed of stroking rectilinear shapes, (such as the outline of a rectangle or "box"): image-rgb box-outline-stroke-100 0.18 -> 0.01: 24.22x speedup ███████████▋ xlib-rgb box-outline-stroke-100 0.46 -> 0.06: 8.05x speedup ███▌ • Dramatic improvements to text rendering speeds: xlib-rgba text_image_rgba_over-256 63.12 -> 9.61: 6.57x speedup ██▊ • 3x improvements to floating-point to fixed-point conversion speeds: image-rgba pattern_create_radial-16 9.29 -> 3.44: 2.70x speedup ▉ • 2x improvements to linear gradient computation: image-rgb paint_linear_rgb_source-512 26.22 -> 11.61: 2.26x speedup ▋ • 2x improvement to a case common in PDF rendering: image-rgb unaligned_clip-100 0.10 -> 0.06: 1.81x speedup ▍ • 1.3x improvement to rectangle filling speed (note: this improvement is new since 1.3.16---previously this test case was a 1.3x slowdown compared to 1.2.6): image-rgba rectangles-512 6.19 -> 4.37: 1.42x speedup ▎ xlib-rgba rectangles-512 7.48 -> 5.58: 1.34x speedup ▏ NOTE: In spite of our best efforts, there are some measurable performance regressions in 1.4 compared to 1.2. It appears that the primary problem is the increased overhead of the new tessellator when drawing many, very simple shapes. The following test cases capture some of that slowdown: image-rgba mosaic_tessellate_lines-800 11.03 -> 14.29: 1.30x slowdown ▏ image-rgba box-outline-fill-100 0.01 -> 0.01: 1.26x slowdown ▏ image-rgba fill_solid_rgb_over-64 0.20 -> 0.22: 1.12x slowdown image-rgba fill_image_rgba_over-64 0.23 -> 0.25: 1.10x slowdown xlib-rgb paint_image_rgba_source-256 3.24 -> 3.47: 1.07x slowdown We did put some special effort into eliminating this slowdown for the very common case of drawing axis-aligned rectangles with an identity matrix (see the box-outline-stroke and rectangles speedup numbers above). Eliminating the rest of this slowdown will be a worthwhile project going forward. Also note that the "box-outline-fill" case is a slowdown while "box-outline-stroke" is a (huge) speedup. These two test cases resulted from the fact that some GTK+ theme authors were filling between two rectangles to avoid slow performance from the more natural means of achieving the same shape by stroking a single rectangle. With 1.4 that workaround should definitely be eliminated as it will now cause things to perform more slowly. Greatly improved PDF output --------------------------- We are very happy to be able to announce that cairo-generated PDF output will now have text that can be selected, cut-and-pasted, and searched with most capable PDF viewer applications. This is something that was not ever possible with cairo 1.2. Also, the PDF output now has much more compact encoding of text than before. Cairo is now much more careful to not embed multiple copies of the same font at different sizes. It also compresses text and font streams within the PDF output. API additions ------------- There are several new functions available in 1.4 that were not available in 1.2. Curiously, almost all of the new functions simply allow the user to query state that has been set in cairo (many new "get" functions) rather than providing any fundamentally new operations. The new functionality is: • Getting information about the current clip region cairo_clip_extents cairo_copy_clip_rectangle_list cairo_rectangle_list_destroy • Getting information about the current dash setting cairo_get_dash_count cairo_get_dash • Getting information from a pattern cairo_pattern_get_rgba cairo_pattern_get_surface cairo_pattern_get_color_stop_rgba cairo_pattern_get_color_stop_count cairo_pattern_get_linear_points cairo_pattern_get_radial_circles • Getting the current scaled font cairo_get_scaled_font • Getting reference counts cairo_get_reference_count cairo_surface_get_reference_count cairo_pattern_get_reference_count cairo_font_face_get_reference_count cairo_scaled_font_get_reference_count • Setting/getting user data on objects cairo_set_user_data cairo_get_user_data cairo_pattern_set_user_data cairo_pattern_get_user_data cairo_scaled_font_set_user_data cairo_scaled_font_get_user_data • New cairo-win32 functions: cairo_win32_surface_create_with_ddb cairo_win32_surface_get_image cairo_win32_scaled_font_get_logical_to_device cairo_win32_scaled_font_get_device_to_logical API deprecation --------------- The CAIRO_FORMAT_RGB16_565 enum value has been deprecated. It never worked as a format value for cairo_image_surface_create, and it wasn't necessary for supporting 16-bit 565 X server visuals. A sampling of bug fixes in cairo 1.4 ------------------------------------ • Fixed radial gradients • Fixed dashing (degenerate and "leaky" cases) • Fixed transformed images in PDF/PS output (eliminate bogus repeating) • Eliminate errors from CAIRO_EXTEND_REFLECT and CAIRO_EXTEND_PAD • cairo_show_page no longer needed for single-page output • SVG: Fix bug preventing text from appearing in many viewers • cairo-ft: Return correct metrics when hinting is off • Eliminate crash in cairo_create_similar if nil surface is returned • Eliminate crash after INVALID_RESTORE error • Fix many bugs related to multi-threaded use and locking • Fix for glyph spacing 32 times larger than desired (cairo-win32) • Fixed several problems in cairo-atsui (assertion failures) • Fix PDF output to avoid problems when printing from Acrobat Reader • Fix segfault on Mac OS X (measuring a zero-length string) • Fix text extents to not include the size of non-inked characters • Fix for glyph cache race condition in glitz backend (Jinghua Luo) • Fix make check to work on OPD platforms (IA64 or PPC64) • Fix compilation problems of cairo "wideint" code on some platforms • Many, many others... Experimental backends (quartz, XCB, OS/2, BeOS, directfb) --------------------------------------------------------- None of cairo's experimental backends are graduating to "supported" status with 1.4.0, but two of them in particular (quartz and xcb), are very close. The quartz baceknd has been entirely rewritten and is now much more efficient. The XCB backend has been updated to track the latest XCB API (which recently had a 1.0 release). We hope to see these backends become supported in a future release, (once they are passing all the tests in cairo's test suite). The experimental OS/2 backend is new in cairo 1.4 compared to cairo 1.2. Documentation improvements -------------------------- We have added documentation for several functions and types that were previously undocumented, and improved documentation on other ones. As of this release, there remain only two undocumented symbols: cairo_filter_t and cairo_operator_t. [*]Thanks to everyone --------------------- I've accounted for 41 distinct people with attributed code added to cairo between 1.2.6 and 1.4.0, (their names are below). That's an impressive number, but there are certainly dozens more that contributed with testing, suggestions, clarifying questions, and encouragement. I'm grateful for the friendships that have developed as we have worked on cairo together. Thanks to everyone for making this all so much fun! Adrian Johnson, Alfred Peng, Alp Toker, Behdad Esfahbod, Benjamin Otte, Brian Ewins, Carl Worth, Christian Biesinger, Christopher (Monty) Montgomery, Daniel Amelang, Dan Williams, Dave Yeo, David Turner, Emmanuel Pacaud, Eugeniy Meshcheryakov, Frederic Crozat, Hans Breuer, Ian Osgood, Jamey Sharp, Jeff Muizelaar, Jeff Smith, Jinghua Luo, Jonathan Watt, Joonas Pihlaja, Jorn Baayen, Kalle Vahlman, Kjartan Maraas, Kristian Høgsberg, M Joonas Pihlaja, Mathias Hasselmann, Mathieu Lacage, Michael Emmel, Nicholas Miell, Pavel Roskin, Peter Weilbacher, Robert O'Callahan, Soren Sandmann Pedersen, Stuart Parmenter, T Rowley, Vladimir Vukicevic What is cairo ============= Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, win32, and image buffers, as well as PDF, PostScript, and SVG file output. Experimental backends include OpenGL (through glitz), Quartz, XCB, BeOS, OS/2, and DirectFB. Cairo is designed to produce consistent output on all output media while taking advantage of display hardware acceleration when available (for example, through the X Render Extension). The cairo API provides operations similar to the drawing operators of PostScript and PDF. Operations in cairo including stroking and filling cubic Bézier splines, transforming and compositing translucent images, and antialiased text rendering. All drawing operations can be transformed by any affine transformation (scale, rotation, shear, etc.). Cairo has been designed to let you draw anything you want in a modern 2D graphical user interface. At the same time, the cairo API has been designed to be as fun and easy to learn as possible. If you're not having fun while programming with cairo, then we have failed somewhere---let us know and we'll try to fix it next time around. Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1. Where to get more information about cairo ========================================= The primary source of information about cairo is: http://cairographics.org/ The latest releases of cairo can be found at: http://cairographics.org/releases Snapshots of in-development versions of cairo: http://cairographics.org/snapshots The programming manual for using cairo: http://cairographics.org/manual Mailing lists for contacting cairo users and developers: http://cairographics.org/lists Answers to some frequently asked questions about cairo: http://cairographics.org/FAQ Summary of every commit from 1.2.6 to 1.4.0 =========================================== Adrian Johnson (38): Fix Type 1 embedding in PDF Correct the value of /LastChar in the PDF Type 1 font dictionary. Improve error checking in TrueType subsetting Generate Type 1 fonts from glyph outlines cairo-type1-fallback.c: return correct error status Correct an unsigned to signed conversion problem in truetype subsetting bbox Type 1 fallback fonts - use binary encoding in PDF files Type1 subsetting: Don't put .notdef in Encoding when there are 256 glyphs PS: Add cairo version to PS header PDF: Add cairo version to document info dictionary type1 fallback: ensure all functions perform correct status checking PS: Use xshow/yshow/xyshow for strings of glyphs Add OpenType/CFF Subsetting PDF: Use Td where possible instead of Tm for positioning glyphs Add cairo-deflate-stream.c PDF: Compress the content stream TrueType Subsetting: Add comment TrueType Subsetting: Whitespace change TrueType: Include notdef glyph in the subset PDF: Add Encoding dictionary to TrueType fonts PDF: Fix TrueType font metrics PS: Correct the TrueType Encoding and Charstrings PDF: Correct the y value of Td in show_glyphs PDF: Make text selection and extraction work PDF: Another fix for TrueType metrics PDF: Fix Type3 font metrics to make text selection work PDF: Compress Type3 fonts Output-stream: Omit the minus sign from negative zero PDF: Remove dead code CFF: Fix Visual C++ compile problem output-stream: coding style fix PDF: Add missing character code to Differences array TrueType: Add post table and 3,0 cmap encoding TrueType: fix bug #9998 - build error with gcc 2.95 PDF/PS: Don't embed multiple copies of the same font Win32: Fix _cairo_win32_scaled_font_map_glyphs_to_unicode return type Subsetting: Add check for malloc() error PDF: Ensure ToUnicode CMap name is unique Alfred Peng (2): Add Sun Pro C definition of pixman_private Use pixman_private consistently as prefix not suffix Alp Toker (1): Fix various code/comment typos Behdad Esfahbod (179): [test] Use $(srcdir) to find valgrind supressions [test] Use FcFreeTypeQuery [configure] Invalidate cached warning flags if list of flags changes [Makefile] Fix typo [Makefile] Add perf to DIST_SUBDIRS Update [perf/Makefile] Unset DIST_SUBDIRS [test/Makefile] Unset DIST_SUBDIRS Add scripts to sanity check the shared object for exported and PLT symbols Add [x86-64] check-plt.sh: match on JU?MP_SLO as on x86-64 "SLOT" is truncated configure.in: Require automake version 1.9 here too cairo_show_glphs: Mark glyphs argument as const. [ROADMAP] Check RGB16_565 deprecated [ROADMAP] Add polling API check-headers.sh: Add a test for cairo_public decorators in public headers cairo-pdf.h: Add missing cairo_public decorators cairo-directfb.h: Add missing cairo_public decorators cairo-nquartz.h: Add missing cairo_public decorators. check-def.sh: Only allow _cairo_.*_test_.* symbols, not all _cairo.* ones [configure] Print out whether SVG and PDF surfaces can be tested [check-headers.sh] Don't use '\>' regexp syntax [Makefile.am] Pass srcdir down to the tests [slim] hide cairo_pattern_status() #8551 [slim] hide cairo_glitz_surface_create() (#8551) [configure.in] Require pkg-config 0.19. (#8686) [test] Make sure tests are not relinked unnecessarily [perf] Remove SUBDIRS=../boilerplate and add explicit dependencies Make autogen.sh extract required versions from configure.in Require automake 1.7 again [PDF] Set CTM before path construction [autogen.sh] Make sed script portable [Makefile.am] Minor fixes in release-publish output [Makefile.am] Pass tag message to git-tag in release-publish [configure] Err if a suitable pkg-config is not found Fix typo. Add notes for the 1.2.6 release. [SVG] Define enum _cairo_svg_version. [PS] Eliminate compiler warnings about unoptimizable loops [PS] Rename n_glyphs to num_glyphs_unsigned [SVG] Fix compiler warning [test|perf|boilerplate/Makefile.am] Add -I$(top_builddir)/src to INCLUDES [configure] Remove the pkg-config minimum version requirement [.gitignore] Add big-trap [test] Break the "make clean" target into serveral rm calls [docs] Document various CAIRO_VERSION_* macros [doc/public/Makefile.am] Move the list of private headers generatable [docs] Hook various new API into cairo-sections.txt [docs] Document CAIRO_VERSION_STRING. [doc] Minor wording improvement. [pixman] Remove unused slim_internal.h [slim] Define slim macros to dummy prototypes for non-gcc compilers (#9150) [docs] Generate index of new symbols in 1.4 [docs] Update templates [FreeType] Do not return large structs from functions [FreeType] Remove "UNSUPPORTED" show_glyphs stub and NULL its entry Add/remove const to cairo_glyph_t* arguments consistently [cairoint] Define CAIRO_STACK_BUFFER_SIZE (defaults to 2kb) [cairo-gstate] Use a local buffer on the stack for small glyph operations Cache rounded glyph advance values [Xlib] Rewrite an optimized cairo_xlib_show_glyphs() [pdiff] Fix compiler warnings, that were causing crashes [pdiff] Use CAIRO_CFLAGS, to make sure warnings are enabled [cairo-gstate] Don't bypass glyph transformation if font_matrix has translation (#9365) [test] Fix typo in test comment [test] Add ft-text-vertical-layout-type3-ps-argb32-ref.png [configure] Use AC_C_INLINE to correctly define inline [pdiff] Don't use float math functions if not using gcc with C99 [pdiff] Define _GNU_SOURCE to get correct symbols out of <math.h> [PS] Fix typo in comment emitted for Type1 fallback font subsets [type1-subset] Return UNSUPPORTED for vertical fonts [tests/ft-text-vertical-layout-type3] Remove comment that this emits Type3 font [test] Fix typo in test comment, again [cairo-scaled-font] Skip invisible glyphs (like space) in glyph_extents() (#9422) Don't call into backends if num_glyphs is zero (#5177) [test] Add new test text-zero-len (#5177) In _cairo_scaled_font_text_to_glyphs, bail if text is zero-length (#5177) [src/Makefile.am] Don't remove cairo-features.h in "make clean" Spell check the docs [cairo-type1-subset] Do not use an array of pointers, to reduce .data size [TODO] Move some items from ROADMAP, and some new ones, into TODO PDF: Fix approximate diagonal in recent commit [pixman/src/fbmmx.c] Hide "dereferencing type-punned pointer" warnings [configure.in] Use AC_MSG_RESULT in PKG_CHECK_MODULES's second branch [pixman/src/fbmmx.c] Add comment around M64 [configure] Improve win32 detection [test/Makefile.am] Document why svg2png and pdf2png use LDADD [win32] Make win32-surface compile without win32-font [test] Add test case for bug #7965 to the get-path-extents test [test] Remove ft-text-vertical-layout-type1 from XFAIL [PS] Fix rotated image pattern emission by correcting setting the bbox [test] Remove text-rotate test from XFAIL as the bugs are fixed now [test] Fix syntax typo in text-rotate [Makefile.am] Include boilerplate/ in SUBDIRS [FreeType] Truely return unhinted advance width if metrics hinting is off [xlib/xcb] Check for same_screen in is_compatible [test] Add ref image for extend-reflect [cairo-surface] Do not err on CAIRO_EXTEND_PAD and CAIRO_EXTEND_REFLECT [PS] Update surface_pattern_supported() from PDF Support CAIRO_EXTEND_REFLECT on surface patterns [cairo-pattern] Fall back on cairo_surface_create_similar in _cairo_pattern_acquire_surface_for_surface [cairo-pattern] Correctly delegate device_transform so tests pass again [SVG] Use _cairo_pattern_acquire_surface instead of _cairo_surface_acquire_source_image [surface] Copy device_transform_inverse in _cairo_surface_clone_similar [test] Increase size of extend-reflect test to see that pattern repeats [PS/PDF] Accept CAIRO_EXTEND_REFLECT surface patterns natively [test] Update surface-pattern test to include transformations [test] Remove non-existing test extend-pad [PS] Fix surface patterns with transforms [test] Add a new, XFAIL, extend-pad test [TODO] Add various TODO items [SVG] Rename a local variable for clarity [SVG] Fix warnings [TODO] More TODO items [PS] Add note about possible need for fix. [Makefile.am] Remove ChangeLog.cache-* in distclean [test] Add tests that show xstep/ystep failures in PS/PDF backends [PS/PDF] Fix xstep/ystep values for CAIRO_EXTEND_NONE [test] Add ref images for new tests [cairo.h] Reorder function prototypes a bit for clarity [cairo.c] Reorder some function implementations for clarity [quartz] Remove comment syntax that is recognized by gtkdoc from regular comments Implement cairo_get_scaled_font() Slim-hidden cairo_scale() [doc] Add new APIs to cairo-sections.txt [paginated] Automatically issue a final cairo_show_page() [paginated] Also do an automatic show page if nothing ever drawn [boilerplate/test-paginated] Issue a show_page before writing buffer Revert the solid-pattern cache [TODO] Add/remove items [RELEASING] Add notifying desktop-devel-list [paginated] Also increase page number in copy_page [TODO] Add cairo_surface_copy_page() [xlib] Drop XrmFinalize() stuff. That didn't ever exist in any public X server [test] Plug a leak in the test suite [test] Add leak-revealing path to rectilinear-stroke Fix leak in rectilinear stroking code [test] Add more valgrind suppressions [boilerplate] Add correct dependency on libcairo.la [test] Move .la dependencies around [PS/PDF] Mark CAIRO_EXTEND_PAD for surface patterns as natively supported [test] Support passing extra valgrind flags [NEWS] Fix typos [doc] Update list of header files to ignore [doc] Some documentation love Beautify cairo.h [doc] Docuemnt all symbols but cairo_filter_t and cairo_operator_t [doc] Update templates [NEWS] Add note about documentation improvements [test] Update list of refrerence images [ChangeLog.mk] Adapt to latest git-describe output format [Makefile.am] Check for ChangeLog sanity in release-publish [test] Include romedalen.png in dist, oops [RELEASING] Add note about ChangeLog sanity [configure.in] Increase version to 1.3.16 in preparation for release [configure.in] Increase version to 1.3.17 post-release [RELEASING] Fix git-tag invocation [RELEASING] Reorder pushing tag and commits [RELEASING] Note that two versions should be added to bugzilla [RELEASING] Update announcement mail instructions [Makefile.am] Remove releasing instructions that are in RELEASING already [Makefile.am] --enable-test-surfaces in distcheck [ROADMAP] Remove 1.3.14 items, add 1.4.2 ones [SVG] Cast -1 values to unsigned to indicate we really did mean to type them [WIN32] Remove unused mutex cairo_toy_font_face_hash_table_mutex [WIN32] Make cairo_ft_unscaled_font_map_mutex initialization conditional of ft [OS2] Remove unused mutex cairo_toy_font_face_hash_table_mutex [OS2] Add mutex initializer for cairo_font_face_mutex [beos] Update mutex initializers Rename all mutex variables to start with an underscore [test] In the bitmap-font test, break cairo_text_path() call into two Make cairo_text_path() set current point correctly Uniform object handling in _reference(), _destroy(), and _get_reference_count() In cairo_text_path(), bail out if zero glyphs In cairo_append_path(), allow excess path_data elements [quartz] Make utility functions static [test] Remove unused variable [test] Remove some ref images from random-intersections [test] Modify extend-reflect to need a smaller reference image Benjamin Otte (3): boilerplate: Fix compilation for glitz. perf: Add yield and fix double comparison perf: Make cairo_perf_timer structure private. Make timer functions void. Brian Ewins (22): [ATSUI] Support disabling antialiased text [ATSUI] Round glyph locations to nearest pixel [ATSUI] Use screen metrics instead of ideal metrics to compute glyph extents [ATSUI] Compute glyph extents from the bounding boxes of their paths (#9350) [test/text-rotate] Use the same text for measuring and printing [ATSUI] Scale glyphs using _cairo_matrix_compute_scale_factor (#9350) [perf/cairo-perf-diff] Pass CAIRO_AUTOGEN_OPTIONS to autogen. [ATSUI] Select Bitstream Vera and CSS font families reliably. [ATSUI] correct the rotation of glyph paths. (#9378) [ATSUI] Refactor code for creating CGBitmapContexts from cairo surfaces. [ATSUI] [1/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#9467) [ATSUI] [2/2] Implement CAIRO_SCALED_GLYPH_INFO_SURFACE support.(#9467) [test] Test handling of out-of-range glyph indexes. (#9530) [ATSUI] Handle deleted glyphs correctly. (#9530) [ATSUI] out-of-range glyphs should be treated as deleted. (#9530) [ATSUI] Some glyph operations cannot be 'unsupported'. (#9530) Unreleased lock typo in cairo-scaled-font.c [ATSUI] scale fonts using font size not font matrix [ATSUI] implement load_truetype_table [configure.in] --enable-quartz should require atsui and no xlib [quartz,atsui] separate the quartz surface and atsui font backend [quartz] remove unnecessary flushes Carl Worth (316): Split libcairotest files out from test/ and into boilerplate/ test: Add link to test log file in HTML output Add boilerplate/README explaining its purpose Separate the sharable stuff out of cairo-test.c into cairo-boilerplate.c boilerplate: Remove custom read/write-png code in favor of using cairo surfaces Move test-specific stuff out of boilerplate/ and back into test/ test: Ignore single-bit errors for SVG backend. perf: Add initial skeleton of performance monitoring suite Require librsvg >= 2.14.0 to test SVG backend boilerplate: Fix missing include of config.h which was preventing many backends from being tested perf: Don't measure meta-surface-backed surface types. Initial hookup of Vlad's timer/alarm code perf: Remove unused util.c perf: Collapse timing.[ch] down into cairo-perf.[ch] perf: Don't require a separate counter from the timer for perf loops. perf: More simplification of PERF_LOOP macros. perf: Rename timer-alarm files to cairo-perf-timer perf: More consistency improvements for names. perf: Drop separate setup function from each test case. Make perf interface return a rate. Start print target and test names. perf: Fix typo in backend blackballing so that image tests now run perf: Add indication of content to output perf: Run for multiple iterations and print std. deviation perf: Switch from alarm to setitimer for more fine-grained control of timers Two big improvements to bring the std. deviation down to where we want it. perf: Add README file explaining how to add a new test perf/README: Fix typo bug 8104: Eliminate unused variables. Replicate assert statement to identify branch of interest. pixman: Add pixman_private decorations to hide pixman symbols from public interface Add many missing slim_hidden calls to bypass PLT entries for local use of public functions slim_hidden_proto: Move smeicolon from definition to use for consistency and legibility RELEASING: Add note on checking for local symbol PLT entries. Move target tolerance to cairo_test_target structure (should let single-pixel SVG errors pass) perf: Remove unused alarm functions perf: Fold cairo-perf-timer.h into cairo-perf.h perf: Rename functions in line with cairo's naming guidelines perf: Report times not rates. Interface in integers not doubles. perf: Move sorting and discarding outside of compute_stats. Adjust discard to slowest 15% only. perf-paint: Spend more iterations on smaller sizes to balance testing. perf/README: Update due to cairo_perf_timer API changes Prefer CPU performance counters (if available) over gettimeofday. perf: Fix cairo_perf_ticks_per_second to avoid wraparound perf: Handle 32-bit wraparound of performance counter perf: Allow CAIRO_TEST_TARGET to limit targets tested. perf: Add tessellate test case (in -16, -64, and -256 varieties) autogen.sh: Require automake version 1.9 test: Report details errors when image output files cannot be found. Make _cairo_output_stream_destroy return the stream's status as a last gasp. Use new return value from _cairo_output_stream_destroy Check status value of output_stream object at time of destroy Remove font->status from cairo_type1_font_t cairo_type1_font_create: Fix missing NO_MEMORY check and cleanup style. cairo-type1-fallback.c: Regularize some whitespace. Add _cairo_array_size to allow querying the allocated size type1: Enforce pre-allocation usage and fail-proof behavior of charstring_encode functions Fix bitmap-font test failure by not generating a type1 font for a bitmap font. boilerplate: Rename cairo_test_target_t to cairo_boilerplate_target_t Use unsigned consistently to avoid compiler warning. test/bitmap-font: Fix arguments to FcFreeTypeQuery to avoid warnings. boilerplate: Allow targets to distinguish between test and perf. boilerplate-xlib: New perf-specific surface creation for xlib backend. perf: Don't skip COLOR tests perf: Make xlib testing wait for the X server to finish rendering. Deprecated CAIRO_FORMAT_RGB16_565. Add cairo-deprecated.h . Move the REPLACED/DEPRECATED_BY macros from cairo.h to cairo-deprecated.h Fix typo in error message (enhacement -> enhancement) Add missing pixman_private to _FbOnes when a function. Add test case from bug #8379 demonstrating infinite loop during round join Add assert statement so the infinite-join test simply exits rather than looping infinitely. ROADMAP: Add infinite-join bug (#8379) to the list for 1.4 ROADMAP: Add a couple of URLs for user-font API discussion Fix cairo_copy_path and cairo_copy_path_flat to propagate errors. Rename test from stale path-data name to copy-path perf: Rework the suite to allow multiple performance tests to be defined in one file. Fix typo in documentation of cairo_in_fill (thanks to Jonathan Watt) and clarify a bit. tmpl: obnoxious churn Use consistent wording to document cairo_in_fill, cairo_in_stroke, cairo_fill_extents, and cairo_stroke_extents. Fix Makefile bug preventing 'make doc' from succeeding Rename docs-publish target to doc-publish in order to be consistent with the doc target. Fix dependency of 'make doc' so that necessary header files are built first. Add documentation for cairo_rectangle_list_destroy Add missing 'Since: 1.4' tags to documentation of 'clip getter' functions. perf/paint: Make all sizes use a consistent number of iterations perf: Move the per-size loop from cairo_perf_run to main perf: Make cairo_t* available to perf functions perf/paint: Dramatically simplify now that we don't need one callback per run. perf/paint: Use loops for sources and operators rather than open coding. perf/paint: Test image surface as well as similar surface sources Fix cairo_image_surface_create to report INVALID_FORMAT errors. Cast to squelch warning message Add new _cairo_pattern_create_for_status so that patterns properly propagate errors. Rename the create_for_status pattern to create_in_error. Remove unused variable perf: Move iteration over sources and operators from paint to new cairo-perf-cover perf: Add stroke and fill tests Shorten test names in output (drop unneeded _source and _surface) perf: Add linear and radial gradients to the coverage perf: Bail if cairo_status returns non-success at the end of a test. Fix typo that was resulting in device glyph_extents of INT16_MAX in some cases. perf: Add text test perf: Add subimage_copy test to demonstrate performance bug found by monty perf: Do backend synchronization in cairo_perf_timer_start as well as cairo_perf_timer_stop perf: Rename finalize to synchronize as it is used in both start() and stop() now Fix typo of , instead of || which was causing a test to be ignored perf: Make iterations adaptive (bailing as soon as std. deviation is <= 3% for 5 consecutive iterations Rename wait_for_rendering to syncrhonize Bug #7497: Change _cairo_color_compute_shorts to not rely on any particular floating-point epsilon value. perf: Change minimum size of paint test to 256 cairo-perf: Remove wasted whitespace in output. Squelch wanring. perf: Print ticks as well as ms in output. Add cairo-perf-diff program for comparing two cairo-perf reports. test/infinite-join: Modify to draw something visible, and make the output a more reasonable size. Fix infinite-join test case (bug #8379) Merge branch '8379' into cairo Add neglected reference images for infinite-join test Use zero-size change bar for a speedup/slowdown of 1.0 test: Add clip-push-group to demonstrate crash in cairo_push_group clip-push-group: Adjust test slightly to ensure mask-based clip is not anchored at the origin Fix bug in _cairo_clip_init_deep_copy (fixes clip-push-group crash) test: Update reference images due to previous change to _cairo_color_compute_shorts 8711: Fix transformed source surface patterns with xlib backend. Fix repeating source surface patterns with xlib backend. Add new paint-repeat test test/paint-repeat: Use offset larger than source surface for better stress testing Fix offset/extent bug in ps output for repeating source surface patterns Fix typo Add new cairo-perf-diff for finding the performance difference between any 2 revisions. Make xlib and xcb backends tolerant of single-bit errors in the test suite output. cairo-perf-diff: Simplify git usage and just run cairo-perf that gets built with cairo revision cairo-perf: Change outlier elimination and report minimum times. Remove typo (mean vs median) Increment CAIRO_VERSION to 1.3.1 now that a 1.2.6 release exists cairo-perf-diff: Fix to still function if run from the top-level directory containing .git cairo-perf-diff: Build and run latest cairo-perf program rather than whatever was in the old checkout Don't rely on NQUARTZ or OS2 surface types unless they exist. cairo-perf-diff: Use two-part hash to avoid stale data when perf suite changes. Add zrusin-another test cases (tessellate and fill). cairo-perf: Add command line options for test cases to run, listing tests, and new raw mode. test/Makefile.am: Fix typo in EXTRA_DIST that was breaking distcheck Rewrite _cairo_matrix_transform_bounding_box to actually accept a box not a rectangle boilerplate: Add xrealloc function perf: Move statistics code into new cairo-stats.h for sharing cairo-perf: Print ticks_per_ms value in raw mode so raw analysis tools can report times cairo-perf-diff-files: Add support for diffing "raw" files from "cairo-perf -r" perf: Eliminate CAIRO_STATS_MIN_VALID_SAMPLES perf/Makefile.am: Add missing zrusin-another.h file to list perf: Add world-map performance test case. Fix broken size calculation for xrealloc cairo-perf-diff: Allow incremental refinement of performance results cairo-perf-diff: Separate old and new build directories cairo-perf-diff: Use rsync instead of cp to avoid some unnecessary rebuilding cairo-perf-diff: rsync only git-managed files from boilerplate/perf Add a status field to cairo_traps_t to enable less error checking Rewrite tessellate_rectangle as tessellate_convex_quad to make it more useful Make _cairo_stroker_add_sub_edge use tessellate_convex_quad rather than tessellate_polygon Make miter join code use tessellate_convex_quad rather than tessellate_polygon cairo-perf-diff: Run git-ls-tree from the correct directory Remove non-existent reference images from Makefile to avoid breaking distcheck target Fix get-clip test for surfaces not implementing set_clip_region Add missing pattern-getters-ref.png to Makefile to avoid breaking distcheck target NEWS: Add notes for 1.3.2 snapshot Update cairo version and libtool version for 1.3.2 snapshot Increment cairo version to 1.3.3 after 1.3.2 snapshot ROADMAP: Set cairo 1.4 to early January for sake of Gnome 2.18 cairo-perf: When iteration count is given on command-line, never execute fewer perf: Add box_outline test case. Add const qualifier to cairo_path_t* parameter of cairo_append_path Require librsvg 2.15.0 (was 2.14.0) for testing of SVG backend. test/clip-operator: Use round to pass only integers to cairo_show_glyphs test: Use round to pass only integers to cairo_show_glyphs (in 3 more tests) give the big-trap test the XFAIL treatment. Add skip list implementation (many thanks to Keith Packard) Add new tessellator (unused) in cairo-bentley-ottmann.c Adapt new tessellator to match the interface provided by the old tessellator. Switch from old tessellator to new tessellator Make event_queue_insert ignore duplicate intersection events (not duplicate start/stop events) Add some missing cairo_private decorators Add Daniel Amelang and Joonas Pihlaja to the AUTHORS file NEWS: Add notes for 1.3.4 snapshot Increment cairo version to 1.3.4 Bump version to 1.3.5 after making 1.3.4 snapshot RELEASING: Fix typo Add an initial BIBLIOGRAPHY for cairo Add perceptualdiff program totest/pdiff. Use uint32_t instead of the non-standard uint32 Remove all libtiff-related code by #ifdef Hook up Makefiles for perceptualdiff. pdiff: Add missing newlins at end of files. Add a textbook recommendation to the bibliography BIBLIOGRAPHY: Add Joseph O'Rourke's book as recommended by Rafael Villar Burke ROADMAP: Add _cairo_lround bug for 1.3.6. Note some completed items for 1.4.0 ROADMAP: Note that the Banker's rounding bug is fixed Fix 'make distcheck' by mentioning test/pdiff in DIST_SUBDIRS NEWS: Add notes for 1.3.6 snapshot Increment cairo version to 1.3.6 (and libtool versioning to 12:1:10) Bump version to 1.3.7 after making 1.3.6 snapshot test: Simplify buffer_diff by handling device offset in advance pdiff: Factor out a comparison function that doesn't read the 'args' structure pdiff: Teach pdiff code to accept cairo image surfaces test: Rework buffer_diff interface as new compare_surfaces pdiff: Compile pdiff algorithm as a libtool convenience library pdiff: Fix line endings pdiff: Re-indent all code pdiff: Delete all trailing whitespace. pdiff: Convert C++-style comments to good old-fashioned C-style comments pdiff: Rewrite Laplacian pyramid code from C++ to C pdiff: Move function that depends on command-line argument class to same file as main pdiff: Rip out unused ImgDiff code, (dropping -output option) pdiff: Rewrite main program to use cairo-based pdiff_compare interface pdiff: Remove old, unused Yee_Compare interface pdiff: Add .gitignore for perceptualdiff binary pdiff: Remove intermingled statements and declarations pdiff: Remove hideous C++ reference passing pdiff: Remove RGBAImage classes now that we're just using cairo image surfaces pdiff: Remove all uses of std::string pdiff: Fix return value from perceptualdiff program pdiff: Replace CompareArgs class with args_t struct pdiff: Rename everything to .c and fix an last littele C++ isms. pdiff: Remove casts since we're out of the land of X++ where void* is stupidly broken Hook up pdiff to the test suite now that its written in C test: Remove svg-specific reference images no longer needed thanks to pdiff test: Remove ps-specific reference images no longer needed thanks to pdiff Fix 'make distcheck' after recent file removals Fix a couple of more stale images holding up 'make distcheck' NEWS: Add notes for cairo 1.3.8 snapshot Increment cairo version to 1.3.8 (and libtool versioning to 12:2:10) Bump cairo version to 1.3.9 after making 1.3.8 snapshot Merge branch 'master' of git.cairographics.org:/git/cairo into cairo test/.gitignore: Ignore binarries for some recently added tests Rename cairo-path.c to cairo-path-fixed.c Rename cairo-path-data.c to cairo-path.c (and similar) Rename remaining cairo_path_data to cairo_path in function names, etc. Add new rectilinear-stroke test Reimplement path.has_current point as a 1-bit bitfield Put ft-text-vertical-layout-type1 back on the XFAIL list Add optimization for rectilinear stroke Ignore another test case binary Annoying template churn NEWS: Add notes for 1.3.10 snapshot Increment cairo version to 1.3.10 (and libtool versioning to 12:3:10) Bump version to 1.3.11 after making 1.3.10 snapshot Add long-lines perf case Restrict _clip_and_composite_trapezoids to destination extents Add unaligned_clip perf case courtesy of Jeff Muizelaar cairo-path-fixed: Don't add redundant, succesive MOVE_TO operations to the path Fix cairo_get_dash and cairo_get_dash_count APIs Add new scale-down-source-surface-paint test PDF: Fix CAIRO_EXTEND_NONE for source surface patterns Fix two misspellings in a recent comment. ROADMAP: Add 3 bugs to fix before the next snapshot .gitignore: Add text-glyph-range cairo-wideint: Fix to eliminate comparison of signed and unsigned values NEWS: Add notes for 1.3.12 snapshot configure.in: Increment cairo version to 1.3.12 configure.in: Increment version to 1.3.13 after making the 1.3.12 snapshot doc tmpl churn Add rotate-image-surface-paint test case Fix _cairo_pattern_acquire_surface_for_surface to not clone outside surface extents Add two tests of cairo_surface_finish to test/nil-surface.c Fix crashes in cairo_surface_finish for NULL or nil Don't finish a finished surface in cairo_surface_destroy ROADMAP: Add bug about broken cairo_show_text on win32 ROADMAP: Note that linear gradient bug is fixed. Don't hold mutex over backend->scaled_font_create Avoid holding lock when calling _cairo_scaled_font_fini Move scaled font holdovers magic from reference to create to fix race condition Add scaled_font->mutex to allow locking for all subordinate objects Remove half-leftover debugging code from previous commit Remove dead cff_dict_remove function ROADMAP: Note that the 8801 locking bug is fixed. ROADMAP: Drop 1.3.6 which is already in the past and note 8379 fix and pixman gradient improvements test/pthread-show-text: Increease iterations to expose locking bug Expand font_map locking to cover call to backend->scaled_font_create Add missing locking to _cairo_scaled_font_text_to_glyphs Add missing _cairo_ft_unscaled_font_unlock_face to _cairo_ft_scaled_font_create Avoid public cairo_ft_scaled_font_lock_face for internal use Add mutex to implement _cairo_ft_unscaled_font_lock_face and _cairo_ft_unscaled_font_unlock_face Increase pthread-show-text thread count and add cairo_select_font_face to expose more bugs. Add locking to cairo_font_face_reference/destroy Rename cairo_toy_font_face_hash_table_mutex to cairo_font_face_mutex ROADMAP: Note that text spacing issues for win32 are fixed Add missing call to set_scale of unscaled_font in scaled_glyph init Fix cairo_ft_unscaled_font_t to have a lock_count again not an is_locked Boolean Mark test/rotate-image-surface-paint as XFAIL NEWS: Add notes for the 1.3.14 snapshot Increment cairo version to 1.3.14 (and libtool versioning to 12:4:10) Bump cairo version to 1.3.15 after making the 1.3.14 snapshot Add radial-gradient test case Rename radial gradient inner/outer to c1/c2 Fix implementation of radial gradients for inner radius != 0 Fix gradient walker to not reset needlessly SVG: Support CAIRO_EXTEND_NONE for radial gradients. Merge branch 'radial-gradient-fixes' into cairo Implement CAIRO_MUTEX_INIT with memcpy instead of pthread_mutex_init Cast away a const to quiet a compiler warning. Cast -1 values to unsigned to quiet the compiler. Update documentation for cairo_get_scaled_font and cairo_get_font_face Don't crash if backend->create_similar returns a nil surface Fix yet another backend (quartz) for the gradient renaming Add test of cairo_get_* after INVALID_RESTORE to nil-surface Fix INVALID_RESTORE case to avoid crashes Fix leak in pdiff lpyramid Add a couple of missing test cases to .gitignore Add even more XrmGetFileDatabase leaks to the valgrind suppressions file Augment cairo_test_init with cairo_test_fini to avoid leak Fix leak in pattern-getters test (missing cairo_pattern_destroy) More tightening of test cleanup to avoid valgrind complaints. Fix leak of an output stream in cairo_type1_font_destroy Add notes for 1.3.16 Optimize filling of a path that is a single device-axis-aligned rectangle. Mark 5 tests that are currently failing as XFAIL (that is, not to be fixed before 1.4) Update AUTHORS with 47 (!) new authors since 1.0 NEWS: Add release notes for 1.4.0 release Clarify that extra elements in cairo_path_data is only available in cairo >= 1.4 Increment cairo version to 1.4.0 NEWS: Note the x86 nature of the quoted performance results Christian Biesinger (11): fix comment: pixman_private needs to be before the type of a variable [win32] Add missing void Fix win32 build when pthreads are available Add missing ) in comment Actually return a value from _cairo_type1_fallback_init_* Fix prototype warning by including cairo-test-directfb.h Don't return an uninitialized value if _cairo_output_stream_create fails [beos] Fix build error [win32] Add parentheses around & operator [beos] make tests compile again [beos] Allow a pixel error of 1 for BeOS tests Christopher (Monty) Montgomery (1): Add extents to clone_similar (fixing subimage_copy performance bug) Dan Amelang (20): Add new perf test "pattern_create_radial" Add autoconf macro AX_C_FLOAT_WORDS_BIGENDIAN Change _cairo_fixed_from_double to use the "magic number" technique Add _cairo_matrix_is_translation Refactor _cairo_matrix_is_integer_translation Add and incorporate _cairo_gstate_transform_glyphs_to_backend Optimize _cairo_matrix_to_pixman_matrix for the common case of an identity matrix Change _cairo_matrix_to_pixman_matrix to use a pixman_transform_t as the template, thus avoiding a forced memcpy Add configure option --disable-some-floating-point Purge cairo-test of all calls to round() [perf] Provide watered-down implementations of getline and strndup for [configure] Add -a option to grep calls in AX_C_FLOAT_WORDS_BIGENDIAN [configure] Fix --disable-some-floating-point to force value to 'no' if none given Change _cairo_lround to use arithmetic rounding Change _cairo_lround to correctly handle edge cases previously missed Don't use the GNU-only grep option "-a" Use the "-" option (instead of "-a") when calling "strings" Add "rectangles" perf test Fix Win32 text spacing problem Update Win32 makefiles Dan Williams (1): Implement pixman fbCompositeSrc_8888x0565mmx Daniel Amelang (2): Add _cairo_lround for much faster rounding Replace existing rounding code with _cairo_lround Dave Yeo (1): [test] Fix build on Win32 David Turner (2): Optimize gradient computations fixing gradient repeat mode computations Emmanuel Pacaud (8): Add SVGPrint support. Use SVG multipage capability. test/pixman-rotate.c: Don't issue a show_page, it's already done in cairo-test.c Merge branch 'svgprint' SVG: plug a memory leak Set overflow to visible for symbols. Remove broken special-casing of radial gradient fx,fy under CAIRO_EXTEND_NONE Use the offset attribute to improve cairo-svg handling of EXTEND_REPEAT and EXTEND_REFLECT Eugeniy Meshcheryakov (7): [PDF-CFF] Fix bad /LastChar value for CFF fonts in PDF backend CFF Subsetting: Add charset data to embedded font TrueType Subsetting : Correct the checksum calculation TrueType Subsetting: Correct the checksum calculation of 'head' table TrueType Subsetting: Sort table directory [cairo-surface] Use a macro definition for all nil surfaces [PS/PDF/SVG] Return a write_error nil surface on write errors Frederic Crozat (1): [check-defs.sh] Fix make check for OPD platforms Hans Breuer (1): Fix mutex initialization for win32 (missing cairo_font_face_mutex) Ian Osgood (12): Update XCB names for XCB 1.0 RC2 release. Replace static fn with xcb-renderutil library fn. XCB: Remove unnecessary differences with the Xlib surface. Move XCB sections next to XLIB sections. XCB: glyph rendering support XCB: find_standard_format using wrong enumeration. Merge branch 'master' of git+ssh://iano git cairographics org/git/cairo XCB: implement subimage_copy fix XCB: bring composite, trapezoids up-to-date with Xlib XCB: make create_internal match Xlib bug: wrong xcb_copy_area param order don't squish tiny images in test/index.html Jamey Sharp (9): XCB: add slim_hidden_proto and slim_hidden_def for cairo_xcb_surface_create_with_xrender_format. XCB: update cairo-boilerplate to test for an error connection rather than NULL. Update .gitignore in boilerplate and test. [slim] hide cairo_version_string() XCB: Add the have_clip_rects field to cairo_xcb_surface, to match the Xlib surface. XCB: Move slim_hidden_def to cairo-xcb-surface.c, not cairo-xcb-xrender.h. Add clip-push-group to .gitignore. perf: cairo-perf-diff-files.c should generate cairo-perf-diff-files XCB/perf: implement boilerplate_xcb_synchronize for fair performance tests. Jeff Muizelaar (7): Add two new test cases to degenerate-path test Add a new dashing test Add a comment about the point choice when capping degenerate paths Rename has_sub_path to has_initial_sub_path Fix several issues with dashed stroking code, particularly 'leaky-dash' Rename tmp to step_length because that is what it actually is. Use a closed interval when eliminating outliers from performance measurements Jeff Smith (5): Change type of cairo_stroker_t's dash_on from int to cairo_bool_t Modify how _cairo_stroker_add_caps handles zero-length sub-paths Minor changes to shorten the stroking code Add or reword several comments in the stroking code Clean up some inconsistent spacing in the stroking code Jinghua Luo (12): glitz: fix a crash in _cairo_glitz_surface_get_image. glitz: fix for clone similar. glitz: fix test case glyph-cache-pressure. glitz: don't go fackback path for bitmap glyphs. glitz: my previous changes in _cairo_glitz_surface_create_similar is glitz: further fix for clone_similar. glitz: fix a memory leak in _cairo_glitz_surface_composite_trapezoids. Glitz: fix a potential use after free bug in _cairo_glitz_surface_old_show_glyphs. glitz: fix all compiler warnings in glitz backend. Glitz: position large glyph correctly. type1-subset: fix error handling. glitz: fix build error. Jonathan Watt (2): revert accidental mode changes in my previous commit Remove WINVER from public header file Joonas Pihlaja (11): A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit remainder. Replace the 128 bit divrem by a 96/64 bit one. Use an LFSR instead of random(). Special cases for skip list comparators. Avoid a skip-list lookup when deactivating edges. Separate start and stop events from intersections (first try.) Tweak comparators. Malloc less using a free list of nodes. Make the skip list check for uniqueness. Sort pointers instead of cairo_bo_events in the tessellator. perf: new-tessellator: Deferred trapezoid generation (first try) Jorn Baayen (1): [cairo-pattern] Cache surface for solid patterns Kalle Vahlman (2): Add --use-ms option to cairo-perf-diff-files [cairoint] Make it compile with libpng disabled Kjartan Maraas (1): Remove unused variables (#7963) Kristian Høgsberg (1): Compute right index when looking up left side bearing. M Joonas Pihlaja (16): cairo-perf-diff-files: Don't segfault reading cooked perf reports. test: tessellator event comparator test case for degenerate edges. test: check if cairo_in_fill() is reporting false positives for empty trapezoids. test: check for tessellator regression from missed stop events tessellator bug fix: fill-degenerate-sort-order tessellator bug fix: fill-missed-stop tessellator bug fix: in-fill-empty-trapezoid tessellator: offset working coordinates to be nonnegative tessellator: input validation and guard bit removal tessellator bug fix: linking fails on x86_64 due to superfluous inline attribute. Change license of tessellator tests to the MIT license. Replace point sampling in the fill-degenerate-sort-order with rendering. Rework the in-fill-empty-trapezoid test to not use the cairo_test() framework. test: random-intersections New performance test case "mosaic" for splines. Make UTF-8 output from cairo-perf-diff-files optional Mathias Hasselmann (1): [test/pdiff] Fix build problem with certain flavors of make Mathieu Lacage (1): bugfix: fix cairo-wideint.c uint64_t usage and const return qualifiers Michael Emmel (6): Fixed directfb test code Fixed test to compile Fixed test to compile Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo Turned off acclerated rectangle drawing in dfb backend Merge branch 'master' of ssh+git://git.cairographics.org/git/cairo Nicholas Miell (2): Make the SLIM macros robust in the face of macro-renamed symbols Fix the AMD64 final link by removing SLIM from pixman Pavel Roskin (1): Clean up _fbOnes() Peter Weilbacher (6): OS/2 backend files OS/2 build changes Add OS/2 backend and its requirement to INSTALL and README, following the example of BeOS. Fix for OS/2 display drivers that cannot handle 32bit output (feed them a 24bit buffer instead). Correct scaled font mutex definitions for OS/2 Oops, correct typo in previous commit Robert O'Callahan (5): Fix _cairo_matrix_transform_bounding_box to return tightness info Fix stroke/fill extents bounding boxes Add clip getters API + tests Remove redundant call to _cairo_surface_get_extents Rename cairo_copy_clip_rectangles to cairo_copy_clip_rectangle_list Soeren Sandmann (1): Add SRC and IN implementations to avoid CompositeGeneral in some cases hit by PDF rendering Soren Sandmann Pedersen (2): Remove left-over assert and some alpha checks from Apply patch from Marco Gritti and Jordan Crouse to correctly detect Stuart Parmenter (1): [win32] correct win32 show_glyphs for non-y-aligned text T Rowley (1): Add linear-gradient-reflect test case U-JONATHAN-X60S\jonathan (2): Fix a couple of character spacing issues on Windows Merge branch 'master' of git://git.cairographics.org/git/cairo Vladimir Vukicevic (40): Add useful pieces from Vladimir's cairo-bench [win32] Make cairo as a win32 static library possible [win32] Misc win32 compilation fixes [win32] win32-specific Makefiles for building with MSVC Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo into cairo-master Improve make-html.pl, add self-contained output format [win32] Fix boilerplate for win32 surfaces to use new _with_dib function Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo into cairo-master Correctly acquire/release mutex in _cairo_scaled_font_map_destroy [win32] Makefile.win32: fix test and add html targets [win32] Makefile.win32: use correct (/MD) runtime library flag everywhere [win32] Set win32 assertion failure handlers for tests to stderr Check for valid path status value before calling _cairo_set_error [win32] Support for DDBs, AlphaBlend fix [nquartz] Initial commit of native quartz surface [win32,perf] Fix cairo-perf-win32 [perf] Change perf output format, report times in ms, add a few paint tests Add win32 output files to gitignore dash and pattern getter functions [nquartz] Return correct values from operation setup function [test] Fix composite-integer-translate-over test [win32] Update pixman MMX code to work with MSVC [win32] clean up win32_surface_composite [win32] implement EXTEND_REPEAT in composite when possible [test] add big-trap test Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo [nquartz] use pattern snapshots, and correctly setup/teardown source [nquartz] add test reference files for nquartz backend Merge branch 'master' of git+ssh://git.cairographics.org/git/cairo [atsui] add function prototype for a public 10.4 function that's [win32] regression with win32 glyph y-offsets (mozbug#365021) [mmx] avoid casts between int32 and __m64 types [quartz] Rename nquartz to quartz [quartz] rename NQUARTZ -> QUARTZ in defines [quartz] rename test override images from nquartz to quartz [quartz] Rename public function parameter from surf -> surface [quartz] Remove (disabled) support for rendering via AGL/CGGL [core] Add user_data and reference count getters to all objects [core] put back REF_COUNT_INVALID to be -1, fix finish [quartz] Bug 3939 - Fix Quartz backend endianness problem
Attachment:
pgp6T8db2xtbS.pgp
Description: PGP signature