Andrea Canciani (4):
support single-stop gradients
test: verify that gradients do not crash pixman
Draw radial gradients with PDF semantics
Add comments about errors
Benjamin Otte (2):
region: Add a new test region-translate
region: Fix pixman_region_translate() clipping bug
Brad Smith (1):
Add support for AltiVec detection for OpenBSD/PowerPC.
Dmitri Vorobiev (5):
Move aligned_malloc() to utils
Add gettime() routine to test utils
Add noinline macro
Use <sys/mman.h> macros only when they are available
Some clean-ups in fence_malloc() and fence_free()
Jeff Muizelaar (1):
create getter for component alpha
Jonathan Morton (1):
Add a lowlevel blitter benchmark
Liu Xinyun (2):
add enable-cache-prefetch option
Remove cache prefetch code.
M Joonas Pihlaja (6):
Try harder to find suitable flags for pthreads.
Don't trust OpenBSD's gcc to produce working code for __thread.
Check that the OpenMP pragmas don't cause link errors.
Check for specific flags by actually trying to compile and link.
Avoid trailing slashes on automake install dirs.
Fix thinko in configure.ac's macro to test linking.
Maarten Bosmans (2):
Use windows.h directly for mingw32 build
Add *.exe to .gitignore
Marek Vasut (1):
Add support for 32bpp X14R6G6B6 format.
Mika Yrjola (1):
Fix "syntax error: empty declaration" warnings.
Siarhei Siamashka (25):
test: main loop from blitters-test added as a new function to utils.c
test: blitters-test-bisect.rb converted to perl
test: blitters-test updated to use new fuzzer_test_main() function
test: scaling-test updated to use new fuzzer_test_main() function
test: added OpenMP support for better utilization of multiple CPU cores
test: 'scaling-crash-test' added
test: 'scaling-test' updated to provide better coverage
Code simplification (no need advancing 'vx' at the end of scanline)
ARM: 'neon_combine_out_reverse_u' combiner
ARM: added 'neon_composite_over_8888_8_0565' fast path
ARM: common init/cleanup macro for saving/restoring NEON registers
ARM: helper macros for conversion between 8888/x888/0565 formats
ARM: added 'neon_composite_over_0565_8_0565' fast path
test: detection of possible floating point registers corruption
Nearest scaling fast path macros moved to 'pixman-fast-path.h'
Nearest scaling fast path macro split into two parts
Introduce a fake PIXMAN_REPEAT_COVER constant
PAD repeat support for fast scaling with nearest filter
NONE repeat support for fast scaling with nearest filter
SSE2 optimization for scaled over_8888_8888 operation with nearest filter
ARM: NEON: added forgotten cache preload for over_n_8888/over_n_0565
ARM: added 'neon_composite_add_0565_8_0565' fast path
ARM: added 'neon_composite_out_reverse_8_0565' fast path
Use more unrolling for scaled src_0565_0565 with nearest filter
ARM: restore fallback to ARMv6 implementation from NEON in the delegate chain
Søren Sandmann Pedersen (94):
Don't use __thread on MinGW.
Add macros for thread local storage on MinGW 32
test/gtk-utils: Set the size of the window to the size of the image
Merge branch 'for-master'
Eliminate mask_bits from all the scanline fetchers.
When storing a g1 pixel, store the lowest bit, rather than comparing with 0.
Make separate gray scanline storers.
Fix conical gradients to match QConicalGradient from Qt
Store the conical angle in floating point radians, not fixed point degrees
Minor tweaks to README
Make the combiner macros less likely to cause name collisions.
Fix memory leak in the pthreads thread local storage code
Hide the global implementation variable behind a force_inline function.
Cache the implementation along with the fast paths.
Split the fast path caching into its own force_inline function
test: Make sure the palettes for indexed format roundtrip properly
When converting indexed formats to 64 bits, don't correct for channel widths
Make the repeat mode explicit in the FAST_NEAREST macro.
In the FAST_NEAREST macro call the function 8888_8888 and not x888_x888
fast-path: Some formatting fixes
Check for read accessors before taking the bilinear fast path
[fast] Add fast_composite_src_x888_8888()
[sse2] Add sse2_composite_src_x888_8888()
[sse2] Add sse2_composite_in_n_8()
[sse2] Add sse2_composite_add_n_8()
bits: Fix potential divide-by-zero in projective code
Add x14r6g6b6 format to blitters-test
If we bail out of do_composite, make sure to undo any workarounds.
CODING_STYLE: Delete the stuff about trailing spaces
Fix Altivec/OpenBSD patch
Extend scaling-crash-test in various ways
Replace compute_src_extent_flags() with analyze_extents()
Eliminate recursion from alpha map code
Eliminate get_pixel_32() and get_pixel_64() from bits_image.
Split bits_image_fetch_transformed() into two functions.
Eliminate the store_scanline_{32,64} function pointers.
Remove "_raw_" from all the accessors.
Add some new FAST_PATH flags
Store the various bits image fetchers in a table with formats and flags.
Add alpha-loop test program
pixman_image_set_alpha_map(): Disallow alpha map cycles
Introduce new FAST_PATH_SAMPLES_OPAQUE flag
Only try to compute the FAST_SAMPLES_COVER_CLIP for bits images
Pre-release version bump to 0.19.2
Post-release version bump to 0.19.3
Merge pixman_image_composite32() and do_composite().
Be more paranoid about checking for GTK+
Store a2b2g2r2 pixel through the WRITE macro
When pixman_compute_composite_region32() returns FALSE, don't fini the region.
Silence some warnings about uninitialized variables
Add FAST_PATH_NO_ALPHA_MAP to the standard destination flags.
Do opacity computation with shifts instead of comparing with 0
Add fence_malloc() and fence_free().
Update and extend the alphamap test
Rename FAST_PATH_NO_WIDE_FORMAT to FAST_PATH_NARROW_FORMAT
Remove FAST_PATH_NARROW_FORMAT flag if there is a wide alpha map
Clip composite region against the destination alpha map extents.
Move some of the FAST_PATH_COVERS_CLIP computation to pixman-image.c
analyze_extents: Fast path for non-transformed BITS images
test: Add affine-test
Use a macro to generate some {a,x}8r8g8b8, a8, and r5g6b5 bilinear fetchers.
Enable bits_image_fetch_bilinear_affine_pad_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_none_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_reflect_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_normal_a8r8g8b8
Enable bits_image_fetch_bilinear_affine_pad_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_none_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_reflect_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_normal_x8r8g8b8
Enable bits_image_fetch_bilinear_affine_pad_a8
Enable bits_image_fetch_bilinear_affine_none_a8
Enable bits_image_fetch_bilinear_affine_reflect_a8
Enable bits_image_fetch_bilinear_affine_normal_a8
Enable bits_image_fetch_bilinear_affine_pad_r5g6b5
Enable bits_image_fetch_bilinear_affine_none_r5g6b5
Enable bits_image_fetch_bilinear_affine_reflect_r5g6b5
Enable bits_image_fetch_bilinear_affine_normal_r5g6b5
compute_composite_region32: Zero extents before returning FALSE.
Pre-release version bump to 0.19.4
Post-release version bump to 0.19.5
If MAP_ANONYMOUS is not defined, define it to MAP_ANON.
Revert "add enable-cache-prefetch option"
Rename all the fast paths with _8000 in their names to _8
Fix search-and-replace issue in lowlevel-blt-bench.c
Fix bug in FAST_PATH_STD_FAST_PATH
Delete simple repeat code
Remove broken optimizations in combine_disjoint_over_u()
test: Fix bug in color_correct() in composite.c
test: Fix eval_diff() so that it provides useful error values.
test: Change composite so that it tests randomly generated images
test: Parallize composite.c with OpenMP
test: Add some more colors to the color table in composite.c
Add no-op combiners for DST and the CA versions of the HSL operators.
Plug leak in the alphamap test.
Tor Lillqvist (1):
Support __thread on MINGW 4.5
When we do "newSurf->backBuf->QueryInterface(&newSurf->surface);", PIX returns
the original interface instead of the hooked one, so I swapped newSurf->backBuf
and newSurf->surface, to get the two interfaces in the reverse order. In this
case PIX returns hooked interfaces which will work when used as argument of
hooked methods.
Rotated text was sometimes broken because there was a mismatch of
assumptions between cairo and Gecko about how important it was
for the ctm of a scaled_font to match the ctm of a context. This
temporarily fixes the problem by disabling the previous_scaled_font
cache with bug #583035 tracking a more permanent fix.
This switches from using CombineGeometry() to accumulate
clip paths to using a stack of Layers each with a
geometric mask. This avoids any imprecision that occurs
when using CombineGeometry().
There maybe some performance regressions but we need the
correctness and may be able to get some of the performance
back.
A problem happens when clip->all_clipped is set and we go to get a clipped
context. Normally backends don't see operations with clip->all_clipped and so
_cairo_surface_clipper_set_clip is designed with the assumption that
clip->all_clipped is never true. I added a work-around by manually setting the
CGContextClip with an empty rectangle, however this caused cairo to be confused
about what the actual clip was.
This patch fixes the problem by adding a new function
cairo_quartz_finish_cg_context_with_clip that is called after we're done with
the native context. It moves the CGContextSave/RestoreGState calls out of
gfxNativeDrawing into cairo and uses them to ensure that the clip remains
consistent with cairo's model of them.
The DirectWrite cairo backend was incorrectly dealing with transformations. And
inconsistently dealing with them for D2D and GDI. I added a patch that fixes
that, it properly deals with the font matrix, and cleans up some of how the
matrices are treated. It also properly transforms D2D brushes on text to make
sure the pattern is correctly overlaid on the text. It also fixes the mask
handling in the transformed fallback path to look much better.
Also corrected inconsistent newlines in the license plate.
Non-libxul builds include pixman.h directly instead of having it included
by pixman-private.h which defines PIXMAN_USE_INTERNAL_API. So we ensure
PIXMAN_USE_INTERNAL_API is defined before including pixman.h
This lets cairo convert and keep a DDB image into a DIB section when we paint
it to a canvas. Avoiding the continuous conversion to an image surface
improves the performance of drawImage on to a canvas on Win32, in particular
the peacekeeper experimentalMovie benchmark.
The disassembler was producing:
strh r4, [r0, #2]
instead of
strh r4, [r0], #2
which was causing the alignment and index to go all wrong causing crashes.
Tested-by: dougt
Adrian Johnson (3):
Fix win32 build breakage
Ensure win32 font index_to_ucs4() sets ucs4 to -1 if lookup fails
Correct the comment for the index_to_ucs4 font backend function
Behdad Esfahbod (2):
Err, make gtk-doc happy again
[user-font] Add CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED
Chris Wilson (37):
[build] Enable shave support
[build] Add lcov-1.7 to known list
[image] Return FORMAT_INVALID for an error surface.
[image] Make _cairo_image_analayze_transparency() more format agnostic
[image] Treat A1 image surfaces as BILEVEL_ALPHA
[test] Create a new fallback surface to exercise 16-bit paths.
[png] Coerce FORMAT_INVALID to a known image format
[surface] Convert FORMAT_INVALID during snapshots
[xlib] Use a similar content surface for cloning images
[build] Report status of gtk-doc in summary
[build] Fix gtk-doc interoperation with shave
[check] Quieten output during checking headers-standalone
[cairo] Fix errors reported by check-doc
[cairo] Convert C99 comments to /* ... */
[cairo] Remove stray semi-colon
[cairo] Protect typeof against -ansi
[skiplist] Missing include for ffs()
[script] Missing include for INT32_MAX
[script] Pedantic violations
[path] Define _BSD_SOURCE to enable hypot()
[doc] Update identifiers
[ft] Restore the ability to lazily resolve patterns.
[xlib] Use minimal depth for similar clones.
[test] Fix typos that excluded backend test sources
[test] Add a note to "Getting the elusive zero failures"
[test] Relax APPROX_EQUALS condition
[test] Check text->path with user-fonts (twin)
[test] Clear expected floating point exceptions
[test] Stress the ft from-face cache
[memfault] Update macros to avoid namescape collision with memcheck
[debug] Check image contents using memcheck.
[win32] Typo
[win32] Wrap win32-font usage with CAIRO_HAS_WIN32_FONT
[surface] Provide nil-surface for INVALID_SIZE
[surface] Early return if the backend cannot clone an image
[xlib] Handle too-large images gracefully.
[in-fill] Treat on-edge queries as inside.
Jeff Muizelaar (1):
Only include <strings.h> for ffs() when we HAVE_FFS
Karl Tomlinson (1):
[ft] Resolve mutual referencing problems with zombie faces
cairo_scaled_font_init() allows rank 0 matrics so cairo_set_font_matrix
should too. This keeps us from accidentally breaking our cairo context
and causing things to draw wrong.
If a DDB is used as a source for an operation that can't be handled
natively by GDI, we end up needing to take a really slow path (creating a
temporary surface for acquire_source) for each operation. If we convert
the DDB to a DIB, we then end up having a real image buffer and can hand
things off to pixman directly.
This isn't the default mode because I'm not sure if there are cases where a
DDB is explicitly needed (e.g. for printing), and it would change
current cairo behaviour. It might become the default at some point in the
future.