From bef621e870e3d4038e00ed56ad40d726d5a7ca77 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 25 Apr 2006 01:56:51 -0700 Subject: [PATCH] Augment tests to do better testing of paths/images with alpha. Add a new cairo_test_paint_checkered function so that tests that draw with alpha can easily put an easy-to-see checkered background in place first. Add new tests caps-joins-alpha and paint-source-alpha that do simple tests of strokes and image painting with source pattern alpha. Also, add the checkered background to paint-with-alpha for consistency. --- test/.gitignore | 2 + test/Makefile.am | 8 +++ test/cairo-test.c | 45 ++++++++++++ test/cairo-test.h | 3 + test/caps-joins-alpha-ref.png | Bin 0 -> 2434 bytes test/caps-joins-alpha-rgb24-ref.png | Bin 0 -> 2283 bytes test/caps-joins-alpha.c | 94 ++++++++++++++++++++++++++ test/paint-source-alpha-ref.png | Bin 0 -> 258 bytes test/paint-source-alpha-rgb24-ref.png | Bin 0 -> 248 bytes test/paint-source-alpha.c | 67 ++++++++++++++++++ test/paint-with-alpha-ref.png | Bin 164 -> 268 bytes test/paint-with-alpha-rgb24-ref.png | Bin 142 -> 255 bytes test/paint-with-alpha.c | 9 ++- 13 files changed, 225 insertions(+), 3 deletions(-) create mode 100644 test/caps-joins-alpha-ref.png create mode 100644 test/caps-joins-alpha-rgb24-ref.png create mode 100644 test/caps-joins-alpha.c create mode 100644 test/paint-source-alpha-ref.png create mode 100644 test/paint-source-alpha-rgb24-ref.png create mode 100644 test/paint-source-alpha.c diff --git a/test/.gitignore b/test/.gitignore index c124fc60b..5ec879868 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -4,6 +4,7 @@ Makefile Makefile.in a8-mask caps-joins +caps-joins-alpha caps-sub-paths clip-all clip-fill-rule @@ -44,6 +45,7 @@ nil-surface operator-clear operator-source paint +paint-source-alpha paint-with-alpha path-data pattern-get-type diff --git a/test/Makefile.am b/test/Makefile.am index 044dc08c1..d348ab218 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -2,6 +2,7 @@ TESTS = \ a8-mask \ caps-joins \ +caps-joins-alpha \ caps-sub-paths \ clip-all \ clip-fill-rule \ @@ -36,6 +37,7 @@ nil-surface \ operator-clear \ operator-source \ paint \ +paint-source-alpha \ paint-with-alpha \ path-data \ pattern-get-type \ @@ -113,6 +115,8 @@ a8-mask-rgb24-ref.png \ caps-joins-ps-rgb24-ref.png \ caps-joins-ref.png \ caps-joins-rgb24-ref.png \ +caps-joins-alpha-ref.png \ +caps-joins-alpha-rgb24-ref.png \ caps-sub-paths-ref.png \ caps-sub-paths-rgb24-ref.png \ clip-all-ref.png \ @@ -178,6 +182,8 @@ operator-source-ref.png \ operator-source-rgb24-ref.png \ paint-ref.png \ paint-rgb24-ref.png \ +paint-source-alpha-ref.png \ +paint-source-alpha-rgb24-ref.png \ paint-with-alpha-ref.png \ paint-with-alpha-rgb24-ref.png \ path-data-ref.png \ @@ -309,6 +315,7 @@ endif # from autogen.sh. My, but this is painful... a8_mask_LDADD = $(LDADDS) caps_joins_LDADD = $(LDADDS) +caps_joins_alpha_LDADD = $(LDADDS) caps_sub_paths_LDADD = $(LDADDS) clip_all_LDADD = $(LDADDS) clip_fill_rule_LDADD = $(LDADDS) @@ -345,6 +352,7 @@ nil_surface_LDADD = $(LDADDS) operator_clear_LDADD = $(LDADDS) operator_source_LDADD = $(LDADDS) paint_LDADD = $(LDADDS) +paint_source_alpha_LDADD = $(LDADDS) paint_with_alpha_LDADD = $(LDADDS) path_data_LDADD = $(LDADDS) pattern_get_type_LDADD = $(LDADDS) diff --git a/test/cairo-test.c b/test/cairo-test.c index 00d3fd6c8..c61cb0e4c 100644 --- a/test/cairo-test.c +++ b/test/cairo-test.c @@ -1803,3 +1803,48 @@ cairo_test_create_pattern_from_png (const char *filename) return pattern; } + +static cairo_status_t +_draw_check (cairo_surface_t *surface, int width, int height) +{ + cairo_t *cr; + cairo_status_t status; + + cr = cairo_create (surface); + cairo_set_source_rgb (cr, 0.75, 0.75, 0.75); /* light gray */ + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0.25, 0.25, 0.25); /* dark gray */ + cairo_rectangle (cr, width / 2, 0, width / 2, height / 2); + cairo_rectangle (cr, 0, height / 2, width / 2, height / 2); + cairo_fill (cr); + + status = cairo_status (cr); + + cairo_destroy (cr); + + return status; +} + +cairo_status_t +cairo_test_paint_checkered (cairo_t *cr) +{ + cairo_status_t status; + cairo_surface_t *check; + + check = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 12, 12); + status = _draw_check (check, 12, 12); + if (status) + return status; + + cairo_save (cr); + cairo_set_source_surface (cr, check, 0, 0); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT); + cairo_paint (cr); + cairo_restore (cr); + + cairo_surface_destroy (check); + + return CAIRO_STATUS_SUCCESS; +} diff --git a/test/cairo-test.h b/test/cairo-test.h index 1ba5e5f46..ea5101d3a 100644 --- a/test/cairo-test.h +++ b/test/cairo-test.h @@ -138,6 +138,9 @@ cairo_test_create_surface_from_png (const char *filename); cairo_pattern_t * cairo_test_create_pattern_from_png (const char *filename); +cairo_status_t +cairo_test_paint_checkered (cairo_t *cr); + void xasprintf (char **strp, const char *fmt, ...); diff --git a/test/caps-joins-alpha-ref.png b/test/caps-joins-alpha-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..85cccf24240bf638e65b7f5aa20adf07d1839ebd GIT binary patch literal 2434 zcmZWrdpy(YA77C~j>@G_9C6T=+^@|MaggN_8XL>yu)~a&`z$LJx=5ulor#hNg2xOPO zhl`VcDs8s7Endq_ovTwuGm^a2d8#C|wf&Kh>!fS`B&y{vj@?8+woGu%W@d|hz*S2p zo`1AQa3##|K(wr)yV~KLiOxOaV~6+FeY6N$aM`#2Mzaw@H}7_E>rW}Gf^L3>V}SHa zvPH{3OP@)r1Zvu{sF!-6p|P>abSy_t`=r!()emy%j1Lv^o4kSwM9C>^d#SDw0%ED3 zur?PG81!nd;OK3Q?}5z0->f|=v+o@6q5f!%qQjF~3Z}#Kx2qcDP})P4UW>PZ)*;oY zaB~sG6<(9t!ggJo8*Py$&;i4)=@=WYLt|94%jV$4t9KORtF$5RHuSTYl|A(?>o2RV zHC`<^C4`WSaM~mUP>%d@K(Hkk+PE1+MBy~ z_I`@UHXYGX{;?lBYrIL+3fLrWOqwVaZamDws`} zoN80@R+mZQ(z0b`pBq1_cE9M$yyAzx_X7@^eXsXzl2&M0^FKtV;@l-0@Q{tU%6m_W3)9L`3C?lsj}cD*7I^wWd1F>*)AZ z6pd)Hhh}^i{#Fr>+rx@09@7q=>~HIPHm4>2cnz$+IQC)iNN7ms9?LtE-AT74RSDdB2Sj|0HhB2Q&x zXU%&##$1@HUBNB?6R#Z7qc?bDKA3->5L}DcwAuQS#XCMxWSc_P%&mO3l+I#}M3j52 zaU1eT=%EvN3_%ZHl-%Y`mP)YDi|cgUd*SclN$S`$d-7Nq0SznYflsg&ji*r|P-D}4 z?ofpHl;33mj^ZS*>p52O(sH}nWXZYKWg5Z zfBYC*^MTYjS7Pe>{$61sT1(BNk>z_=9bNUh(K8g6ramOBzbA*TB5_pz0v1CjKbegJ zF=i18V8}FKks6DWS>btQ1V9ljYEK#gZ&KChs^uoJd`v7IK~}!}(-D)7>$u^K;l5Zv zPE(3f?_h$aB>N}0Y?Vx;*1;#pvsD^?m#hr)p0h$VRZ^UD%1xCo*ohyR zx^0BVvwD5r!O#`Rr~JO7Ruz=^rpe=6y&N9kg>j>?8Ts_&;o;%_*n%kg41Xc2_PC*} zm=X{k*-~)L%J9kni?mC(50AfNg*|ia4ufA(iu3YI$I)%_LR;!#Nx>+9#$Yo%X6XT6 zwN)Alb~Y3ko^CjsR(mwoSUJ|%8x>1eFLr#+f`bzMoK?5X^IE0ykGDb5Rh3BKXNE(r zAB7$;0K*NtJ>*pIfTuM`_3v4@zk=xGie>-X_@k=^ZXLNqpSVn)FzW?kY`#MUqJ?0x zP<-n4L6kNq`LXnSn4sFJ{VsT1l9&==>4k;IpsPG(X5S%{Nt^l8C6l{94FLv~rq_LF zaW1-7f%Tasa_4WPyJZ#`H~m<9P6dbUYX_S5CKLD@lsYrt1;Sn4Gp6HGjh06}3$?=I zagv62Ilbzbqfm0Q@i;?rLIJ<4C-!^>&Fm>mx1QX?@O z`b00g5y;W-gP^;vyhmvlf?uIgo<9*|(5_5UXBXOqo%Ogw;EtpDf!FE+naWvNtDfX>o^rImD8VI>o$S>N?w7*WeQQullElrJ<@K0s8HcQlU4SA@wnH7qo!PolL zBQ0!qupxXH?}eY^09gzUd}z=#Zc@6yQ`2Nm%&&Hj!nmsY>ZkIKbq)&OCXQq3++AF> z*qFd){yZkhv?}>oN_O1sxOW*DTNi2%ssw5t>s_3Qgu;z|Rs#w|CY5gYkG>EJeLl#1 zR=Zia1A2bgG${E>WPrrUsH8x=DSnNy+nKbPPEMxi^n?}b($HsJ^58ENY7 zH{?$8&AELqj%_<}@*AmeFU5cy!VUhwHVPyave$N9$|^P8_I8h|0Yo$NrR<55&SHw| mLBgw!+z1Z1`+pwt$tEB_b473W?`9x{f_S)kxzsp^X8sFaXxzjA literal 0 HcmV?d00001 diff --git a/test/caps-joins-alpha-rgb24-ref.png b/test/caps-joins-alpha-rgb24-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..60163dd4146b55168351c3fcbe3a0de2dbc132af GIT binary patch literal 2283 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 + */ + +#include "cairo-test.h" + +#define LINE_WIDTH 10. +#define SIZE (5 * LINE_WIDTH) +#define PAD (2 * LINE_WIDTH) + +cairo_test_t test = { + "caps-joins-alpha", + "Test caps and joins with some source alpha", + 3 * (PAD + SIZE) + PAD, + PAD + SIZE + PAD +}; + +static void +make_path (cairo_t *cr) +{ + cairo_move_to (cr, 0., 0.); + cairo_rel_line_to (cr, 0., SIZE); + cairo_rel_line_to (cr, SIZE, 0.); + cairo_close_path (cr); + + cairo_move_to (cr, 2 * LINE_WIDTH, 0.); + cairo_rel_line_to (cr, 3 * LINE_WIDTH, 0.); + cairo_rel_line_to (cr, 0., 3 * LINE_WIDTH); +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + /* First draw a checkered background */ + cairo_test_paint_checkered (cr); + + /* Then draw the original caps-joins test but with a bit of alphs thrown in. */ + cairo_set_line_width (cr, LINE_WIDTH); + + cairo_set_source_rgba (cr, 1.0, 0.0, 0.0, 0.5); /* 50% red */ + cairo_translate (cr, PAD, PAD); + + make_path (cr); + cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT); + cairo_set_line_join (cr, CAIRO_LINE_JOIN_BEVEL); + cairo_stroke (cr); + + cairo_set_source_rgba (cr, 0.0, 1.0, 0.0, 0.5); /* 50% green */ + cairo_translate (cr, SIZE + PAD, 0.); + + make_path (cr); + cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND); + cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND); + cairo_stroke (cr); + + cairo_set_source_rgba (cr, 0.0, 0.0, 1.0, 0.5); /* 50% blue */ + + cairo_translate (cr, SIZE + PAD, 0.); + + make_path (cr); + cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE); + cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER); + cairo_stroke (cr); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test, draw); +} diff --git a/test/paint-source-alpha-ref.png b/test/paint-source-alpha-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..32a3eedf9c74e4059556973ca484de267ad98537 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_eI5>H=O z_G>JX>{eU?f~S@Og_d}_IEF;DzMX!M_pkzwt9>Z@N3{wOw~re4So$aV-r^Q-()JFG zR=T?H<7a0%w&RPw+>s&l_Q z-NJuANLIOT@y@C+N2VAyg*UACuWe6PU=&h#&+1>N?Wt}!K{^8HUItHBKbLh*2~7Y; C@M5I^ literal 0 HcmV?d00001 diff --git a/test/paint-source-alpha-rgb24-ref.png b/test/paint-source-alpha-rgb24-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..490747013bad5bfb6d3d44993cb4ac9048293a7e GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W*pj^6T^Rm@;DWu&Cj&*;OFVsD z*{`ukvRiQp2%cIB6q@Df;uzx5`8MnzZ-W7cO>grCPsyc=4Y+1c36wb+zcq9bf3M=p zy&TtzIAc7Q2XRGpoamk@DWA;oN8e!SlwBbP;<|E + */ + +#include "cairo-test.h" + +cairo_test_t test = { + "paint-source-alpha", + "Simple test of cairo_paint with a source surface with non-opaque alpha", + 32, 32 +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_surface_t *surface; + static uint32_t data[16] = { + 0x80808080, 0x80808080, 0x80800000, 0x80800000, + 0x80808080, 0x80808080, 0x80800000, 0x80800000, + + 0x80008000, 0x80008000, 0x80000080, 0x80000080, + 0x80008000, 0x80008000, 0x80000080, 0x80000080 + }; + + surface = cairo_image_surface_create_for_data ((unsigned char *) data, + CAIRO_FORMAT_ARGB32, 4, 4, 16); + + cairo_test_paint_checkered (cr); + + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_paint (cr); + + cairo_surface_destroy (surface); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test, draw); +} diff --git a/test/paint-with-alpha-ref.png b/test/paint-with-alpha-ref.png index d821b5ebcb5253f0a2f96d208ac8be9822720570..3e3942a0b1a81bfb1e86c7dc4e614d82c52a689a 100644 GIT binary patch delta 257 zcmV+c0sj7^0gM76iBL{Q4GJ0x0000DNk~Le0000W0000W2nGNE0CReJ^pPPIe+P6) zO+^RR1Q`c67sk2RF#rGnu1Q2eR9J=Wm(dBsFbqV`rGsb_dlYX{Ym(qe>`anT+K&W^ z5`mz!bs*B8&u8+GC5wdC+7n8YQZ)JN`c2*aV>o~Vgc#$syWnmah)Aq+&eFiV`fB|M zV0Z=`AXu|tf9EMBY20d{_pW|`SEfnTPtyesV7>zk7V8=F&hY>MbVT*MUIFhIo&j?f zRFW^;q1t)Pz@a;~SeC5n-USYD8US+^{8}HL0S9mZ|1Wp}vP4O&z-%mn00000NkvXX Hu0mjfC}(G5 delta 152 zcmeBSTEeK<8Q|y6%O%Cdz`(%k>ERLtqO>_%)r1c48n{I zv*t(uC0#sS978nDZ|%Rx#h}2!?EiBAV*TyyO&(1~1^LB%c>+@yX51{<)W_etOZ}0& xbOWFAc@L?(3&Jy&Z<44z?N?ks(TMx!tH;+kBs98aF$2wG@O1TaS?83{1OR2KE$ILN diff --git a/test/paint-with-alpha-rgb24-ref.png b/test/paint-with-alpha-rgb24-ref.png index b5cf0a7031b5b7e93e3ffeb6cff93d3aaf8e4064..228a78a2554a64adb015b5482ef3776def34ecd9 100644 GIT binary patch delta 237 zcmeBU{LiS^8Q|y6%O%Cdz`(%k>ERLtq!mDzg9%9fk$Ag!qM}SaizK_b__3Wg41r<` zJzX3_JUZWo9pr6L;IZj#E)kY!^<6SqLXAv^4f1j8%d z+n?$AAsM@1?}3CKLCsXXSy?QCvKx!n37lcjXqnFRtNqXZ?yT)E?v!WeE}Y4@WXcik zsA;#Yennr&W||tix1uebBc74r+SR+)F4{lQ`_S=9 l_m|e<{jRYO1b_W^l`c(p-ejzkzzTFNgQu&X%Q~loCIHxQTs!~( delta 123 zcmey**vF{Y8Q|y6%O%Cdz`(%k>ERLtqXJ1bwiUy1ux#Ky<%iIUe3zj TZ71^)sF%Uh)z4*}Q$iB}-bf{C diff --git a/test/paint-with-alpha.c b/test/paint-with-alpha.c index 3292d5f90..b204b0865 100644 --- a/test/paint-with-alpha.c +++ b/test/paint-with-alpha.c @@ -1,5 +1,6 @@ /* * Copyright © 2005 Red Hat, Inc. + * Copyright © 2006 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software * and its documentation for any purpose is hereby granted without @@ -28,7 +29,7 @@ cairo_test_t test = { "paint-with-alpha", "Simple test of cairo_paint_with_alpha", - 12, 12 + 32, 32 }; static cairo_test_status_t @@ -46,9 +47,11 @@ draw (cairo_t *cr, int width, int height) surface = cairo_image_surface_create_for_data ((unsigned char *) data, CAIRO_FORMAT_RGB24, 4, 4, 16); - cairo_scale (cr, 2, 2); + cairo_test_paint_checkered (cr); - cairo_set_source_surface (cr, surface, 1 , 1); + cairo_scale (cr, 4, 4); + + cairo_set_source_surface (cr, surface, 2 , 2); cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); cairo_paint_with_alpha (cr, 0.5);