From 2c34f028a787a7e33e3410f09d6cc00caacf0a08 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 23 Sep 2011 13:37:51 +0100 Subject: [PATCH] test: Exercise scaling from an atlas through a subsurface Signed-off-by: Chris Wilson --- test/Makefile.refs | 3 +- test/Makefile.sources | 1 + test/reference/subsurface-scale.base.ref.png | Bin 0 -> 5216 bytes test/reference/subsurface-scale.ref.png | Bin 0 -> 5216 bytes test/subsurface-scale.c | 93 +++++++++++++++++++ 5 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 test/reference/subsurface-scale.base.ref.png create mode 100644 test/reference/subsurface-scale.ref.png create mode 100644 test/subsurface-scale.c diff --git a/test/Makefile.refs b/test/Makefile.refs index 1abb53365..3a40b4721 100644 --- a/test/Makefile.refs +++ b/test/Makefile.refs @@ -2533,6 +2533,8 @@ REFERENCE_IMAGES = \ reference/subsurface-repeat.ref.png \ reference/subsurface-repeat.traps.argb32.ref.png \ reference/subsurface-repeat.traps.rgb24.ref.png \ + reference/subsurface-scale.base.ref.png \ + reference/subsurface-scale.ref.png \ reference/subsurface-similar-repeat.base.argb32.ref.png \ reference/subsurface-similar-repeat.base.rgb24.ref.png \ reference/subsurface-similar-repeat.ref.png \ @@ -2665,7 +2667,6 @@ REFERENCE_IMAGES = \ reference/text-pattern.quartz.argb32.ref.png \ reference/text-pattern.quartz.rgb24.ref.png \ reference/text-pattern.ref.png \ - reference/text-pattern.rgb24.ref.png \ reference/text-pattern.svg.argb32.ref.png \ reference/text-pattern.svg.rgb24.ref.png \ reference/text-pattern.traps.argb32.ref.png \ diff --git a/test/Makefile.sources b/test/Makefile.sources index b7d216539..f9aa66ccf 100644 --- a/test/Makefile.sources +++ b/test/Makefile.sources @@ -300,6 +300,7 @@ test_sources = \ subsurface-modify-child.c \ subsurface-modify-parent.c \ subsurface-outside-target.c \ + subsurface-scale.c \ subsurface-similar-repeat.c \ surface-finish-twice.c \ surface-pattern.c \ diff --git a/test/reference/subsurface-scale.base.ref.png b/test/reference/subsurface-scale.base.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..41ff4f4301a93a8621db7cfc7ac65b46c778937d GIT binary patch literal 5216 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 NV`^>k#K + */ + +#include "cairo-test.h" + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_t *region[5]; + const char *text = "Cairo"; + int i; + + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_rectangle (cr, 0, 20, 200, 60); + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_fill (cr); + + cairo_set_source_rgb (cr, 0, 0, 0); + + for (i = 0; i < 5; i++) { + cairo_t *cr_region; + cairo_text_extents_t extents; + char buf[2] = { text[i], '\0' }; + + region[i] = cairo_surface_create_for_rectangle (cairo_get_target (cr), + 20 * i, 0, 20, 20); + + cr_region = cairo_create (region[i]); + cairo_surface_destroy (region[i]); + + cairo_select_font_face (cr_region, "@cairo:", + CAIRO_FONT_WEIGHT_NORMAL, + CAIRO_FONT_SLANT_NORMAL); + cairo_set_font_size (cr_region, 20); + cairo_text_extents (cr_region, buf, &extents); + cairo_move_to (cr_region, + 10 - (extents.width/2 + extents.x_bearing), + 10 - (extents.height/2 + extents.y_bearing)); + cairo_show_text (cr_region, buf); + + region[i] = cairo_surface_reference (cairo_get_target (cr_region)); + cairo_destroy (cr_region); + } + + cairo_scale (cr, 2, 2); + for (i = 0; i < 5; i++) { + cairo_set_source_surface (cr, region[5-i-1], 20 * i, 20); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_PAD); + cairo_rectangle (cr, 20*i, 20, 20, 20); + cairo_fill (cr); + } + + for (i = 0; i < 5; i++) { + cairo_set_source_surface (cr, region[5-i-1], 20 * i, 40); + cairo_paint_with_alpha (cr, .5); + } + + for (i = 0; i < 5; i++) + cairo_surface_destroy (region[i]); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (subsurface_scale, + "Tests clipping of both source and destination using subsurfaces", + "subsurface", /* keywords */ + NULL, /* requirements */ + 200, 120, + NULL, draw)