Commit graph

1900 commits

Author SHA1 Message Date
Uli Schlachter
aeba5acbad test: Add a test that maps a huge surface
This test currently fails in the xcb backend if xcb-shm is enabled.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-18 16:34:44 +02:00
Chris Wilson
2220693a40 Introduce cairo_mime_surface_t
The mime surface is a user-callback surface designed for interfacing
cairo with an opaque data source. For instance, in a web browser, the
incoming page may be laid out and rendered to a recording surface before
all the image data has finished being downloaded. In this circumstance
we need to pass a place holder to cairo and to supply the image data
later upon demand.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-15 00:16:09 +01:00
Chris Wilson
6b7539d96b test/xlib-expose-event: Be kinder to recording surfaces
And only create the source image once.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13 20:54:24 +01:00
Chris Wilson
54c8e8ccfc test: Add a couple of variants to line-width-overlap
The bug may be in only the fast-path, but future bugs may lie elsewhere.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13 16:21:08 +01:00
Chris Wilson
829eabfc95 test/line-width: Refactor and tidy
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13 16:21:08 +01:00
Chris Wilson
1ccd269a3f skia: Update to use cairo_backend_t interface
Still hopelessly broken. Requires compiling cairo to use static linking
and then still requires manual linkage to workaround libtool. Lots of
functionality is still absent - we need to either find analogues to some
Cairo operations or implement fallbacks - but it is sufficient to
investigate how Skia functions in direct comparison with Cairo for
tessellation/rasterisation.

Caveat emptor.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13 09:58:02 +01:00
Chris Wilson
ccbd7281b2 test/line-width: Add a non-antialiased variant
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13 09:30:05 +01:00
Chris Wilson
99c129dd13 test: Add record-extend
Exercise the extend modes with a clipped paint, because once upon a time
we had a bug...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-10 14:53:07 +01:00
Uli Schlachter
7b97533221 map-to-image: Handle non-32bpp formats
Fixes: map-all-to-image, map-bit-to-image for image16

Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-08-08 21:06:09 +02:00
Chris Wilson
4236821d11 test: Add unclosed-strokes
Checks that coincident end-points are not converted to joins. It briefly
passed through my mind that was a good thing...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-07 09:02:46 +01:00
Chris Wilson
37e1a1b3ed test: Add a1-sample
Ensures that only a box that covers the centre pixel is filled with
antialiasing disabled.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-07 09:02:46 +01:00
Chris Wilson
61c0f67ee0 test: Add joins-retrace
The complexity in this shape is that the stroke is reversed upon
itself and retraces the same path in the opposite direction.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-06 11:12:23 +01:00
Chris Wilson
93c9d4cefb test: Add an loopy I-bar stroker test
A second relatively simple closed concave shape, all the better for
debugging with.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-06 10:29:08 +01:00
Chris Wilson
b280114c5e test: Add join-star, another stroker exercise
A simple convex shape, useful for debugging.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-06 09:30:54 +01:00
Chris Wilson
3424e91ec7 test: Add a couple of tests to exercise stroking of short tail segments
Are the reference images correct? Discuss.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-05 17:27:59 +01:00
Chris Wilson
dd73fe9262 test: Add world-map from the perf-suite
As we use this a performance benchmark, it behooves us to check that we
are rendering it correctly.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-05 09:59:02 +01:00
Chris Wilson
d356deb182 test: Add a second ring to overlapping-dash-caps
Demonstrate a second artefact when using SQUARE.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-02 15:38:49 +01:00
Chris Wilson
953a4a2e55 test: Add an test case to exercise overlapping caps between dash segments
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-02 14:36:45 +01:00
Chris Wilson
c0407e84e9 test: Extend PDF blend tests to include an opacity mask
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-01 12:08:55 +01:00
Andrea Canciani
e04e368748 Remove useless checks for NULL before freeing
This patch has been generated by the following Coccinelle semantic patch:
// Remove useless checks for NULL before freeing
//
// free (NULL) is a no-op, so there is no need to avoid it

@@
expression E;
@@
+ free (E);
+ E = NULL;
- if (unlikely (E != NULL)) {
-   free(E);
(
-   E = NULL;
|
-   E = 0;
)
   ...
- }

@@
expression E;
@@
+ free (E);
- if (unlikely (E != NULL)) {
-   free (E);
- }
2011-07-31 16:46:36 +02:00
Chris Wilson
b231bb0a0b test: Exercise extend modes with recording patterns
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-31 08:12:54 +01:00
Andrea Canciani
de25fec06b test: Improve horizontal-clip
The bug pointed out by this test now causes failures in xcb and xlib.
2011-07-28 18:11:27 +02:00
Andrea Canciani
80b7a1aa9b test: Update image references
Makefile.refs was missing some images.
2011-07-28 18:11:27 +02:00
Chris Wilson
1b888c4c3a test: Add horizontal clip test
Doesn't actually hit the code path but it should...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-27 19:49:47 +01:00
Chris Wilson
a69335a84e API: map-to-image and create-similar-image
A common requirement is the fast upload of pixel data. In order to
allocate the most appropriate image buffer, we need knowledge of the
destination. The most obvious example is that we could use a
shared-memory region for the image to avoid the transfer cost of
uploading the pixels to the X server. Similarly, gl, win32, quartz...

The other side of the equation is that for manual modification of a
remote surface, it would be more efficient if we can create a similar
image to reduce the transfer costs. This strategy is already followed
for the destination fallbacks and this merely exposes the same
capability for the application fallbacks.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-26 14:55:58 +01:00
Chris Wilson
e4b3f84d4c test: Add clip-intersect
Exercises a bug in the unbounded drawing of an empty polygon...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-24 13:05:24 +01:00
Chris Wilson
4d5c95f629 test: Exercise replaying basic painting paths
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-24 11:50:48 +01:00
Chris Wilson
69e52c6707 tests: Another missing ref, this time clip-disjoint-hatching
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-23 15:51:49 +01:00
Chris Wilson
9b039a65a6 tests: Missing ref images for new recording-surface test
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-23 15:48:10 +01:00
Chris Wilson
c2dada9722 test: Add a paint-with-alpha variant to test clip-boxes fast path
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-23 15:33:14 +01:00
Chris Wilson
5de0232937 test: Extend recording-surface-pattern to include a SOURCE operator test
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-23 14:42:17 +01:00
Chris Wilson
abd8fcc833 test: Expand partial-clip-text
Test partial clipping along each edge.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-23 14:42:17 +01:00
Chris Wilson
b132fae5e8 clip: Rudimentary support for clip-polygon extraction
Step 1, fix the failings sighted recently by tracking clip-boxes as an
explicit property of the clipping and of composition.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-19 21:14:34 +01:00
Andrea Canciani
e5dfac245f build: Fix automake error
b8f43617a9 regressed the generation of
Makefiles. automake 1.10 fails when executed during ./autogen.sh:

automake: cairo_test_suite_OBJECTS should not be defined
test/Makefile.am:76:   while processing program `cairo-test-suite'
2011-07-19 07:26:59 +02:00
Chris Wilson
9ab9ecfdbd test,perf: Another hatching!
This one illustrates the quadratic explosion lurking in the clipping
code.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-19 00:32:45 +01:00
Chris Wilson
3a29365713 tests,perf: Add a hatchings clip-test
A benchmark to test how close we get to reducing paint+clip to an ordinary
fill, and to check correctness.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-18 10:31:25 +01:00
Chris Wilson
27692ca759 test: Add random-clips to stress test clipping
Not sure what the right results are, so refs will come later. The output
looks superficially right, but the *code* is known to be buggy...

(And hopefully this has captured a few of those bugs.)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-16 20:45:43 +01:00
Chris Wilson
b8f43617a9 test: Always compile cairo-test-suite
I'm tired of having to explicitly type make cairo-test-suite.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-16 20:45:03 +01:00
Chris Wilson
2055732ffc tests: Add paint-clip-fill
A false reduction bug found by Taekyun Kim.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-15 11:05:19 +01:00
Chris Wilson
524809759b tests: Add clip-complex-shape
Contributed by Taekyun Kim to exercise a major bug he found in the
treatment of complex clips.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-15 11:05:19 +01:00
Chris Wilson
727a0092d1 test: Test a1 clipping semantics
If I've written the tests correctly, these should produce identical
images as the a1 rasterisation tests.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-13 12:35:51 +01:00
Uli Schlachter
5b8c01ec77 Add a test case that asserts on xcb
Signed-off-by: Uli Schlachter <psychon@znc.in>
2011-07-09 09:42:22 +02:00
Andrea Canciani
a6d4d840d3 test: Fix check-ref-missing
ce3806510f changed the format of
Makefile.refs, breaking the check-ref-missing target.

Ignoring any line not containing a .png file fixes check-ref-missing
and makes it more robust.
2011-06-25 14:35:38 +02:00
Chris Wilson
ce3806510f test: Add a Makefile.refs generator
Generates the lexicographical Makefile.refs based on the *.ref.png and
*.xfail.png checked into git.

This might be nice to automate as a Makefile target. But for now play
safe and do the updates manually.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-25 13:08:17 +01:00
Andrea Canciani
ffdfdf2fa9 test: Merge text-antialias-*
The test-antialias-* tests perform the same operation with just a
different antialias flag. Sharing the code ensures that they are kept
in sync and permits adding new flags combinations easily.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=14268
2011-06-25 10:32:45 +02:00
Andrea Canciani
acfc001685 test: Add extended-blend-solid tests
Unify extended-blend* tests and add a solid pattern version, which
crashes on the win32 backend.

Bug pointed out by Peter Frentrup <peter_frentrup@gmx.de> in
http://lists.cairographics.org/archives/cairo/2011-April/021908.html
2011-06-25 10:19:36 +02:00
Andrea Canciani
5fffa3fae1 test: Ignore \r when parsing test log files
This fixes the log parsing on win32.
2011-06-25 10:19:36 +02:00
Andrea Canciani
0baf009b39 test: Make parsing of log files more solid
The old code considered every even "word" as a key and every odd
"word" as a value when parsing a test log file.
All of the keys end with ':', so restrict with this requirement.
2011-06-25 10:19:36 +02:00
Andrea Canciani
6835421003 test: Fix typo
scrdir -> srcdir
2011-06-25 09:46:46 +02:00
Andrea Canciani
5c798bcf86 test: Improve check-ref-missing
On linux it is impossible to check the missing references because of
argument length constraints:
make: execvp: /bin/bash: Argument list too long

Using a temporary file instead of variable expansion makes it possible
to work around this.

Makefile.refs is now required to be in lexicographical order, which
avoids ordering problems and the risk of duplicated entries (like
clipped-surface.ref.png).
2011-06-25 09:39:52 +02:00