summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-11-04[test] Add a test for all the pixman formatsyuvBenjamin Otte3-0/+119
The test works fine, eventual issues have been fixed on master reviously.
2009-11-04Planar support for cairo_image_surface_create_for_pixman_format()Benjamin Otte2-4/+7
This updates the function prototype to similar changes in pixman.
2009-11-04Disable YUV formatsBenjamin Otte3-9/+4
2009-11-04Export cairo_image_surface_create_with_pixman_format()Benjamin Otte5-24/+26
The function is necessary for all users that need to support arbitrary pixman formats, where the cairo_format_t enum is not enough.
2009-11-04[xlib] Use correct number when checking if points are out of rangeBenjamin Otte1-8/+8
2009-11-04[test] Add "target=raster" to testBenjamin Otte1-1/+1
The test isn't useful on vector backends and fails there due to antialiasing issues.
2009-11-04[xlib] Fix new Composite testBenjamin Otte2-11/+20
When the reference point was tirggering _line_exceeds_16_16() and got adjusted, the code failed to compute the srcX and srcY arguments for the call to XRenderCompositeTrapezoids() correctly and caused the resulting source image to be misaligned.
2009-11-04[test] Add a test exposing bugs in XRenderCompositeBenjamin Otte3-0/+82
This test fills a slightly rotated surface slightly above the 0 line. This hits some corner cases in the XRenderComposite path. I discovered these issues while playing with video rendering onto the canvas in HTML5 (both Webkit and Mozilla have this problem). I used CAIRO_ANTIALIAS_NONE and a single-color source in the test to get rid of aliasing issues in the output images. This makes some issues slightly less visible, but still fails for all of them. If you want to get a clearer view, disable it and use romedalen.png instead - it has the same size as the red surface. (At least) 3 bugs are at work here: - if _line_exceeds_16_16() triggers for the reference point, the source surface will be misaligned. - the intel driver seems to have an off-by-one bug on my i945 when positioning the source surface, causing black seams at the top (not visible in the test unless using romedalen.png) and on the left of the image. - My Xvfb fails completely in picture up/download in the xlib-fallback path.
2009-11-02build: Add -pthread to real_pthread_CFLAGSChris Wilson2-29/+34
2009-11-02sphinx: Add required pthread libsBenjamin Otte2-3/+3
Try again, this time for real hopefully.
2009-11-02sphinx: Add required pthread libsChris Wilson2-2/+10
Switching to pthread-stubs broke the build for sphinx on unbroken platforms [those that do not unnecessarily link against -lpthreads].
2009-11-02[test] Update upscale test to expose an Xlib failureBenjamin Otte5-1/+3
By filling the background with grey, we can see that Xlib fills areas with black that it shouldn't. Xlib therefore now fails this test.
2009-10-30path: Skip any secondary degenerate line-to segments.Chris Wilson1-3/+10
Only the very first line-to following a move-to can have any significance if degenerate whilst stroking, so skip all others. In other words, 0 0 m 0 0 l stroke produces a capped degenerate path (i.e a dot), 0 0 m 0 0 l 0 0 l stroke produces the same degenerate stroke, and 0 0 m 0 0 l 1 0 l stroke produce a horizontal line.
2009-10-30path: Misclassification of rectilinear after degenerate line-toChris Wilson1-49/+52
Malte Nuhn reported hitting an assertion: cairo-path-stroke.c:1816: _cairo_rectilinear_stroker_line_to: Assertion `a->x == b->x || a->y == b->y' failed. http://bugs.freedesktop.org/show_bug.cgi?id=24797 when stroking an apparently simple path: 0 8.626485 m 0 8.626485 l 5.208333 2.5 l 10.416667 2.5 l 15.625 2.5 l 20.833333 2.5 l 26.041667 2.5 l 31.25 2.5 l 36.458333 2.5 l 41.666667 2.5 l 46.875 2.5 l 52.083333 2.5 l 57.291667 2.5 l 62.5 2.5 l 67.708333 2.5 l 72.916667 2.5 l 78.125 2.5 l 83.333333 2.5 l 88.541667 2.5 l 93.75 2.5 l 98.958333 2.5 l 104.166667 2.5 l 109.375 2.5 l 114.583333 2.5 l 119.791667 2.5 l 125 2.5 l stroke which upon reduction becomes: 0.000000 8.625000 m 5.207031 2.500000 l 125.000000 2.500000 l stroke The bug is that after spotting a repeated line-to we move the previous end-point without reclassifying the path, hence we miss the non-rectilinear step.
2009-10-29Provide a builtin implementation of isspace() and isdigit()Adrian Johnson4-17/+28
The glibc versions are slow in utf8 locales.
2009-10-27xlib: Set has_component_alpha = FALSE for gradient PicturesChris Wilson1-0/+1
Whilst creating the xlib surface wrapper for gradient Pictures, the corresponding attributes require ComponentAlpha disabled.
2009-10-26scaled-font: Fix documentation examples with incorrect derefsChris Wilson1-10/+10
Bug 24730 -- New: misleading use cases in cairo_scaled_font_text_to_glyphs's docs http://bugs.freedesktop.org/show_bug.cgi?id=24730 An apparent copy'n'paste error from the code which has to deal with indirect pointers crept into the documentation for the same functions.
2009-10-26gitignore: Add forgotten cairo-perf-printChris Wilson1-0/+1
2009-10-26perf: Fix comparisonsChris Wilson1-7/+15
The sort order was unstable resulting in incorrect ordering dependent upon libc version.
2009-10-25wideint: Protect 64_32_div for non-HAVE_UINT16_T systemsChris Wilson1-0/+5
Peter Clifton spotted that we failed to properly wrap _cairo_int64_32_div() for systems without a native 64 bit type.
2009-10-23[pattern] Compute zero extents for empty patternsChris Wilson1-3/+24
If the pattern is for example a repeating 0x0 image, then treat it as having zero extents. This should workaround the bug presented here: https://bugs.freedesktop.org/show_bug.cgi?id=24693 Attached PDF crashes evince with a Floating point exception
2009-10-22[meta] Rename cairo_meta_surface_t to cairo_recording_surface_t.M Joonas Pihlaja64-711/+718
The new name is more descriptive than the rather opaque meta surface. Discussed with vigour on the mailing list and #cairo: http://lists.cairographics.org/archives/cairo/2009-July/017571.html
2009-10-21Support component-alpha.Chris Wilson14-134/+234
Within our code base we carried a few hacks to utilize the component alpha capabilities of pixman, whilst not supporting the concept for our own masks. Thus we were setting it upon the pixman_image_t that we passed around through code that was blissfully unaware and indeed the component-alpha property was forgotten (e.g. upgrading glyph masks). The real issue is that without explicit support that a pattern carries subpixel masking information, that information is lost when using that pattern with composite. Again we can look at the example of compositing a sub-pixel glyph mask onto a remote xlib surface for further failure.
2009-10-21[gl] Do not clear internal surfaces.Chris Wilson1-15/+31
Create a scratch surface that will be initialised as required for internal use. External surfaces, i.e. those returned to the user, are cleared as normal.
2009-10-21Make the surface->is_clear logic commonChris Wilson5-54/+68
A nasty surprise whilst profiling is that performing redundant clear operations is extremely painful. We can mitigate this somewhat by tracking the cleared state of surfaces and skipping repeated attempts to clear a surface.
2009-10-21[doc] Add comments on when surfaces are cleared on construction.Chris Wilson1-0/+9
Or perhaps, more importantly, when the contents are left unmodified.
2009-10-20[test] Add surface-pattern-operatorAndrea Canciani7-0/+122
Test the results of compositing ALPHA and COLOR_ALPHA surfaces with different operators.
2009-10-19[test] Update rotate-image-surface-paintChris Wilson8-38/+45
Update this test case so the background is not the default border colour so that we spot when the backend pads out the transformed image surface.
2009-10-19atomic: correct libatomic_ops version of _cairo_atomic_int_cmpxchgLuo Jinghua1-1/+1
AO_compare_and_swap_full() doesn't have the same semantic as _cairo_atomic_int_cmpxchg(). The former returns a TRUE on success FALSE otherwise while the later returns the atomic value.
2009-10-18[gstate] Apply target device offsets to patterns immediatelyBenjamin Otte3-94/+10
Previously target device offsets were applied in cairo-surface.c which could cause bugs when paths were taken as fallbacks, as for example pointed out by ade55037ffa596b690c6a1051394589f76eb1f48 and quick-fixed by 79190d89853958ee8252440d35a662fabf122afd. The quick-fix is now unnecessary and was removed.
2009-10-18[clip] Remove non-existing functions from headerBenjamin Otte1-9/+0
2009-10-18[path] Fix compiler warningsBenjamin Otte1-4/+3
2009-10-18[xlib] Fix compiler warningsBenjamin Otte1-4/+4
2009-10-17[test] Add radial-gradient-sourceChris Wilson5-0/+118
ranma42 found a bug in compositing with a radial gradient using the SOURCE operator with EXTEND_NONE, as exercised here.
2009-10-16[surface] Don't AND in the desired content.Chris Wilson13-62/+10
Gah, that was a horrible mistake. It was a flawed hack to create Pixmaps of the correct depth when cloning patterns for blitting to the xlib backend. However, it had the nasty side-effect of discarding alpha when targeting Window surfaces. The correct solution is to simply correct the Pixmap of the desired depth and render a matching pattern onto the surface - i.e. a reversal the current acquire -> clone. See the forthcoming revised xcb backend on how I should have done it originally.
2009-10-16[image] Clone the format for a similar surface with identical contentChris Wilson1-2/+9
Honour the incoming surface format when we are asked to create a similar surface with identical content. The goal of cairo_surface_create_similar() is to create an intermediate with similar characteristics to the original that can be used in place of the original and be quick to copy to the original. Matching the format for the same content, ensures that the blits between the two need only be a memcpy.
2009-10-16[fallback] Create intermediate surface with same content.Chris Wilson1-5/+7
The goal is to create a similar surface with an identical format to maximise performance in the subsequent blit, e.g. the xlib backend could make the similar surface with an identical depth and so use the core protocol, or the image surface could indeed make an identical copy so that pixman only has to do a fast memcpy. As there is no direct method to specify such a clone, we ask the backend for a similar surface of identical content, and trust that the semantics are clear enough for the intent to obvious.
2009-10-15Increment version to 1.9.5Carl Worth1-1/+1
Just after the 1.9.4 snapshot.
2009-10-15Add mising images to REFERENCE_IMAGES list.Carl Worth1-0/+8
Again, the kind of thing that only gets fixed at release time. But at least we have a nice test for this.
2009-10-15Mark in-fill-empty-trapezoid as an XFAIL test.Carl Worth2-2/+7
Otherwise, it was disrupting my attempts to release a snapshot, (since it doesn't respect CAIRO_TEST_TARGET=" " and not run like most of the tests do).
2009-10-15Update version to 1.9.4Carl Worth1-1/+1
In preparation for the 1.9.4 snapshot.
2009-10-15Remove stale references to non-existant reference images.Carl Worth1-7/+0
This is just one of those things that we don't get right until someone tries running "make distcheck".
2009-10-15NEWS: Update with correct data for 1.9.4 snapshotCarl Worth1-2/+1
2009-10-15[build] Check compiler flags using AC_TRY_LINK instead of AC_TRY_COMPILE.M Joonas Pihlaja1-11/+8
Turns out we were passing suncc warning suppression flags to gcc by mistake since -e<entry point> is actually a valid option for gcc. This caused the -erroff=E_ENUM_TYPE_MISMATCH_ARG and other -erroff options to be passed to the linker. In the normal case of a GNU ld linker this doesn't matter since it ignores bogus entry points, but the GNU gold linker replaces a bogus entry point with NULL. This patch makes the CAIRO_CC_TRY_FLAG() check stricter by testing that the flag doesn't interfere with linking executables.
2009-10-15[surface] Avoid double application of device offset when calling fill()Chris Wilson1-6/+35
_cairo_surface_fallback_paint() attempts to avoid a clipped operation if we can convert the paint into a fill of the clipmask. However by calling _cairo_surface_fill() we incur a double application of device offset to the source, triggering various failures. Company spotted this and managed to extract an excellent minimal test case, test/clip-device-offset. This commit fixes that failure.
2009-10-15[test] Add clip-device-offsetBenjamin Otte5-0/+82
Exercises a bug demonstrated by WebKit with clipping + device offsets.
2009-10-15[build] Link against pthread-stubsChris Wilson7-11/+22
Avoid pulling in the real pthread library if the application is single threaded and not using pthreads, by linking against pthread-stubs instead.
2009-10-15[atomic] Fallback to libatomic-ops-devChris Wilson6-20/+63
Use libatomic-ops-dev in preference to mutex-based atomics, if we do not have the builtin atomic intrinsics available.
2009-10-15[pattern] Compute extents for gradientsChris Wilson1-58/+126
As noted in the comments we could also compute the pattern extents for gradients with CAIRO_EXTEND_NONE under certain circumstances, i.e. radial gradients and device axis aligned linear gradients.
2009-10-02PDF: Fix regression caused by 1ae5a419Adrian Johnson1-4/+8
Bug 24240 acroread prints error message when printing