diff options
Diffstat (limited to 'test/extend-pad.c')
-rw-r--r-- | test/extend-pad.c | 50 |
1 files changed, 19 insertions, 31 deletions
diff --git a/test/extend-pad.c b/test/extend-pad.c index ed4ffd02..15a2079b 100644 --- a/test/extend-pad.c +++ b/test/extend-pad.c @@ -34,52 +34,40 @@ static cairo_test_status_t draw (cairo_t *cr, int width, int height) { cairo_surface_t *surface; - cairo_t * cr_surface; - int surface_size = (SIZE - 30) / 10; + cairo_t *cr_surface; - cairo_set_source_rgba (cr, 0, 0, 0, 1); - cairo_rectangle (cr, 0, 0, SIZE, SIZE); - cairo_fill (cr); - - /* Create an image surface with my favorite four colors in each + /* Create a 4-pixel image surface with my favorite four colors in each * quadrant. */ - surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, - surface_size, surface_size); + surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 2, 2); cr_surface = cairo_create (surface); cairo_surface_destroy (surface); + /* upper-left = white */ cairo_set_source_rgb (cr_surface, 1, 1, 1); - cairo_rectangle (cr_surface, - 0, 0, - surface_size / 2, surface_size / 2); + cairo_rectangle (cr_surface, 0, 0, 1, 1); cairo_fill (cr_surface); + + /* upper-right = red */ cairo_set_source_rgb (cr_surface, 1, 0, 0); - cairo_rectangle (cr_surface, - surface_size / 2, 0, - surface_size / 2, surface_size / 2); + cairo_rectangle (cr_surface, 1, 0, 1, 1); cairo_fill (cr_surface); + + /* lower-left = green */ cairo_set_source_rgb (cr_surface, 0, 1, 0); - cairo_rectangle (cr_surface, - 0, surface_size / 2, - surface_size / 2, surface_size / 2); + cairo_rectangle (cr_surface, 0, 1, 1, 1); cairo_fill (cr_surface); + + /* lower-right = blue */ 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_rectangle (cr_surface, 1, 1, 1, 1); cairo_fill (cr_surface); - cairo_scale (cr, 10, 10); - cairo_set_source_surface (cr, cairo_get_target (cr_surface), 1.5, 1.5); + /* Now use extend pad to cover the entire surface with those 4 colors */ + cairo_set_source_surface (cr, cairo_get_target (cr_surface), + width/2 - 1, + height/2 - 1); cairo_destroy (cr_surface); - - /* Using EXTEND_REFLECT makes this test pass for image and xlib backends */ - /*cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REFLECT);*/ - cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_PAD); - cairo_rectangle (cr, 1.5, 1.5, 6, 6); - cairo_clip (cr); - cairo_paint (cr); return CAIRO_TEST_SUCCESS; @@ -87,7 +75,7 @@ draw (cairo_t *cr, int width, int height) CAIRO_TEST (extend_pad, "Test CAIRO_EXTEND_PAD for surface patterns", - "XFAIL=!image,pdf,ps,svg extend", /* keywords */ + "extend", /* keywords */ NULL, /* requirements */ SIZE, SIZE, NULL, draw) |