diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-10-19 10:42:51 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2009-10-19 17:21:57 +0100 |
commit | 710303ef15b9a1bf73b2b07b7aa51ec816d0aa07 (patch) | |
tree | 4683be5a68d8c4d4278ac331c42970976be823ba /test | |
parent | ea39f0302a936711043aa6834ba0ab487736572b (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.am | 5 | ||||
-rw-r--r-- | test/rotate-image-surface-paint.c | 78 | ||||
-rw-r--r-- | test/rotate-image-surface-paint.pdf.xfail.png | bin | 217 -> 358 bytes | |||
-rw-r--r-- | test/rotate-image-surface-paint.ps.ref.png | bin | 0 -> 236 bytes | |||
-rw-r--r-- | test/rotate-image-surface-paint.ps2.ref.png | bin | 212 -> 0 bytes | |||
-rw-r--r-- | test/rotate-image-surface-paint.ps3.ref.png | bin | 212 -> 0 bytes | |||
-rw-r--r-- | test/rotate-image-surface-paint.ref.png | bin | 191 -> 220 bytes | |||
-rw-r--r-- | test/rotate-image-surface-paint.svg.xfail.png | bin | 0 -> 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 Binary files differindex bf0bb0b0..1929da26 100644 --- a/test/rotate-image-surface-paint.pdf.xfail.png +++ b/test/rotate-image-surface-paint.pdf.xfail.png diff --git a/test/rotate-image-surface-paint.ps.ref.png b/test/rotate-image-surface-paint.ps.ref.png Binary files differnew file mode 100644 index 00000000..4e46364e --- /dev/null +++ b/test/rotate-image-surface-paint.ps.ref.png diff --git a/test/rotate-image-surface-paint.ps2.ref.png b/test/rotate-image-surface-paint.ps2.ref.png Binary files differdeleted file mode 100644 index dd725064..00000000 --- a/test/rotate-image-surface-paint.ps2.ref.png +++ /dev/null diff --git a/test/rotate-image-surface-paint.ps3.ref.png b/test/rotate-image-surface-paint.ps3.ref.png Binary files differdeleted file mode 100644 index dd725064..00000000 --- a/test/rotate-image-surface-paint.ps3.ref.png +++ /dev/null diff --git a/test/rotate-image-surface-paint.ref.png b/test/rotate-image-surface-paint.ref.png Binary files differindex bd30da6e..06a48200 100644 --- a/test/rotate-image-surface-paint.ref.png +++ b/test/rotate-image-surface-paint.ref.png diff --git a/test/rotate-image-surface-paint.svg.xfail.png b/test/rotate-image-surface-paint.svg.xfail.png Binary files differnew file mode 100644 index 00000000..4040784b --- /dev/null +++ b/test/rotate-image-surface-paint.svg.xfail.png |