[cairo] cairo release 1.12.4 now available

Timothy Bolton ifoundthetao at gmail.com
Fri Oct 5 09:31:38 PDT 2012

Does this take care of the Glyph rendering issues in the SVGs too?  If 
so, you would be my hero for the next 15 minutes.  So serious.

'We who cut mere stones must always be envisioning cathedrals.'
Quarry Worker's Creed

On 10/5/2012 11:27 AM, Chris Wilson wrote:
> A new cairo release 1.12.4 is now available from:
> 	http://cairographics.org/releases/cairo-1.12.4.tar.xz
>      which can be verified with:
> 	http://cairographics.org/releases/cairo-1.12.4.tar.xz.sha1
> 	f4158981ed01e73c94fb8072074b17feee61a68b  cairo-1.12.4.tar.xz
> 	http://cairographics.org/releases/cairo-1.12.4.tar.xz.sha1.asc
> 	(signed by Chris Wilson)
>    Additionally, a git clone of the source tree:
> 	git clone git://git.cairographics.org/git/cairo
>      will include a signed 1.12.4 tag which points to a commit named:
> 	117abd85ac7ff41e484fe0d98f16704ec30abd09
>      which can be verified with:
> 	git verify-tag 1.12.4
>      and can be checked out with a command such as:
> 	git checkout -b build 1.12.4
> Release 1.12.4 (2012-10-05 Chris Wilson <chris at chris-wilson.co.uk>)
> ===================================================================
> More bugs, and more importantly, more fixes. On the cairo-gl side, we
> have refinements to the MSAA compositor which enables hardware
> acceleration of comparitively low-quality antialiasing - which is useful
> in animations and on very high density screens. For cairo-xlib, we have
> finally enabled SHM transport for image transfers to and from the X
> server. A long standing required feature, SHM transport offers a notable
> reduction in rendering latency by reducing the number of copies
> required to upload image data - given hardware and driver support,
> cairo-xlib can now perform zero copy uploads onto the GPU. And as usual
> Adrian Johnson has been very busy fixing many different corner cases in
> cairo-pdf, impoving opacity groups and font subsetting. Last, but not
> least, for cairo-image Søren Sandmann Pedersen added support for
> rendering glyphs to pixman and using that from within cairo. The new
> glyph rendering facility reduces the overhead for setting up the
> compositing operation, improving glyph thoughput for the image backend
> by a factor of about 4. And before he did so, he also fixed up a few
> bugs in the existing glyph rendering code. So many thanks to Andrea
> Canciani, Adrian Johnson, Chuanbo Weng, Dongyeon Kim, Henry Song, Martin
> Robinson, Søren Sandmann Pedersen and Uli Schlachter for their
> contributions, finding and fixing bugs.
> -Chris
> Bug fixes
> ---------
>   Interior boxes were being dropped when amalgamating regions during
>   tesselation.
>   https://bugs.freedesktop.org/show_bug.cgi?id=49446
>   Allow building without gtk-doc installed
>   Invalid edge generation whilst reducing complex polygons.
>   https://bugs.freedesktop.org/show_bug.cgi?id=50852
>   Stroking around tight cusps
>   Use locale correct formats for reading font subsetting and valid
>   buffers.
>   https://bugs.freedesktop.org/show_bug.cgi?id=51443
>   Ensure that the type1 subset includes all the glyph encodings
>   https://bugs.freedesktop.org/show_bug.cgi?id=53040
>   Upload the whole source for a repeating pattern.
>   https://bugs.freedesktop.org/show_bug.cgi?id=51910
>   Fix damage tracking to handle continuation chunks corectly and so
>   prevent crashes on win32.
>   https://bugs.freedesktop.org/show_bug.cgi?id=53384
>   Avoid emitting miter joins for degenerate line segments
>   https://bugzilla.mozilla.org/show_bug.cgi?id=407107
>   Convert the relative path semgents into the backend coordinates
>   and then back again to user coordinates (cairo_copy_path,
>   cairo_append_path)
>   https://bugs.freedesktop.org/show_bug.cgi?id=54732
>   Fix extents computations for a degenerate path consisting only of a
>   move-to
>   https://bugs.freedesktop.org/show_bug.cgi?id=54549
>   Prevent crashing on a degenerate project edge after polygon
>   intersection
>   https://bugs.freedesktop.org/show_bug.cgi?id=54822
> List of all changes since 1.12.2
> --------------------------------
> Adrian Johnson (12):
>        pdf: check if EXTEND_PAD group can be painted with EXTEND_NONE
>        pdf: fix smask gradient bbox
>        ps: check if EXTEND_PAD group can be painted with EXTEND_NONE
>        pdf: merge _emit_recording_surface and _emit_recording_subsurface into the one function
>        pdf: Don't use extents when acquiring a RASTER_SOURCE pattern
>        pdf: fix the offset of padded images
>        cff-subsetting: Ignore charset for non cid fonts
>        cff: convert '.' to locale specific decimal point before using sscanf
>        cff: use correct size for buffer
>        cff: initialise variable to prevent valgrind warning
>        cff subsetting: widths can be floating point
>        type1 subset: ensure encoding includes all glyphs
> Alexandros Frantzis (2):
>        gl: Simplify GL wrap parameter setting code
>        gl: Provide a shader implementation of repeat wrap modes
> Andrea Canciani (15):
>        build: Allow autogen-eration on systems without GTK-doc
>        build: Do not replace existing files
>        png: Implement conversion of CAIRO_FORMAT_RGB30 to string
>        surface: Define private map/unmap functions
>        surface: Make map_to_image return cairo_image_surface_t*
>        surface: Make backend-specific map/unmap functions symmetric
>        surface: Only use non-NULL extents for internal mapping
>        surface: Use the internal map/unmap
>        quartz: Silence warning
>        quartz: Mark surfaces created clear as is_clear
>        quartz: Provide a valid implementation of map_to_image
>        quart-image: Fix compilation
>        xcb: Fix make check
>        quartz: Use the correct transform when replaying recording surfaces
>        test: Add degenerate closed path case to get-path-extents
> Behdad Esfahbod (2):
>        [util/malloc-stats] Use tighter spacing.
>        Fix malloc-stats for newer glibc
> Chris Wilson (129):
>        version: Post release bump to 1.12.3
>        snapshot: Hold a reference to target whilst querying
>        snapshot: Avoid triggering assertion for grabbing the target during destroy
>        Split finish into multiple stages
>        damage: Avoid freeing the NIL error object
>        damage: Prevent accumulating damage to an error object
>        damage: Prevent reducing an error object
>        gl: Reject SOURCE + mask in composite_boxes()
>        test: Fix tighten-bounds reference images
>        spans-compositor: Handle unaligned unbounded boxes
>        spans-compositor: Add tracepoints for debugging
>        traps,spans-compositor: Avoid mistreating unaligned clips as aligned
>        spans: Only fallback for a clipmask if unbounded
>        clip: Apply clip boxes to the clip surface
>        arc: Use user endpoint for final step
>        spans: Debug input paths and polygons
>        stroke: Don't drop clockwise==0 lines
>        image: Tidy lerp8x4
>        win32: Fix return value for cairo_time_get
>        wideint: Fix compilation failure for bare use of uint64_t for !HAVE_UINT64_T
>        test: Fix leak from xcb-snapshort-assert
>        gl: Replace vbo with static allocation and immediate arrays
>        test: Exercise rectangular bo bug
>        bo-rectangular: Emit subsummed boxes for overlapping edges
>        test: Refresh unbounded-operator
>        test/record90: Rotate the reference so that it is wholly visible
>        test: Increase surface size for get-path-extents
>        gl: Use core GL_STENCIL8_DEPTH24 for gl_flavor=desktop
>        image: Propagate errors from clone_subimage
>        surface: Kill imagesurf temporary variable
>        gl: Do no access ctx after release during map-to-image
>        test: Restore bug-seams reference
>        image: Upconvert glyphs through a WHITE source when adding to the glyph mask
>        image: silence make check
>        surface: Eliminate PLT entries for map-to-image
>        gl: Add missing cairo-private to _cairo_gl_composite_with_clip
>        surface: replace map-to-image clone's use of user_data with parent pointer
>        Erradicate internal use of cairo_surface_get_content()
>        Erradicate internal use of cairo_surface_get_type()
>        composite-rectangles,scaled-font: Use accurate extents if the font is broken
>        scaled-font: Take lock around disposing of an empty page upon alloc failure
>        spans-compositor: After polygon intersection the fill rule is always non-zero
>        tor-scan-converter: Always recompute min-height following edge removal
>        polygon-reduce: Reduce broken stopped-edge continuation
>        image: Fix up glyphs compositing
>        gl: Trim the glyph mask to the operation extents
>        test: Exercise bug in joining together spline segments around cusps
>        stroke: Use round-joins near inflection points of splines
>        stroke: Skip inserting a round-join if within tolerance
>        ft: Indentation fixup for _get_bitmap_surface()
>        boilerplate/gl: Round fractional window sizes up
>        test: Add a simple exercise for raster sampling of subpixel geometry
>        test: Add example from bug-51910
>        xlib: If a sample accesses outside of a repeating image, upload it all
>        gl: Add the compile fix that I forgot to add to the previous commit
>        perf/chart: Render a solid bar if the column is too narrow for the gradient
>        gl: Fallback for copy_boxes if src/dst do not belong to the same device
>        trace: Fix propagation of CAIRO_TRACE_OUTDIR to children
>        egl: s/EGL_KHR_surfaceless_opengl/EGL_KHR_surfaceless_context/
>        gl: Remove unused variable
>        xlib: Silence compiler warning
>        gl: Use a wide texture ramp to emulate a linear step function
>        gl: Fudge gradient color generation to handle multiple stops at 0
>        damage: Update tail pointer after allocating new chunk
>        skia: Compile fix for changes to map-to-image
>        image: Temporarily resurrect the old non-pixman glyph compositor
>        xlib: Implement SHM fallbacks and fast upload paths
>        tor22: Add a simple method to quickly compute coverage (with saturation)
>        configure: Restore previous pixman required version of 0.22.0
>        xlib/shm: Fix up the shrinking of the priority queue
>        xcb: Migrate to the common mempool implementation
>        xlib/shm: Propagate the last-request to the synchronous create
>        xlib/shm: Limit use of the impromptu fallback pixmap for uploads
>        xlib/shm: Use an impromptu upload ShmSegment
>        xlib/shm: Clear the similar image surface
>        xlib: Only use CopyArea if the ShmPixmap and destination are the same depth
>        xlib/shm: Avoid using a synchronous ShmCreatePixmap if evading the readback
>        xlib/shm: Wrap the detection of shm with locking
>        xlib/shm: Fix runtime checking of has-shm-pixmaps for !shm case
>        xlib/shm: Mark the ShmPixmap as active following an upload flush
>        xlib: Drop the false optimisation of using a potentially busy shm upload pixmap
>        ft: Only use a specified font filename if its accessible
>        xlib: Move the shm cleanup from CloseDisplay to finish()
>        tests: Add outline-tolerance
>        stroker: Avoid emitting a miter join for across an elided degenerate segment
>        ft: Report FILE_NOT_FOUND if creating a font with a specified nonexistent file
>        cairo-script: Attempt to fallback for unresolved patterns
>        xlib/shm: Use a genuine event rather than an open-ended request
>        xlib/shm: Only check if we are expecting an event
>        xlib/shm: Reduce the frequency at which we emit events
>        xlib/shm: Add missing release of the display after GetImage
>        compositor: Skip invisible strokes
>        stroke: Skip spline evaluation when stroking to a polygon
>        pen: Use bisection to speed up vertex finding
>        stroke: Use new pen vertex range finders
>        stroke: Precompute the line half-width
>        stroke: Convert a very small round-join into a miter
>        stroke: Convert fallback stroker to new pen vertex finder
>        stroke: Compute bounds for fallback stroker (typically dashing)
>        bentley-ottman: Remove a few superfluous status propagation
>        bentley-ottmann: Only check the pairs of coordinates for equality.
>        bentley-ottmann:  hint that the insertion compare function should be inlined
>        bentley-ottmann: Cache the most recent edge colinearity check
>        xlib/shm: Masquerade as an ordinary ShmCompletionEvent
>        default-context: Convert the relative path segments into the backend coordinates
>        path: Update last_move_point after move-to
>        image: Check for an error surface before dereferencing the backend
>        xlib/shm: Explicitly release shm surface if we do not own the pixmap
>        context: Add missing functions to transform between user and backend coordinates
>        path: Convert from backend coordinates back into user coordinates
>        xcb: Always flush the fallback damage to foreign drawables
>        xlib: Fix regression in cairo_xlib_surface_set_drawable()
>        xlib: Explicitly discard the fallback shm pixmap upon user modification
>        xlib: Force the fallback flush before updating the external Drawable
>        xlib: Do not call _cairo_xlib_surface_flush directly
>        xlib: Destroy the fallback damage along with the fallback surface
>        test: Add clip-disjoint-quad
>        polygon-intersect: Exclude non-overlapping clip boxes from consideration
>        spans-compositor: Use the tight clip-boxes for polygon construction
>        composite-rectangles: Update unbounded (clip extents) after reducing clip
>        test: Refresh reference image for clip-disjoint-quad
>        spans-compositor: Remove polygon limits after construction
>        tor: Fudge the edge if it is projected into a point
>        recording: Perform an explicit during snapshot
>        stroke: Remove redundant code for computing culling extents
>        test: Refresh reference images for slight alteration of curves
>        xlib/shm: Discard SHM surfaces upon CloseDisplay
>        win32: Compile fix for mismatched surface types
>        1.12.4 release
> Chuanbo Weng (7):
>        gl: fix the translate value in copy_boxes.
>        gl: Convert CLEAR to DEST_OUT when there's a mask for composite_boxes.
>        gl: Do correct translation and lerp in gl-traps-compositor.
>        gl: Set correct clip rectangle for non-texture destination surfaces
>        gl: Set correct operation extents.
>        gl: Create a new texture surface if the source surface type is gl-window
>        gl: copy_boxes() does not support copying from a non-texture source
> Daniel Stone (1):
>        Fix broken XRender ARGB32 formats
> Dongyeon Kim (1):
>        gl: Set is_clear flag to FALSE after map_to_image
> Henry (Yu) Song (8):
>        gl/msaa: Prevent stroke overlap
>        gl/msaa: Support for texture sources
>        gl/msaa: Support for masking
>        gl/msaa: Add support for unbounded operators
>        gl/msaa: Add ARB multisampling support
>        gl/msaa: Implement paint via masking
>        gl/msaa: Use unsigned short to build the index array
>        gl/msaa: Support the OpenGLES EXT multisampling extension
> Henry (Yu) Song - SISA (2):
>        clip: Transform clip path in _cairo_clip_intersect_clip_path_transformed()
>        quartz: Never acquire recording surfaces
> Henry Song (5):
>        subsurface: Disable subsurface-set-snapshot as it creates a ref cycle
>        gl: generate correct gradient color texture
>        gl: Destroy glyph cache surface during finish
>        gl: translate proper matrix depending up type of gl_operand
>        gl: use absolute value for color difference between gradient stops
> Martin Robinson (9):
>        gl/msaa: Support for non-texture surfaces
>        gl/msaa: Wait to clip until compositing begins
>        gl/msaa: Implement glyph rendering
>        gl/msaa: Lazily flush the context
>        gl/msaa: Improve fallback detection
>        gl: Simplify switching between primitive types
>        gl: Fix compilation failure for flush cleanup.
>        gl: Remove the shader language version abstraction
>        gl: Add a non-thread-aware mode for GL devices
> Søren Sandmann Pedersen (4):
>        Use pixman glyphs
>        Revert "Use pixman glyphs"
>        image: Fix bugs related to glyph mask creation
>        Use the new pixman_glyph_cache_t API that will be in pixman 0.28.0
> Uli Schlachter (18):
>        Remove some unused functions
>        Remove some dead code
>        check-doc-syntax: Make this work again
>        check-doc-syntax: Find duplicate "Since:" tags
>        c_surface_set_mime_data: Remove duplicate "Since"
>        xcb: Handle recording surfaces differently
>        xcb: Correctly handle a recording surface's extents
>        Fix make check
>        Remove an unimplemented function declaration
>        xcb: Fix a warn_unused_result warning
>        xcb: Remove unimplemented cairo compositor
>        xcb: Switch to compositor architecture
>        xcb: Verify extension support before sending
>        xcb: Check the right flag for FillRectangles
>        xcb: Check if traps are supported before using them
>        xcb: Add a missing check for FillRectangles
>        surface: Check reference count right before free
>        mark_dirty: Check surface status
> Weng Xuetian (1):
>        xlib: Reset fallback counter when discarding the fallback
> Yuanhan Liu (2):
>        gl: use _cairo_gl_operand_copy to fix unblanced reference count
>        configure.ac: remove annoying change of INSTALL file
> What is cairo
> =============
> Cairo is a 2D graphics library with support for multiple output
> devices. Currently supported output targets include the X Window
> System (via both Xlib and XCB), quartz, win32, and image buffers,
> as well as PDF, PostScript, and SVG file output. Experimental backends
> include OpenGL, 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cairographics.org/archives/cairo/attachments/20121005/3cebf038/attachment-0001.html>

More information about the cairo mailing list