[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.
This commit is contained in:
Chris Wilson 2009-10-19 10:42:51 +01:00
parent ea39f0302a
commit 710303ef15
8 changed files with 44 additions and 37 deletions

View file

@ -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 \

View file

@ -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);
cairo_set_source_rgb (cr, 1, 1, 1);
cairo_rectangle (cr, 0, 0, size / 2, size / 2);
cairo_fill (cr);
/* 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, 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;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B