cairo snapshot 1.9.8 now available
- From: Chris Wilson <chris chris-wilson co uk>
- To: cairo-announce cairographics org
- Cc: gnome-announce-list gnome org, ftp-release lists freedesktop org, pr lwn net
- Subject: cairo snapshot 1.9.8 now available
- Date: Mon, 14 Jun 2010 13:57:06 +0100
[Having to resend as I failed miserably to send this over the weekend...]
A new cairo snapshot 1.9.8 is now available from:
http://cairographics.org/snapshots/cairo-1.9.8.tar.gz
which can be verified with:
http://cairographics.org/snapshots/cairo-1.9.8.tar.gz.sha1
25f1a445ac0e2b33355ab9bc046b4ee7639554a1 cairo-1.9.8.tar.gz
http://cairographics.org/snapshots/cairo-1.9.8.tar.gz.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.9.8 tag which points to a commit named:
3a20b10cd0d94406fbd5fe3bb3d4820a95364537
which can be verified with:
git verify-tag 1.9.8
and can be checked out with a command such as:
git checkout -b build 1.9.8
One major API change since the last snapshot, and a whole slew of bugs
fixed and inconsistencies eliminated. Far too many bugs fixed to
individually identify. We need to thank Benjamin Otte for his fantastic
work on the cairo-gl backend making it faster and more robust, Andrea
Canciani for finding so many bugs and developing test cases for them, as
well fixing them. And last but not least we must all thank Adrian Johnson for
continuing to eliminate bugs and improving the PostScript and PDF backends.
This snapshot represents almost 4 months of bug fixing, bringing Cairo to
a point where we consider it almost ready to be a candidate for release.
There are a few known bugs left to be fixed, being tracked in
https://bugs.freedesktop.org/show_bug.cgi?id=24384, so please give Cairo a
whirl and report any regressions. The plan is to release a new snapshot
every other week leading to a 1.10 release with a target date of
2010-08-16.
-Chris
API additions
-------------
CAIRO_FORMAT_RGB16_565
16 bit devices still remain popular, and so with great demand,
CAIRO_FORMAT_RGB16_565 has been restored enabling applications to create
and use 16 bit images as sources and render targets.
cairo_surface_create_for_rectangle()
It is common practice to cut an image up into many smaller pieces and use
each of those as a source - a technique called texture atlasing.
cairo_surface_create_for_rectangle() extends Cairo to directly support use
these subregions of another cairo_surface_t both as a source and as a render
target.
cairo_region_create()
cairo_region_create_rectangle()
cairo_region_create_rectangles()
cairo_region_copy()
cairo_region_reference()
cairo_region_destroy()
cairo_region_equal()
cairo_region_status()
cairo_region_get_extents()
cairo_region_num_rectangles()
cairo_region_get_rectangle()
cairo_region_is_empty()
cairo_region_contains_rectangle()
cairo_region_contains_point()
cairo_region_translate()
cairo_region_subtract()
cairo_region_subtract_rectangle()
cairo_region_intersect()
cairo_region_intersect_rectangle()
cairo_region_union()
cairo_region_union_rectangle()
The Cairo region API was actually added a couple of snapshots ago, but we
forgot to mention it at the time. A simple API for the handling of
rectangular pixel-aligned regions by Soeren Sandmann.
Backend-specific improvements
-----------------------------
cairo-gl
Benjamin Otte made more than 300 commits in which he refactored the cairo-gl
backend, reducing a lot of code duplication and enabled him to begin working
on improving performance by reducing state changes and associated overhead.
cairo-xlib
Access to the underlying connection to the Display is now thread-safe
enabling cairo-xlib to be used in a multi-threaded application without fear
of random corruption. Thanks Benjamin Otte!
cairo-xlib will now attempt to use PolyModeImprecise when compositing
trapezoids (i.e. a fill or a stroke operation with a non-trivial path) which
should allow hardware drivers more scope for accelerating the operation at
the cost of potentially incurring minute rendering errors. The mode can be
forced back to PolyModePrecise by setting the antialias parameter to
CAIRO_ANTIALIAS_SUBPIXEL.
cairo-svg
A notable improvement was contributed by Alexander Shulgin to enable SVG to
reference external image through the use an extended MIME data type.
Complete list of changes between 1.9.6 and 1.9.8
------------------------------------------------
Adrian Johnson (4):
PDF-operators: ensure text operations flushed before emitting clip
PS: Add missing 'q' when resetting clip path
type1: Use correct glyph advance when subsetting type 1 fonts
cff: Use correct glyph advance when subsetting cff fonts
Alexander Shulgin (1):
Added new MIME type CAIRO_MIME_TYPE_URI and it's support in SVG backend
Andrea Canciani (46):
xcb: Fix compilation without dri2
test: Add gradient-zero-stops-mask
pattern: Fix _gradient_is_opaque() for zero stops
trace: Fix trace endianness
script: Fix script scanner endianness
perf: Fix timestamp computation on MacOS X
Correct masking optimization
Actually check for memory allocation failure
perf: Correct cairo-perf-diff syntax
boilerplate: Compile xlib without xrender
Revert "script: Another RGB16_565 warning."
Update FSF address
quartz: Stroke without ctm_inverse multiplication
quartz: Simplify path creation
quartz: Assert success of path creation
atomic: Remove unused function _cairo_atomic_int_set()
atomic: Separate bool and old-value compare-and-exchange
atomic: Correct implementation of _atomic_fetch ()
atomic: Add MacOSX atomic implementation
Revert bd672d080ca0036ef1b88d26583e6af36f541461 on src/cairo-composite-rectangles.c
test: add linear-gradient-extend and radial-gradient-extend
test: improve copyright notices
quartz-font: Conform context and antialias handling to quartz-surface
quartz-font: Silence 0x0 CGContext warning
quartz: fallback for A1 images on little endian archs
quartz: silence compiler warnings
quartz: fix repeating radial gradients on 64 bits
test: add degenerate gradient and single stop tests
test: fix typo
test: add/update reference images
gl: fix compilation on MacOS X
surface: remove content argument from is_similar
pattern: remove content field from solid patterns
pattern: improve clear/opaque check functions
pattern: add gradient_is_solid function
gstate: correct optimizations
pattern: improve degenerate gradients handling
test: exercise ps crash with single stop gradients
pattern: improve single stop gradients handling
pdf: support single stop gradients
ps: support single stop gradients
gl: support single stop gradients
test: make test font family a define
test: update font family name
test: quartz ref image refresh
test: update quartz ref images in makefile
Behdad Esfahbod (1):
Improve doc syntax check to allow inline macro docs
Benjamin Otte (207):
test: Add bug-bo-rectangular
image: split cairo_image_surface_coerce()
region: Make the 2nd argument to intersect and union const
test: Add test checking that all setters properly check surface->status
gl: Really don't write error status to the inert object.
gl: Use right format
xlib: Make code not complain about every new format
xcb: Make code not complain about every new format
gl: Make code safe for multithreaded access
glx: Add getters for device's Display and GLXContext
gl: acquire/release context when getting images
gl: acquire/release properly in _cairo_gl_draw_image()
gl: Get rid of "return value not checked" warnings
Require pixman 0.17.5
image: Make unbounded fixup code not use pixman_fill()
Use pixman_image_composite32()
xlib: Make display a cairo_device_t
gl: fix typo in comment
gl: Use correct type when uploading images
gl: Don't acquire the gl context twice
gl: Use GLfloat instead of float in gl*Array() functions
gl: Only unref a surface if it exists
gl: Make drawing to windows work again
xlib: Fix screen device handling
xlib: Fix display closing to work properly
tests: Integrate xlib-expose-event test into usual tests
fallback: Fix clip_region handling in mask creation
test-suite: add image_diff_is_failure() function
test: run xlib-expose-event test unconditionally
fallback: Sanitize code that queries surface extents
pixman_image_composite => pixman_image_composite32
image: pixman_image_fill_rectangles() => pixman_image_fill_boxes()
fallback: Pass the correct extents for unbounbded operations
fallback: Propagate extents properly
image: translate source pattern in composite_trapezoids()
test: Set have_result for image matches
fallback: translate extents regions properly
fallback: Only do _fill/compsoite_rectangles on bounded source
xlib: remove unused code
xlib: Constify some function arguments
xlib: Don't modify variables that are needed later
Remove excessive semicolons
image: Round down when rendering antialiased boxes
test: Update reference images for last checkin
Create cleared surface instead of a scratch surface in clone_similar()
fallback: Create pixman image for correct rectangle
image: remove useless optimization
boilerplate: don't compile pdf test code when pdf is not tested
fallback: get src_x/y variables right when compositing traps
gl: Acquire context when initing/destroying gl operands
gl: acquire/release context during surface_finish()
gl: Acquire the context before destroying it.
Fix typo in docs
gl: Make _gl_set_destination() take the context as an argument
gl: Move device-specific code into cairo-gl-device.c
gl: Remove unused member variable
gl: Get rid of cairo_gl_surface_glfinish() from public API
gl: Introduce _cairo_gl_device_has_glsl() function
gl: Get rid of another cast to cairo_gl_context_t
gl: Another case of proper device acquiring
gl: Get rid of ctx variable
gl: Make check_span_renderer() call not require a device lock
gl: Print GL errors when releasing the device
gl: Make the shader implementation per-context, not global
test: Add a test for various zero mask operations
cairo_paint_with_alpha(cr, 0.0) is only a noop when bounded by mask
image: Fix wholly unbounded fixup
Make _cairo_color_equal() work for unmultiplied colors, too
Use a solid color for 0xN and Nx0 surfaces
gl: Don't create 0x0 surfaces
gl: Don't keep a temporary surface in the device
test: Make global variables in new test static
build: Fix pthread detection
fallback: Remove span renderer paths
gl: Remove gradient optimizations
gl: gl surfaces are only similar when they share the same device
gl: Share vertex shaders
gl: s/_cairo_gl_set_destination/_cairo_gl_context_set_destination/
gl: Get rid of cairo_gl_shader_source/mask_t
gl: Automatically generate the vertex shader source
gl: Programmatically generate fragment shaders
gl: move operator check
gl: Add cairo_gl_composite_setup_init/fini() functions
gl: Put shaders into a cache
gl: acquire device manually in finish, as the default way will error
gl: use glBlendFuncSeparate()
gl: cairo_gl_compsite_setup_t => cairo_gl_composite_t
gl: Move composite code into own file
gl: Make the span renderer use the new composite APIs
gl: make show_glyphs use the cairo_composite_t API
gl: make _cairo_operand_destroy private
gl: Add _cairo_gl_composite_begin() function
gl: Implement _composite_emit_rect() and _composite_end()
gl: Support component alpha in gl_composite_t
gl: remove unused variables from span renderer
gl: Change _cairo_gl_composite_emit_rect()
gl: Convert span renderer to use cairo_gl_composite_begin/end()
gl: Remove unused variables
gl: Require ARB_vertex_buffer_object extension unconditionally
gl: Convert glyphs path to use cairo_gl_composite_t
gl: Replace _cairo_gl_operand_init() with setters for src/mask
gl: Set composite->has_component_alpha based on mask
xlib: ensure variable isn't uninitialized
gl: Use GL_TRIANGLES instead of GL_QUADS
gl: Assert that binding values to shaders never fails
gl: Update copyright statements
gl: make _set_mask() accept NULL
gl: Implement fill_rectangles with composite
gl: Get rid of src and mask argument to composite_init()
gl: Add missing NULL-check in non-shader code
gl: Don't name the union in cairo_gl_operand_t
gl: Make a bunch of functions static
surface: Add _cairo_surface_release_device_reference() API
gl: Make glyph cache a real surface
gl: Get rid of _cairo_gl_composite_set_mask_texture()
gl: Actually check errors for _cairo_gl_composite_begin()
gl: Use _cairo_gl_surface_draw_image() when caching glyphs
gl: detect image uploads and fast-path them
gl: Detect color-pattern clears of surfaces
gl: Move _cairo_gl_set_operator() to the file it's used in
gl: cache the current shader in the context
gl: Implement texture upload to window with composite()
gl: Add _cairo_gl_surface_is_texture()
gl: Use the mask, not the source
gl: Separate binding to shaders from setting operands
gl: Binding variables only works for the current shader
gl: Move texture setup code into its own file
gl: Move shader checking in the TexEnv setup code
gl: Don't store the shader in the composite_t anymore
gl: Actuall do fall back to fixed function paths.
gl: Move vertex buffer handling from setup into context
gl: Add an assertion that a context cannot call _begin() twice
gl: Move vertex array setup code into the texture setup code
gl: Remove unused variables
gl: set the active texture before fiddling with with glTexEnv
gl: Refactor fixed function setup code
gl: Allow NONE and SPANS sampler for source, too
gl: Fix coverage passing for spans not being endian safe.
gl: Don't set is_clear
gl: spans need the dummy texture
gl: Flush surface at the right times
gl: Make cairo_gl_composite_t not require a gl context anymore
gl: Add API for querying if we need GL_TEXTURE_RECTANGLE_EXT
gl: Make composite_set_source/mask/mask_spans not require a context
gl: Make composite_set_clip_region not require the context
gl: Remove unused code
gl: Make gl_composite_begin() acquire the context
gl: Store the clip region in the context
gl: Move the pre shader to the context, too
gl: switch OPERAND0 and OPERAND1 in the fixed function path
gl: Unify fixed function setup code
gl: Split fixed-function operand setup into own function
gl: Avoid redundant mask setup
gl: Switch src alpha handling to a tiny on/off function
gl: Remove unneeded and broken workaround
gl: Remove dependency on composite_t in draw function
gl: Remove composite_t argument from _flush() function
gl: operand->texture.surface cannot be NULL
gl: Move struct definitions in header
gl: Keep a copy of the current operand in the context
gl: Add an enum for tex units
gl: Get rid of operand argument to emit functions
gl: Simplify mask operand setup code
gl: Move function
gl: Merge fixed function setup into general texture setup
gl: Check mask's attributes for component alpha
gl: get rid of the operand's pattern variable
gl: Move unsetting the state into the operand destroy function
device: Make flush vfunc return a cairo_status_t
docs: fix typo
gl: Introduce flush functions
gl: Set GL_BLEND and GL_SCISSOR_TEST globally
gl: bind all shader variables at the same place
gl: Make _shader_by_type() a getter
region: clarify docs of cairo_region_equal()
gl: Do not reset shaders on _end()
gl: Stop disabling the vertex array and the array buffer
gl: Remove check if we're between begin/end
gl: Don't reset vertex size
gl: Flush properly in set_destination
Call cairo_surface_flush() before setting finished
gl: Only allocate a framebuffer if we need one
gl: Introduce a temporary texture unit
gl: Store the vertex offset in the operand
glx: When acquiring device, use the correct drawable
gl: Do not reset the current target on release
gl: Only resetup textures if we need to
gl: rework _cairo_gl_set_operator()
gl: Special case blend mode for CAIRO_CONTENT_COLOR
gl: Make using shaders an explicit argument
gl: Switch to deferred rendering
gl: Create separate functions for setting extend and filter
gl: Use the generic functions for filter/extend in gradients
gl: Make gradient textures a separate object
device: flush before setting finished
gl: Add a gradient texture cache
gl: Fix vertex size changes not causing updates of the operands
Remove _cairo_surface_composite_trapezoids_as_polygon()
gl: Add a simple spans renderer for stroke/fill
gl: Fix span renderer for unbounded spans
gl: Fix span renderer doing bad stuff for CLEAR and SOURCE
Update my copyright notices to preferred version
gl: Fix argument order
gl: Only clone texture surfaces
gl: Use CAIRO_COLOR_BLACK
gl: Add an assertion that we always have a texture
gl: Add support for clip regions to the span renderer
Carl Worth (1):
Update version to 1.9.7.
Carlos Garcia Campos (5):
[test] Update pdf reference images for clip-operator
[test] Update pdf reference image for leaky-dashed-rectangle
[test] Update pdf reference image for surface-pattern-scale-down
[test] Update pdf reference image for text-rotate
[configure] Bump poppler dependency to 0.13.3
Chris Wilson (313):
bo-rectangular: Prevent invalid read during edge traversal
gl: Return unsupported for h/w that cannot handle shaders.
gl: Avoid attempting to create a program on GLSL-incapable h/w for spans
gl: Initialise glyphs mask to ensure allocation in absence of stash.
fallback: Initialize rects.is_bounded for span renderer.
bo-rectangular: Fix incorrect skipping of colinear eo edges
drm: Add missing private headers
gl: Markup internal functions with cairo_private
image: Allow reduction of repeat modes for unity scaled patterns.
Warnings cleanup for CAIRO_FORMAT_INVALID.
test: Remove the double-clip from clip-group-shapes
image: Don't rely on clip regions being clipped to surface extents.
xlib: Handle a1 image uploads through converter
surface-fallback: Propagate NOTHING_TO_DO
surface-fallback: Free traps on composite_trapezoids() error
test: Add references for rounded-rectangle-{fill,stroke}
test: Avoid derefencing a NULL xcb connection
gstate: Use _cairo_pattern_clear for CLEAR.
surface: Simplify is_clear logic.
drm/intel: Set default extend mode for rendering gradient subsets.
drm/intel: Set the 1D gradient texture to be untiled.
drm/i965: Merge the constants into the surface stream.
drm/i965: Ignore flushing on device finish.
drm/i915: Acquire device before shader commit.
drm/i915: Avoid double multiplication of linear alpha.
drm/i915: Ensure simple alpha is written to green on alpha-only surfaces.
drm/i915: Fix crash with linear-step-function
drm/i915: Fix encoding of negated operand channels
drm/i915: Eliminate redundant radial vertex shader.
drm/i915: Use a preserved temporary to store the radial texcoord.
gl: Pad the gradient texture.
perf: Check for and include unistd.h
drm/i915: Handle clip/combine coords for spans.
drm/i915: Adjust clip matrix for clip origin.
drm/i915: Apply more micro-optimisations when targetting CONTENT_ALPHA
drm/i915: Discard redundant solitary clips during fill
test: Add a1-mask-sample
glew: don't pull in GL/glu.h
drm/i965: Acquire device around commit.
gstate: Account for undropped non-transformed glyphs.
spans: Initialise rects->is_bounded for polygon compat.
gl: Add EGL interface
paginated: Use common is_clear.
ps: Destroy the local surface on error.
wrapper: Apply device transform inverse as appropriate.
script: Make the test suite run again!
test/any2ppm: Check for errors after executing script.
script: Remove the version check.
script: Use a stack to push/pop recursed line numbers.
ps: Free page on error path.
surface: Check pattern for error status.
image: Special case wholly unbounded fixups.
ps: Skip surface emission if in error state.
recording: Cleanup the clip on error.
drm/intel: Replace open-coding of _cairo_rtree_node_remove()
gl: Decouple cache from scaled-font on context destruction
drm/intel: Revoke glyph caches on device finish
gl: Hook in glyph cache finalisation.
xcb: Gracefully destroy any lingering fallback during finish.
xcb: Destroy reference to local source picture in show-glyphs.
xcb: Consume the implicit reference for the cached connection on finish
test/clip-image: Free image after use.
test/pthread-same-source: Free source after use.
xcb: Fix leak of clip rectangle during show-glyphs.
xcb: Relinquish the xcb connection on finish.
xcb: Destroy reference to clip surface after use.
test/clear-source: Free source after use.
xcb: Free traps after conversion from boxes.
image: Free traps after conversion from boxes.
cairo: Typos in docs.
device: Add language binding interfaces.
clip: Remove the redundant _cairo_clip_init_rectangle()
boilerplate: Cleanup the list of backends upon shutdown.
script: More acquire device fixes.
script: Manually unlink font entries upon destruction
script: Free the surface/font bitmaps.
scaled-font: Destroy the old surface when replacing scaled_glyph->recording
xcb: Ensure that we own the glyph cache before use.
snapshot: Finish the clone.
clip: Don't reduce all-clip to no-clip.
clip: propagate the no-clip through the copy.
recording: Fix leak of clip from snapshots of recording surfaces.
subsurface: Ignore return from _cairo_clip_init_copy()
boilerplate: Create an image16 target
drm/i915: Normalize spans opacity value
drm/i915: Avoid using another unpreserved temporary
perf: Compute ops per second
perf/micro: Exercise different sizes and antialising modes with glyphs
scaled-font: Optimize cairo_scaled_font_lookup()
xcb: Cache whether we have already check a glyph for size.
scaled-glyph: Allow removal info fields.
Silence enumeration warnings following addition of RGB16_565
doc: Fix some missing '%' in gtk-doc comments
xlib: Avoid multiple evaluations inside bswap_*() macro.
configure: check -lrt for shm_open()
xlib: Rearrange xrender stubs to restore compilation without xrender.h
boilerplate: Allox xlib-fallback to build without RENDER
perf/micro: Show megapixel fill rate during paint.
test: Add inverse text
script: Fix endian encoding of '<|' length.
perf: Switch between micro and trace benchmarks for cairo-perf-diff
script: Another RGB16_565 warning.
script: Compile without FT_FONT
script: Another RGB16_565 warning.
test: Add clip-contexts
clip: Compare the whole clip when testing for equality.
clip: Compile fix for previous clip.
xcb: Use normal finish to decouple from surface cache.
cache: Tidy _cairo_cache_shrink_to_accommodate()
hull: _cairo_hull_vertex_compare() return 0 for identical elements
xlib: Don't operate on an error object inside setters.
surface: Propagate the error status to _cairo_surface_get_device()
Win32 features update.
pdf: Don't write error status to the inert object.
ps: Don't write error status to the inert object.
svg: Don't write error status to the inert object.
rtree: Remove the false assert upon collapse.
script: Flush prior to modifying the image data.
gl: Don't write error status to the inert object.
gl: Handle component-alpha ADD
configure: typo in check for xcb-shm
build: Spelling correction
Win32 features update
cairoint.h: Change ASSERT_NOT_REACHED to remove compiler warning
pdf: Suppress compiler warning.
cairo: Use explicit device flushing.
test: Add clip-empty-group
cairo: Handle the all-clipped state in cairo_push_group()
xlib: Simply release the ref, not destroy, from CloseDisplay.
test: Add clip-shape
clip: Report the surface offset when retrieving the clip mask
clip: Fix sign reverse when combining with the clip surface.
clip: Skip combining with solid pixel aligned boxes.
region: Cast to remove const to suppress compiler warnings.
trace: Trivial compiler warning fix
trace: Check return value to suppress compiler warning
trace: Remove unused functions
image: Compute sample extents
snapshot: propagate status on finish
test: Add image16 refs
test: Update image ref images, and used fonts in README
surface: skip OVER is the source is clear.
image: Convert 1x1 samples into solid colors.
snapshot: Simply memcpy if the cloned image matches the original.
snapshot: The snapshot masquerades as the target surface type.
test: Mark surfaces as finished if the data goes out of scope.
test: Expand xlib-expose-event to cover all backends
trace: Wrap cairo_surface_create_for_region()
script: Reconstruct subsurfaces.
subsurface: Mark the image as !clear after copying.
script: Replace the missing " " after pop
image: Generate clear/white/black images when !HAS_ATOMIC_OPS
atomic: Tweak for compilation x86.
test: Remove group-unaligned.*new.png
subsurface: s/region/rectangle/
image: Simplify translation of pattern matrix for composite_trapezoids()
surface: Convert snapshots from an array to a double-linked list.
snapshot: Attach the backend generated snapshot to the target
boilerplate: Destroy the redundant image reference
boilerplate: Ensure that the recording surfaces are finished.
paginated: Call surface finish explicitly on recording surface
ps: Enable native encoding of subsurface patterns.
pdf; Emit subsurface patterns natively.
recording: Check that we do not use a finished recording surface.
boilerplate: Fix use after free from 3ae5723
Revert "paginated: Call surface finish explicitly on recording surface"
test: Expand pthread-show-text to cover all surfaces.
atomic: Add Andrea's copyright notice
ft: Convert an assert into an unlikely error return.
image: A few missing tests for malloc failure
paginated: propagate malloc failures more cleanly.
scaled-font: Check for an error return when retrieving the implementation
test: Improve memfault behaviour.
xlib: Don't delete gradients in unbounded fixup code
test: Embed the list pointer into cairo_test_t
image: Replace assert with error return
test: Cleanup after failed pthread_join().
ps: Always cleanup used font subsets.
pdf: Cleanup local reference to source on error paths.
image: Check for pixman image allocation failure during glyphs
test/user-font-proxy: Check we install user data on the scaled font
test/bitmap-font: Check for memfault error
test/bitmap-font: Propagate memfault
test/user-font-rescale: Use after free and check for memfault.
image: Propagate failure from pixman_image_fill_boxes().
scaled-font: Remove MRU cache upon detection of error.
test: Add subsurface-modify-{child,parent}
test: Add subsurface-pad
ps: Remove the fill stroke command
scaled-font: Convert to cairo_list_t
paginated: Mark as clear initially.
pdf: Assert that no other error can occur for an invertible matrix.
ps: Force finish of the type3 glyph surfaces.
type3: Minor tweaks to remove a redundant check.
test/subsurface-modify-parent: Free region.
recording: Avoid refcycles by always copying the command array.
recording: Mark an empty recording surface as clear.
test/bitmap-font: Destroy FcPattern
image: Propagate failure from pixman_image_set_clip_region()
clip: Propagate memfault from translating clip region
test/mask-glyphs: Check for memfault
clip: Trivial compiler warning
test: Add radial-gradient-mask
scaled-font: Pluck last glyph from the most recent page.
test: Add xlib-expose-event.image16.ref.png
clip: Propagate failure from retrieving the previous clip surface.
image: Propagate error instead of asserting.
xlib: Ensure the global display mutex is initialized before use.
xlib: Remove obsolete comment, there is no race anymore
xlib: Remove screen->has_render
xlib: Convert visual array to a cairo_list_t
xlib: Remove reference counting for cairo_xlib_screen_t
test: Add subsurface-image-repeat
test/clip-contexts: Free secondary context
test: Add gl-surface-source
surface-fallback: Handle memfaults during clipping.
test/gl-surface-source: Attach GLXContext to device user data.
device: Reorder finalization so that user data is destroyed last.
cairo: stash a number of contexts for use with NO_MUTEX
gl: Enable fixed-function without glsl.
subsurface: Include device offset in extents
doc: regen
surface-fallback: Only destroy the clip after it has been initialized.
test/copy-path: memfault status checks.
cairo: Special case cairo_t with NULL_POINTER
subsurface: Don't double apply device offset for deep subsurfaces.
test: Force cairo-test-suite to return SUCCESS
xcb: Reset picture after failed snapshot.
xcb: Upload images in place.
xcb: Find the correct xcb_screen_t for faking Screen
region: _cairo_region_create_in_error()
xcb: trivial memfault fixes.
trace: Try wrapping FT_Open_Face()
trace: And for the bonus round... Make it compile.
win32-printing: compile fix.
test: Remove pthread_yield()
clip: Fill instead of creating intermediate surfaces.
xcb: discard glyph mask and use dst directly when possible.
simplify pattern extents for translation matrices
gstate: reduce a couple more operators
script: Don't hash the entire image.
script: Avoid the expensive of the redundant memset.
rtree: defer propagating pinned nodes until eviction.
rtree: Remove the unused evict hook.
drm: code dump, sorry.
gallium: Refresh.
gcc-4.5 warnings and optimisation flags.
gstate: Don't reduce solid source and mask for SOURCE and CLEAR
color: Special case comparing color stops.
Make cairo_color_stop_t a unique type.
rtree: Replace undeclared TRUE/FALSE with 1/0
configure: Include PTHREAD_CFLAGS in CAIRO_LDFLAGS
cairo: Missing private markup for _cairo_format_to_pixman_format
boilerplate: Exercise manual double-buffering to a window
rtree: Actually pin the node when pinning.
gl: Pretty print the error GLenum.
gl: Rename cairo_gl_shader_program_t to cairo_gl_shader_t
gl: Throw a _cairo_error when detecting a GLerror
gl: Check status after composite_begin
atomic: Add memory barriers if required for intel primitives
freed-pool: Don't access beyond the end of the array.
script: Update csi-exec to match new interface.
boilerplate: Exercise RENDER capable windows.
gl: Make _cairo_gl_shader_(init|compile) static
gl: Check for an error device when creating surfaces.
gl: _cairo_set_shader_by_type() cannot return UNSUPPORTED
gl: Unmap the vertex buffer prior to using in DaawArrays()
Revert "gstate: reduce a couple more operators"
bo: Fix debugging for changes in internal traps api.
test: Add half-coverage to exercise the rasteriser with subpixel geometry.
bo: And disable DEBUG_TRAPS again.
test: Fix half-coverage colouration.
test: Add partial coverage.
gstate: Track whether the combination of ctm * device is identity.
test: Update partial coverage.
test: Exercise partial coverage some more.
path: Exponentially grow buffer based on populated points and ops.
test: Distinguish tests that throw an error from a normal fail.
test: Add a simple coverage test.
polygon: Reorder conditionals based on likelihood.
xlib: Adjust trapezoid precision based on antialias.
test/pdf2png: Don't use DEST_OVER as poppler starts using subpixel text.
color: Mark _cairo_color_get_content() as private.
gl: make check insists "cairoint.h" is first.
test: Add a convenience script to disable the screensaver when testing
test: Restrict the coverage tests to raster targets.
Revert "test/pdf2png: Don't use DEST_OVER as poppler starts using subpixel text."
test: Use a group to render PDF correctly using poppler.
gstate: Update cached matrix state after device transform changes on the target
test: ps ref image refresh.
test: pdf ref image refresh
pattern: Remove extraordinary _cairo_pattern_fini_snapshot().
pattern: Remove incorrect optimisations from _cairo_pattern_aquire_surface()
test: xlib ref image refresh
image: Apply component alpha to composite masks.
cairo: Create error objects for cairo_t
test: More coverage coverage.
test: More minute geometry exercised by partial-coverage.
test: Use exact matching on test names by default.
test: Disable tests that are too slow to run by default.
test/coverage: Add a comment describing the column_triangle geometry()
test/coverage: Refine comments
test/coverage: The comment was still wrong.
test: Record the expected failure mode for partial-coverage-intersecting-quads
test: Forgotten ref image.
gl: start returning the failure status aftern an invalid GL op.
test: Missing ref images
NEWS: Boring stub for 1.9.10.
NEWS: take two.
check: Disable running cairo-perf-micro
NEWS: Minor tweaks.
test: Move all output below test/output/
version: 1.9.8
Dave Yeo (1):
os2: Fix get_extents() segfaulting.
Dmitri Vorobiev (1):
scaled-font: optimize cairo_scaled_font_text_to_glyphs()
Jeff Muizelaar (3):
Add an implementation of ffs() for MSVC
Remove comma from the end of the CAIRO_PATTERN_ACQUIRE enum
Add an additional set parantheses around the container_of macro
Jonathan Kew (2):
quartz: Work around bad glyph extents returned by CoreGraphics for empty glyphs in Al Bayan font
win32: Grow glyph extents to account for ClearType
Karl Tomlinson (1):
xlib: Find matching Visual for XRenderFormat
Kristian Rietveld (1):
quartz: Define cairo_quartz_float_t and use instead of float
M Joonas Pihlaja (8):
text: Fix assert failure from compositing by SOURCE with a mask internally.
test: Fix a wrongly typed return value in scaled-font-zero-matrix.
compiler: Explain the slim hidden macros.
test: Add tests covering more clip fast paths in groups.
test: Test downscaling and extending a surface pattern.
image: Fix bug optimizing surface pattern extend modes.
api: Introduce CAIRO_FORMAT_INVALID formally in the API.
xcb: Update minimum required versions of libxcb.
Makoto Kato (1):
openvg: fix build break
Metal Sonic (1):
Update license blocks to use "Mozilla Foundation" instead of "Mozilla Corporation"
Oleg Romashin (1):
Add back support for CAIRO_FORMAT_RGB16_565
Owen W. Taylor (1):
language bindings guide: clarify mapping for cairo_pattern_create_rgb[a]
Richard Procter (1):
Bug 28100 - Font option CAIRO_HINT_METRICS_OFF unhonoured on win32
Robert O'Callahan (4):
quartz: Don't fallback to pixman for repeating radial gradients.
Clean up Quartz gradient code by moving some local variables to static const globals.
Don't repeat a Quartz gradient more times than necessary, to avoid Quartz quality problems when there are lots of repeated color stops.
Ensure the quartz backend returns the first stop for negative positions on the gradient line of a nonrepeating linear gradient.
timeless (1):
Remove useless null checks of a and b in _cairo_path_fixed_equal
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, 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
--
Chris Wilson, Intel Open Source Technology Centre
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]