1 #include "cairo-test.h"
3 static const char *png_filename = "romedalen.png";
5 static cairo_surface_t *
6 clone_similar_surface (cairo_surface_t * target, cairo_surface_t *surface)
9 cairo_surface_t *similar;
11 similar = cairo_surface_create_similar (target,
12 cairo_surface_get_content (surface),
13 cairo_image_surface_get_width (surface),
14 cairo_image_surface_get_height (surface));
15 cr = cairo_create (similar);
16 cairo_surface_destroy (similar);
17 cairo_set_source_surface (cr, surface, 0, 0);
18 cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
20 similar = cairo_surface_reference (cairo_get_target (cr));
26 static cairo_test_status_t
27 draw (cairo_t *cr, int width, int height)
29 const cairo_test_context_t *ctx = cairo_test_get_context (cr);
30 cairo_surface_t *surface;
31 cairo_surface_t *similar;
33 surface = cairo_test_create_surface_from_png (ctx, png_filename);
34 similar = clone_similar_surface (cairo_get_group_target (cr), surface);
35 cairo_set_source_surface (cr, similar, 32, 32);
36 cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REFLECT);
40 cairo_surface_destroy (similar);
41 cairo_surface_destroy (surface);
43 return CAIRO_TEST_SUCCESS;
46 CAIRO_TEST (extend_reflect_similar,
47 "Test CAIRO_EXTEND_REFLECT for surface patterns",
48 "extend", /* keywords */
49 NULL, /* requirements */
50 256 + 32*2, 192 + 32*2,