[test] Add test case for a leaky dashed rectangle.
[cairo/haiku.git] / test / extend-repeat-similar.c
blob1a1412561c649f8bf9eadc9cffa8ba00a32fdc59
1 #include "cairo-test.h"
3 const char png_filename[] = "romedalen.png";
5 static cairo_test_draw_function_t draw;
7 cairo_test_t test = {
8 "extend-repeat-similar",
9 "Test CAIRO_EXTEND_REPEAT for surface patterns",
10 256 + 32*2, 192 + 32*2,
11 draw
14 static cairo_surface_t *
15 clone_similar_surface (cairo_surface_t * target, cairo_surface_t *surface)
17 cairo_t *cr;
18 cairo_surface_t *similar;
20 similar = cairo_surface_create_similar (target,
21 cairo_surface_get_content (surface),
22 cairo_image_surface_get_width (surface),
23 cairo_image_surface_get_height (surface));
24 cr = cairo_create (similar);
25 cairo_set_source_surface (cr, surface, 0, 0);
26 cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
27 cairo_paint (cr);
28 cairo_destroy (cr);
30 return similar;
33 static cairo_test_status_t
34 draw (cairo_t *cr, int width, int height)
36 cairo_surface_t *surface;
37 cairo_surface_t *similar;
39 surface = cairo_test_create_surface_from_png (png_filename);
40 similar = clone_similar_surface (cairo_get_group_target (cr), surface);
41 cairo_set_source_surface (cr, similar, 32, 32);
42 cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT);
44 cairo_paint (cr);
46 cairo_surface_destroy (similar);
47 cairo_surface_destroy (surface);
49 return CAIRO_TEST_SUCCESS;
52 int
53 main (void)
55 return cairo_test (&test);