1 #include "cairo-test.h"
3 const char png_filename
[] = "romedalen.png";
5 static cairo_test_draw_function_t draw
;
8 "extend-repeat-similar",
9 "Test CAIRO_EXTEND_REPEAT for surface patterns",
10 256 + 32*2, 192 + 32*2,
14 static cairo_surface_t
*
15 clone_similar_surface (cairo_surface_t
* target
, cairo_surface_t
*surface
)
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
);
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
);
46 cairo_surface_destroy (similar
);
47 cairo_surface_destroy (surface
);
49 return CAIRO_TEST_SUCCESS
;
55 return cairo_test (&test
);