summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-10-19 10:42:51 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2009-10-19 17:21:57 +0100
commit710303ef15b9a1bf73b2b07b7aa51ec816d0aa07 (patch)
tree4683be5a68d8c4d4278ac331c42970976be823ba /test
parentea39f0302a936711043aa6834ba0ab487736572b (diff)
[test] Update rotate-image-surface-paint
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.
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am5
-rw-r--r--test/rotate-image-surface-paint.c78
-rw-r--r--test/rotate-image-surface-paint.pdf.xfail.pngbin217 -> 358 bytes
-rw-r--r--test/rotate-image-surface-paint.ps.ref.pngbin0 -> 236 bytes
-rw-r--r--test/rotate-image-surface-paint.ps2.ref.pngbin212 -> 0 bytes
-rw-r--r--test/rotate-image-surface-paint.ps3.ref.pngbin212 -> 0 bytes
-rw-r--r--test/rotate-image-surface-paint.ref.pngbin191 -> 220 bytes
-rw-r--r--test/rotate-image-surface-paint.svg.xfail.pngbin0 -> 387 bytes
8 files changed, 45 insertions, 38 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index 54c82bd9..b153cdfe 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -816,11 +816,10 @@ REFERENCE_IMAGES = \
rel-path.rgb24.ref.png \
rgb24-ignore-alpha.ref.png \
rotate-image-surface-paint.pdf.xfail.png \
- rotate-image-surface-paint.ps2.ref.png \
- rotate-image-surface-paint.ps3.ref.png \
+ rotate-image-surface-paint.ps.ref.png \
rotate-image-surface-paint.quartz.ref.png \
rotate-image-surface-paint.ref.png \
- rotate-image-surface-paint.svg.ref.png \
+ rotate-image-surface-paint.svg.xfail.png \
rotated-clip.ref.png \
rotated-clip.ps.ref.png \
rotated-clip.xlib.ref.png \
diff --git a/test/rotate-image-surface-paint.c b/test/rotate-image-surface-paint.c
index a2db1b0c..f592d630 100644
--- a/test/rotate-image-surface-paint.c
+++ b/test/rotate-image-surface-paint.c
@@ -29,55 +29,63 @@
#define SIZE 20
#define PAD 2
-static cairo_test_status_t
-draw (cairo_t *cr, int width, int height)
+static cairo_pattern_t *
+create_image_source (int size)
{
cairo_surface_t *surface;
- int surface_size = sqrt ((SIZE - 2*PAD)*(SIZE - 2*PAD)/2);
- cairo_t *cr_surface;
+ cairo_pattern_t *pattern;
+ cairo_t *cr;
/* Create an image surface with my favorite four colors in each
* quadrant. */
- surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
- surface_size, surface_size);
- cr_surface = cairo_create (surface);
+ surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, size, size);
+ cr = cairo_create (surface);
cairo_surface_destroy (surface);
- cairo_set_source_rgb (cr_surface, 1, 1, 1);
- cairo_rectangle (cr_surface,
- 0, 0,
- surface_size / 2, surface_size / 2);
- cairo_fill (cr_surface);
- cairo_set_source_rgb (cr_surface, 1, 0, 0);
- cairo_rectangle (cr_surface,
- surface_size / 2, 0,
- surface_size / 2, surface_size / 2);
- cairo_fill (cr_surface);
- cairo_set_source_rgb (cr_surface, 0, 1, 0);
- cairo_rectangle (cr_surface,
- 0, surface_size / 2,
- surface_size / 2, surface_size / 2);
- cairo_fill (cr_surface);
- cairo_set_source_rgb (cr_surface, 0, 0, 1);
- cairo_rectangle (cr_surface,
- surface_size / 2, surface_size / 2,
- surface_size / 2, surface_size / 2);
- cairo_fill (cr_surface);
-
- /* First paint opaque background (black) so we don't need separate
- * ARGB32 and RGB24 reference images. */
- cairo_set_source_rgb (cr, 0, 0, 0); /* black */
+ cairo_set_source_rgb (cr, 1, 1, 1);
+ cairo_rectangle (cr, 0, 0, size / 2, size / 2);
+ cairo_fill (cr);
+
+ cairo_set_source_rgb (cr, 1, 0, 0);
+ cairo_rectangle (cr, size / 2, 0, size - size / 2, size / 2);
+ cairo_fill (cr);
+
+ cairo_set_source_rgb (cr, 0, 1, 0);
+ cairo_rectangle (cr, 0, size / 2, size / 2, size - size / 2);
+ cairo_fill (cr);
+
+ cairo_set_source_rgb (cr, 0, 0, 1);
+ cairo_rectangle (cr, size / 2, size / 2, size - size / 2, size - size / 2);
+ cairo_fill (cr);
+
+ pattern = cairo_pattern_create_for_surface (cairo_get_target (cr));
+ cairo_destroy (cr);
+
+ return pattern;
+}
+
+static cairo_test_status_t
+draw (cairo_t *cr, int width, int height)
+{
+ cairo_pattern_t *source;
+ int surface_size = sqrt ((SIZE - 2*PAD)*(SIZE - 2*PAD)/2);
+
+ /* Use a gray (neutral) background, so we can spot if the backend pads
+ * with any other colour.
+ */
+ cairo_set_source_rgb (cr, .5, .5, .5);
cairo_paint (cr);
cairo_translate(cr, SIZE/2, SIZE/2);
cairo_rotate (cr, M_PI / 4.0);
cairo_translate (cr, -surface_size/2, -surface_size/2);
- cairo_set_source_surface (cr, cairo_get_target (cr_surface), 0, 0);
- cairo_destroy (cr_surface);
- cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST);
- cairo_paint (cr);
+ source = create_image_source (surface_size);
+ cairo_pattern_set_filter (source, CAIRO_FILTER_NEAREST);
+ cairo_set_source(cr, source);
+ cairo_pattern_destroy (source);
+ cairo_paint (cr);
return CAIRO_TEST_SUCCESS;
}
diff --git a/test/rotate-image-surface-paint.pdf.xfail.png b/test/rotate-image-surface-paint.pdf.xfail.png
index bf0bb0b0..1929da26 100644
--- a/test/rotate-image-surface-paint.pdf.xfail.png
+++ b/test/rotate-image-surface-paint.pdf.xfail.png
Binary files differ
diff --git a/test/rotate-image-surface-paint.ps.ref.png b/test/rotate-image-surface-paint.ps.ref.png
new file mode 100644
index 00000000..4e46364e
--- /dev/null
+++ b/test/rotate-image-surface-paint.ps.ref.png
Binary files differ
diff --git a/test/rotate-image-surface-paint.ps2.ref.png b/test/rotate-image-surface-paint.ps2.ref.png
deleted file mode 100644
index dd725064..00000000
--- a/test/rotate-image-surface-paint.ps2.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/rotate-image-surface-paint.ps3.ref.png b/test/rotate-image-surface-paint.ps3.ref.png
deleted file mode 100644
index dd725064..00000000
--- a/test/rotate-image-surface-paint.ps3.ref.png
+++ /dev/null
Binary files differ
diff --git a/test/rotate-image-surface-paint.ref.png b/test/rotate-image-surface-paint.ref.png
index bd30da6e..06a48200 100644
--- a/test/rotate-image-surface-paint.ref.png
+++ b/test/rotate-image-surface-paint.ref.png
Binary files differ
diff --git a/test/rotate-image-surface-paint.svg.xfail.png b/test/rotate-image-surface-paint.svg.xfail.png
new file mode 100644
index 00000000..4040784b
--- /dev/null
+++ b/test/rotate-image-surface-paint.svg.xfail.png
Binary files differ