From 710303ef15b9a1bf73b2b07b7aa51ec816d0aa07 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 19 Oct 2009 10:42:51 +0100 Subject: [PATCH] [test] Update rotate-image-surface-paint Update this test case so the background is not the default border colour so that we spot when the backend pads out the transformed image surface. --- test/Makefile.am | 5 +- test/rotate-image-surface-paint.c | 76 ++++++++++-------- test/rotate-image-surface-paint.pdf.xfail.png | Bin 217 -> 358 bytes test/rotate-image-surface-paint.ps.ref.png | Bin 0 -> 236 bytes test/rotate-image-surface-paint.ps2.ref.png | Bin 212 -> 0 bytes test/rotate-image-surface-paint.ps3.ref.png | Bin 212 -> 0 bytes test/rotate-image-surface-paint.ref.png | Bin 191 -> 220 bytes test/rotate-image-surface-paint.svg.xfail.png | Bin 0 -> 387 bytes 8 files changed, 44 insertions(+), 37 deletions(-) create mode 100644 test/rotate-image-surface-paint.ps.ref.png delete mode 100644 test/rotate-image-surface-paint.ps2.ref.png delete mode 100644 test/rotate-image-surface-paint.ps3.ref.png create mode 100644 test/rotate-image-surface-paint.svg.xfail.png diff --git a/test/Makefile.am b/test/Makefile.am index 54c82bd90..b153cdfe8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -816,11 +816,10 @@ REFERENCE_IMAGES = \ rel-path.rgb24.ref.png \ rgb24-ignore-alpha.ref.png \ rotate-image-surface-paint.pdf.xfail.png \ - rotate-image-surface-paint.ps2.ref.png \ - rotate-image-surface-paint.ps3.ref.png \ + rotate-image-surface-paint.ps.ref.png \ rotate-image-surface-paint.quartz.ref.png \ rotate-image-surface-paint.ref.png \ - rotate-image-surface-paint.svg.ref.png \ + rotate-image-surface-paint.svg.xfail.png \ rotated-clip.ref.png \ rotated-clip.ps.ref.png \ rotated-clip.xlib.ref.png \ diff --git a/test/rotate-image-surface-paint.c b/test/rotate-image-surface-paint.c index a2db1b0ce..f592d6301 100644 --- a/test/rotate-image-surface-paint.c +++ b/test/rotate-image-surface-paint.c @@ -29,55 +29,63 @@ #define SIZE 20 #define PAD 2 -static cairo_test_status_t -draw (cairo_t *cr, int width, int height) +static cairo_pattern_t * +create_image_source (int size) { cairo_surface_t *surface; - int surface_size = sqrt ((SIZE - 2*PAD)*(SIZE - 2*PAD)/2); - cairo_t *cr_surface; + cairo_pattern_t *pattern; + cairo_t *cr; /* Create an image surface with my favorite four colors in each * quadrant. */ - surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, - surface_size, surface_size); - cr_surface = cairo_create (surface); + surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, size, size); + cr = cairo_create (surface); cairo_surface_destroy (surface); - cairo_set_source_rgb (cr_surface, 1, 1, 1); - cairo_rectangle (cr_surface, - 0, 0, - surface_size / 2, surface_size / 2); - cairo_fill (cr_surface); - cairo_set_source_rgb (cr_surface, 1, 0, 0); - cairo_rectangle (cr_surface, - surface_size / 2, 0, - surface_size / 2, surface_size / 2); - cairo_fill (cr_surface); - cairo_set_source_rgb (cr_surface, 0, 1, 0); - cairo_rectangle (cr_surface, - 0, surface_size / 2, - surface_size / 2, surface_size / 2); - cairo_fill (cr_surface); - 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_fill (cr_surface); + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_rectangle (cr, 0, 0, size / 2, size / 2); + cairo_fill (cr); - /* First paint opaque background (black) so we don't need separate - * ARGB32 and RGB24 reference images. */ - cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + cairo_set_source_rgb (cr, 1, 0, 0); + cairo_rectangle (cr, size / 2, 0, size - size / 2, size / 2); + cairo_fill (cr); + + cairo_set_source_rgb (cr, 0, 1, 0); + cairo_rectangle (cr, 0, size / 2, size / 2, size - size / 2); + cairo_fill (cr); + + cairo_set_source_rgb (cr, 0, 0, 1); + cairo_rectangle (cr, size / 2, size / 2, size - size / 2, size - size / 2); + cairo_fill (cr); + + pattern = cairo_pattern_create_for_surface (cairo_get_target (cr)); + cairo_destroy (cr); + + return pattern; +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_pattern_t *source; + int surface_size = sqrt ((SIZE - 2*PAD)*(SIZE - 2*PAD)/2); + + /* Use a gray (neutral) background, so we can spot if the backend pads + * with any other colour. + */ + cairo_set_source_rgb (cr, .5, .5, .5); cairo_paint (cr); cairo_translate(cr, SIZE/2, SIZE/2); cairo_rotate (cr, M_PI / 4.0); cairo_translate (cr, -surface_size/2, -surface_size/2); - cairo_set_source_surface (cr, cairo_get_target (cr_surface), 0, 0); - cairo_destroy (cr_surface); - cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); - cairo_paint (cr); + source = create_image_source (surface_size); + cairo_pattern_set_filter (source, CAIRO_FILTER_NEAREST); + cairo_set_source(cr, source); + cairo_pattern_destroy (source); + cairo_paint (cr); return CAIRO_TEST_SUCCESS; } diff --git a/test/rotate-image-surface-paint.pdf.xfail.png b/test/rotate-image-surface-paint.pdf.xfail.png index bf0bb0b0de2a52d74b7986660ddd521ec58ea02f..1929da2667ff53c0f921b7f27dc817b503e19571 100644 GIT binary patch delta 314 zcmV-A0mc5=0p@7tgSOSf&mE8#$L*Y zwY3oKFmwD%3N!I}Jf7F<=ZwV6ms~DCPN#F&XewtC16ZxzXQBYU04O$j`1z#LiU0rr M07*qoM6N<$g2UUGvH$=8 delta 172 zcmV;d08{_w0@(qOHGcq(NklB3f&i84;&tX4Cdw-XGy~w_f+6Qnv z<>cq>(GP8Oai*&_b4e;s1MpnKO+I^i*kf5;UCWbv__cI5x+Uua6qRr0e)LzqhwC2v adE5Y$&wF?_AN$Jy0000yVtc(bzwLhW)FLJ+>$rlXP-vaxv&WKkzE4G> h4JIo!?cb}CAFo5=$U{V$0xIvhWK7h-;gTuJ?igf{%@@M=TxQpV_$s(I*P&5)z4*} HQ$iB}ATLdF diff --git a/test/rotate-image-surface-paint.ps3.ref.png b/test/rotate-image-surface-paint.ps3.ref.png deleted file mode 100644 index dd725064c1f34f9a1773f35b5075537bf03e27d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VTavfC3&Vd9T(EcfWS~f=r;B5V zMeoxo8~GR%Iho5=$U{V$0xIvhWK7h-;gTuJ?igf{%@@M=TxQpV_$s(I*P&5)z4*} HQ$iB}ATLdF diff --git a/test/rotate-image-surface-paint.ref.png b/test/rotate-image-surface-paint.ref.png index bd30da6e193766773db4f87486261a2f27d63b5d..06a482005bdeb9e2cee6b4e7c70c6773fa689527 100644 GIT binary patch delta 174 zcmV;f08#(H0o(zQHh+;xL_t(IjkVHC4!|G?1W=~wy@8Y4jn#^SZA|J;@CklkX0khu zZTTlwRaM==jV(OK0c4(Fx|9YZHZ=%H6+ov)9k6LlM~^xUzT+mN$FR}UA5?Y^a)jn@ z>;wx6q|9Ltn0S=C{@{IXJ9-SDdCxAadyrNk#n(?&z4^x=|0kYdDU~UHf=r6YnI+cj crSg|?0U9JYDPy8CNB{r;07*qoM6N<$g11ymy8r+H delta 145 zcmV;C0B-->0lxu|Hh*+UL_t(Ijop*M3cxT3LzDmi=avkI)ZHKD~^oJj_tG|(iwPXSP8Hf=9H zRdS4UYD>+0d`EX1<^%Y)B*`DJ$)7&PPtOI~swV}7;~sDT015yANkvXXu0mjf*wR7u diff --git a/test/rotate-image-surface-paint.svg.xfail.png b/test/rotate-image-surface-paint.svg.xfail.png new file mode 100644 index 0000000000000000000000000000000000000000..4040784b9897c3dcd6a3b4841a13ffced96f6a72 GIT binary patch literal 387 zcmV-}0et?6P)E8+7d4nz?J= zpb-xN69X)rqb#9IRwSej2xXyz6EH3yHBxWFr~BkPbas?dxHax>mj8)`5JHHVg8LcC z7}MWLlKkOjQ!>V;?jOOeXgk^aF}&cMo99@>JGKMBVdTSbt<=N${N;I*I2LivasVmP z-iINS0bUqYg|S7Jzs#Jm%#_z=Tcuhn$?}|K*#HNJfR=PfU!ZiyuV%WW z^biDtw%x|{kAC45^|J2dwSNwPBh@mJvLeKux%Y3+oizQ1?oA2nZ@Z1_e?AuPPj$Vt zM%~kmBb|o0X3|~~0!SHATAE2pODQ7|t9ER|2&qi3B_Y-C%JJRq{EWoRt0JV@Za)C5 hR^L-KlX#x#_yH%KffxSn2b}-_002ovPDHLkV1n5Bwp0KB literal 0 HcmV?d00001