From b80492d1ea809edf216ffb0245d798c2a039390c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 29 Aug 2007 23:59:49 +0200 Subject: [PATCH] add blend mode tests --- test/image/Makefile.am | 61 +++++++++++++ test/image/blend-mode-0-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-0-7.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-0-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-0-8.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-15-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-15-7.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-15-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-15-8.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-add-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-add-7.swf.png | Bin 0 -> 820 bytes test/image/blend-mode-add-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-add-8.swf.png | Bin 0 -> 820 bytes test/image/blend-mode-alpha-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-alpha-7.swf.png | Bin 0 -> 1010 bytes test/image/blend-mode-alpha-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-alpha-8.swf.png | Bin 0 -> 1010 bytes test/image/blend-mode-darken-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-darken-7.swf.png | Bin 0 -> 1616 bytes test/image/blend-mode-darken-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-darken-8.swf.png | Bin 0 -> 1616 bytes test/image/blend-mode-difference-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-difference-7.swf.png | Bin 0 -> 1162 bytes test/image/blend-mode-difference-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-difference-8.swf.png | Bin 0 -> 1162 bytes test/image/blend-mode-erase-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-erase-7.swf.png | Bin 0 -> 1062 bytes test/image/blend-mode-erase-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-erase-8.swf.png | Bin 0 -> 1062 bytes test/image/blend-mode-hardlight-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-hardlight-7.swf.png | Bin 0 -> 1349 bytes test/image/blend-mode-hardlight-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-hardlight-8.swf.png | Bin 0 -> 1349 bytes test/image/blend-mode-inverse-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-inverse-7.swf.png | Bin 0 -> 1206 bytes test/image/blend-mode-inverse-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-inverse-8.swf.png | Bin 0 -> 1206 bytes test/image/blend-mode-layer-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-layer-7.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-layer-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-layer-8.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-lighten-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-lighten-7.swf.png | Bin 0 -> 1033 bytes test/image/blend-mode-lighten-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-lighten-8.swf.png | Bin 0 -> 1033 bytes test/image/blend-mode-multiply-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-multiply-7.swf.png | Bin 0 -> 1616 bytes test/image/blend-mode-multiply-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-multiply-8.swf.png | Bin 0 -> 1616 bytes test/image/blend-mode-normal-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-normal-7.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-normal-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-normal-8.swf.png | Bin 0 -> 1366 bytes test/image/blend-mode-overlay-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-overlay-7.swf.png | Bin 0 -> 1384 bytes test/image/blend-mode-overlay-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-overlay-8.swf.png | Bin 0 -> 1384 bytes test/image/blend-mode-screen-7.swf | Bin 0 -> 1695 bytes test/image/blend-mode-screen-7.swf.png | Bin 0 -> 1027 bytes test/image/blend-mode-screen-8.swf | Bin 0 -> 1701 bytes test/image/blend-mode-screen-8.swf.png | Bin 0 -> 1027 bytes test/image/blend-mode.c | 134 +++++++++++++++++++++++++++++ 62 files changed, 195 insertions(+) create mode 100644 test/image/blend-mode-0-7.swf create mode 100644 test/image/blend-mode-0-7.swf.png create mode 100644 test/image/blend-mode-0-8.swf create mode 100644 test/image/blend-mode-0-8.swf.png create mode 100644 test/image/blend-mode-15-7.swf create mode 100644 test/image/blend-mode-15-7.swf.png create mode 100644 test/image/blend-mode-15-8.swf create mode 100644 test/image/blend-mode-15-8.swf.png create mode 100644 test/image/blend-mode-add-7.swf create mode 100644 test/image/blend-mode-add-7.swf.png create mode 100644 test/image/blend-mode-add-8.swf create mode 100644 test/image/blend-mode-add-8.swf.png create mode 100644 test/image/blend-mode-alpha-7.swf create mode 100644 test/image/blend-mode-alpha-7.swf.png create mode 100644 test/image/blend-mode-alpha-8.swf create mode 100644 test/image/blend-mode-alpha-8.swf.png create mode 100644 test/image/blend-mode-darken-7.swf create mode 100644 test/image/blend-mode-darken-7.swf.png create mode 100644 test/image/blend-mode-darken-8.swf create mode 100644 test/image/blend-mode-darken-8.swf.png create mode 100644 test/image/blend-mode-difference-7.swf create mode 100644 test/image/blend-mode-difference-7.swf.png create mode 100644 test/image/blend-mode-difference-8.swf create mode 100644 test/image/blend-mode-difference-8.swf.png create mode 100644 test/image/blend-mode-erase-7.swf create mode 100644 test/image/blend-mode-erase-7.swf.png create mode 100644 test/image/blend-mode-erase-8.swf create mode 100644 test/image/blend-mode-erase-8.swf.png create mode 100644 test/image/blend-mode-hardlight-7.swf create mode 100644 test/image/blend-mode-hardlight-7.swf.png create mode 100644 test/image/blend-mode-hardlight-8.swf create mode 100644 test/image/blend-mode-hardlight-8.swf.png create mode 100644 test/image/blend-mode-inverse-7.swf create mode 100644 test/image/blend-mode-inverse-7.swf.png create mode 100644 test/image/blend-mode-inverse-8.swf create mode 100644 test/image/blend-mode-inverse-8.swf.png create mode 100644 test/image/blend-mode-layer-7.swf create mode 100644 test/image/blend-mode-layer-7.swf.png create mode 100644 test/image/blend-mode-layer-8.swf create mode 100644 test/image/blend-mode-layer-8.swf.png create mode 100644 test/image/blend-mode-lighten-7.swf create mode 100644 test/image/blend-mode-lighten-7.swf.png create mode 100644 test/image/blend-mode-lighten-8.swf create mode 100644 test/image/blend-mode-lighten-8.swf.png create mode 100644 test/image/blend-mode-multiply-7.swf create mode 100644 test/image/blend-mode-multiply-7.swf.png create mode 100644 test/image/blend-mode-multiply-8.swf create mode 100644 test/image/blend-mode-multiply-8.swf.png create mode 100644 test/image/blend-mode-normal-7.swf create mode 100644 test/image/blend-mode-normal-7.swf.png create mode 100644 test/image/blend-mode-normal-8.swf create mode 100644 test/image/blend-mode-normal-8.swf.png create mode 100644 test/image/blend-mode-overlay-7.swf create mode 100644 test/image/blend-mode-overlay-7.swf.png create mode 100644 test/image/blend-mode-overlay-8.swf create mode 100644 test/image/blend-mode-overlay-8.swf.png create mode 100644 test/image/blend-mode-screen-7.swf create mode 100644 test/image/blend-mode-screen-7.swf.png create mode 100644 test/image/blend-mode-screen-8.swf create mode 100644 test/image/blend-mode-screen-8.swf.png create mode 100644 test/image/blend-mode.c diff --git a/test/image/Makefile.am b/test/image/Makefile.am index 3d0be09f..65c96918 100644 --- a/test/image/Makefile.am +++ b/test/image/Makefile.am @@ -93,6 +93,67 @@ EXTRA_DIST = \ bitmapFill-update-8.swf \ bitmapFill-update-8.swf.png \ bitmapFill-update.as \ + blend-mode.c \ + blend-mode-0-7.swf \ + blend-mode-0-7.swf.png \ + blend-mode-0-8.swf \ + blend-mode-0-8.swf.png \ + blend-mode-15-7.swf \ + blend-mode-15-7.swf.png \ + blend-mode-15-8.swf \ + blend-mode-15-8.swf.png \ + blend-mode-add-7.swf \ + blend-mode-add-7.swf.png \ + blend-mode-add-8.swf \ + blend-mode-add-8.swf.png \ + blend-mode-alpha-7.swf \ + blend-mode-alpha-7.swf.png \ + blend-mode-alpha-8.swf \ + blend-mode-alpha-8.swf.png \ + blend-mode-darken-7.swf \ + blend-mode-darken-7.swf.png \ + blend-mode-darken-8.swf \ + blend-mode-darken-8.swf.png \ + blend-mode-difference-7.swf \ + blend-mode-difference-7.swf.png \ + blend-mode-difference-8.swf \ + blend-mode-difference-8.swf.png \ + blend-mode-erase-7.swf \ + blend-mode-erase-7.swf.png \ + blend-mode-erase-8.swf \ + blend-mode-erase-8.swf.png \ + blend-mode-hardlight-7.swf \ + blend-mode-hardlight-7.swf.png \ + blend-mode-hardlight-8.swf \ + blend-mode-hardlight-8.swf.png \ + blend-mode-inverse-7.swf \ + blend-mode-inverse-7.swf.png \ + blend-mode-inverse-8.swf \ + blend-mode-inverse-8.swf.png \ + blend-mode-layer-7.swf \ + blend-mode-layer-7.swf.png \ + blend-mode-layer-8.swf \ + blend-mode-layer-8.swf.png \ + blend-mode-lighten-7.swf \ + blend-mode-lighten-7.swf.png \ + blend-mode-lighten-8.swf \ + blend-mode-lighten-8.swf.png \ + blend-mode-multiply-7.swf \ + blend-mode-multiply-7.swf.png \ + blend-mode-multiply-8.swf \ + blend-mode-multiply-8.swf.png \ + blend-mode-normal-7.swf \ + blend-mode-normal-7.swf.png \ + blend-mode-normal-8.swf \ + blend-mode-normal-8.swf.png \ + blend-mode-overlay-7.swf \ + blend-mode-overlay-7.swf.png \ + blend-mode-overlay-8.swf \ + blend-mode-overlay-8.swf.png \ + blend-mode-screen-7.swf \ + blend-mode-screen-7.swf.png \ + blend-mode-screen-8.swf \ + blend-mode-screen-8.swf.png \ BlurFilter-rendering-5.swf \ BlurFilter-rendering-5.swf.png \ BlurFilter-rendering-6.swf \ diff --git a/test/image/blend-mode-0-7.swf b/test/image/blend-mode-0-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..ab4e919ac4ca4d68afd0233366ab9ff9526e9861 GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fq{vE^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?m*j1s)5I0`C?lBLgEt8yg!V12Y3dhaejh6Ihu81B3^XWncpF0A%md A0{{R3 literal 0 HcwPel00001 diff --git a/test/image/blend-mode-0-7.swf.png b/test/image/blend-mode-0-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..1a8b43d619c56b5d402affe72a6dcfbdb5a7e3d8 GIT binary patch literal 1366 zcwUWEZAepL7#&eLB7@2-)VN`g1XovTACswNuC+o}5|oWrGzM9UvQ}+&w}BLW??Qtu zEmyX1KPtr$j%3ct@@BWPvBGTVvg=)~HRe9jyN_n?DyToTae427^W$*Nc^;ngJ1aS< z^D^eqXtY%Bw(=@~lkrEN1^!(d6i)%nJ+y;UPMe8;H+v0gz@$jH73`E@dg}ZoDQzV; zC>m`x#Vy~wTYB9yI(j5CWf^>v zDr`o_l+`+OZ3QYi+6eP)k$k9F;~3~i(n_}c&*e|@`Ff}~*Gq5hZnvuq1Q6gm_0vH3 zHym*4O{7QviKM3Po6yQ=SwfRdt3=mOfp)c1!g|RuYP8C(hC;2@3PJJgpqL8fb0%^Hi_1Rl&rDzHryv` zMk_DA7VbNphfM=_CehI^9{pr;GNm|wtwZ~0!Y)RtRff(1o|irv*A#|k5HQ)Ah2bz5 zLks%YkRT%uUgeXIY_jBHT9P`>RD9e+7}%f1$br};yMM~+Hm+L-oq>4CG$!W{ zoUO<2`ixn9uyQ~q^DpkpDD7P-iN|!@n3}S>-huKHMf|mIFwu`2JCJG}BG4iGbkVEv zh{3m%Yk8Y3TarO5^@80jKV$+7&!p4dH5(9JFNzdswpYktpV$z$IUaZds*4nYvqAP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPZJbW1)gBWf)FtCCGM?m<&H1@6tIk5#5w;F&! zeUycPAp{=OmoEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Y_USr zEtj@%A1cKWj%3ct@@BW!SYbA7+4Zj08gq~I?$OqN71Wp7xcu*d^WkvL`Th8v+g8a* zpP4n2Mx&*3HQtXKXrc zjMHdSDQ@|O9nx!_k-(iXC}4{BOsT66q_X5HmY@@df713lI5u&^Fib<8gKWE*qu z#8gTrp&h+9Zkt!Qym1-()lGVH#s+oHfvTw$=UcgR{wBpu#}LfX?;|=%>Lp2`BsED= zCXyN&r6?mSBxfr4DhBRzi_OtBB`Rl1A+VlSaBcqss8C=9S z+pR6nIim$h`h7Un$lrGf zUWC-yynxj;*oh-SQ4?wbRoe0)Ia~+YTX5b2_g%929x;;68j#(g&nD5zkdpO2vkmvj zn$XG%uY|i#uD~XNJCo?}7mt2CHJMVJzsjL~FlHAc)ha{h0MAPwNoWc~aRf~E;GA$6 zjG-BQXh@O~ki$;B7q9Zkhu2&3FfB z2hP;tw|&O!K3F**llkZMWtH|Wl_X+1u1`!@U2j48$s+#RH<;+hjU7m}4iV^(-MZ+N zM8x15%C)%7mLticm3qN$q~3jZ?ll4DUd<97u7+?mN)Fm`f;}u*_)rw{kKvN9#J6$B z+@xAYu&w7l1W^%F0WW$Yl=*9m1hI==TwSUmCdrplzAjp{I3g{M)~9AF%vV9UuPfWp zPLL3FROZLT(ORbBs!AKbkNd~8WXgTDur!2_X<=aCg7jo7Va%Z+!1aiT&4?;?*UXbd k4kGUwUNZ{wk~@n{%krE(-c=hZ1ZR=PWmlGWlyW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?g$i1)e{S0`C^54+A4Z8yg!VgC7G!haejh6GH$41HS_UgvZF>!@$4< G;sF36N!0)V literal 0 HcwPel00001 diff --git a/test/image/blend-mode-15-7.swf.png b/test/image/blend-mode-15-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5d48692beb473a069f0dce7a6175be5f3cc496 GIT binary patch literal 1366 zcwUWEeMnP#7#^3r4$Gi24K+>}B*C%W)IKIt%Uo-PuH-`5xa)GqpbtgaUH5Kwwt*Dc z*A6t;(sE@B7t~c8;ZWwREKlBZ`xvJ%8@lT~p4ILeb06v1N3-85sDEnX@H-DYe>^lW3Vy~bbmH7RZX1HqglezKRM zpHehR(eo5-q3H2xnl^L7O14UN6Srt3J=kg=@_hx9Q$j9vL?{;WS zBoGj~jPpSFGaPamEtJ>znxg0KSkT&7RZ^3!>m-*^k$$~P#(B)M6tbG2p$$R1qxcK3 zvdUSQ$xXf^ZtZ@|n=VNr2grt?-G^uWUS`Pd62wZn3t2(?I578%3mEenP1LFDC?$`` z-%q3(`TYUWldv{l5VX6;dT}HqX-93KN}?E2!cCyPoU=A~_yXa7z)Cu6K=y~_I7&_4VrX(2wIpH$;@H)S8Vw1}RiX4iccLe6_9`mM6 z&?!ieN@Ggl=;w%?pT468>KiolBD+{&S~vP4Yh)wwyl`z0tpS;SBK29qPWxd*8? zAR+^D&=9+nh!}c7yH|G+1+rX5r4Q^z>fQGjUJ>yI8rBGKEre@PYK$ld4RREbqcJQn zgUjBM?`ECLlWLj4wx0Pngi6>dIPZ~I5ojzE#n1b2ZKaN!r=H4%hFIC^sJuMZoSLbK zPy^xqzIZ2?S4D;bZefgq5D=-=^hJr#j2!)t;_}p)s@@GnOmgJu>*wQa~{F~?HntDyeW#^t>S&X2=6=XrR}@2upc zrDmqmXtXr$w(=@~lkrEN1^!(d6;A-nJ+y;UPMe8;H~S1~z@$jH73`D|dfL3jX{GKH zP8w}C#Vs%0Exqm;8#}TrWhr~tkft@JHP4*VY`U^lJ_kB?xVPFJ7B=9jj`{hYY!mK1 zm`dp+wBz?DZHo$4H?3k1-=?>um#VW5SIw@taFe^>Z&KWR0>K;uKBAMPUXc_^Qqv@5 zBB_yaiZZf7a;Ac>V&Fcv*c{zZ{1W#yxR2P8Ck_#5N|FX^Zn2~VSfb0o7rNT z5rc0i*YY-7wj`5Q;sv{reD^&$*9DyWwJUhI8p72mIb_QY_OfK*BT>vhflIy;-zFUk z6KWa3wx0hGL`6&myzHq^=C3Oh#4dSpb%}zImbD(%bz+&`fulkTgPr6Gh&3j+feq&G_mV-5`gu17>{MpUtGGfxt! jLEbgKW)$Qmb{3nH={a|@t1eOi&LWM=t}O2;JJ|FCdEbC` literal 0 HcwPel00001 diff --git a/test/image/blend-mode-add-7.swf b/test/image/blend-mode-add-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..ad33ae5c27882766b1463d2718fb3f555158da63 GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fkBIb^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?nQx1)dI$0`C^5CIcfw8yg!VgEj+0haejh6N4@T1BU|xgvZFB$-uw_ G;sF5t6w{jk literal 0 HcwPel00001 diff --git a/test/image/blend-mode-add-7.swf.png b/test/image/blend-mode-add-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..ec6e84b5b738dabb82f75fc24e25cc12a06e1ddd GIT binary patch literal 820 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`4 zzda$>IH%(2!{Z0yBIYgd6g1InQggkqgkzS7<7B0bAQs;)WWg!VFUa3NyW!!_!^$xj zl2~+9$eaG@e|UHYP6LqyKiXwgEPrT9tXhkst#}*?7yN#)oA>%o!sAP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPeJbW1)s~B!NFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPp#~n*moEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&YVm47K#ZO)2`K)^Ad^#}EGkCiCxvXyW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?isC1)epI0`C^51p^~P8yg!VgB1fqhaejh6N3!{1GfVMgvZEW!N9-- G;sF3wFVr*u literal 0 HcwPel00001 diff --git a/test/image/blend-mode-alpha-7.swf.png b/test/image/blend-mode-alpha-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..55f8abd94885939edc5ea6bdd31fe6a008980ed3 GIT binary patch literal 1010 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`O%gX=<|0l+8etB}o!})dp?H-w~v#|N~T5WTIjpJmcj35@@t_7ZgCYnuZt{0YY z%o0HnEMNTc=-T}!KfHY_xc=c>|C-)|Ix_y4%Fy(l(tN$Re6qOYTj6)MKPO!Oz+7MC zM9``xwba7elKkM0|LP2EqU^prVV-XzRYr`yr<1n#_qEB(ZEJJS?u~nVe@~k*e)mBH zm#^u6ch_#$_LV<=RP25Dhrfh4yIwD@zV9iYt7T^^X_t3{6Tfn>;FO!cUWl4IeSddb zX0556z4X7+52sH*xPd4~{=MzKeute^)Qps{^3e_dcd^tIXB_e&6|_iNzx{(oDx+wCg<{UYP! z=hxZUM90uQw-@(X7qzeHm)j(`>wD+VyAP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPAJbW1)I~i^|FtCCGM?m<&H1@6tIk5#5w;F&! zeUycPp&K65moEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Y&8*w-Qw(EU}R`xV`F6KVqoYHWMg7t=wV>sc3^<;7#TVk I7??mj0Q$w(u>b%7 literal 0 HcwPel00001 diff --git a/test/image/blend-mode-alpha-8.swf.png b/test/image/blend-mode-alpha-8.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..d64defd4b6cb495e35576c87ba3367f3631df33f GIT binary patch literal 1010 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`O%gX=<|0l+8etB}o!})dp?H-w~v#|N~T5WTIjpJmcj35@@t_7ZgCYnuZt{0YY z%o0HnEMNTc=-T}!KfHY_xc=c>|C-)|Ix_y4%Fy(l(tN$Re6qOYTj6)MKPO!Oz+7MC zM9``xwba7elKkM0|LP2EqU^prVV-XzRYr`yr<1n#_qEB(ZEJJS?u~nVe@~k*e)mBH zm#^u6ch_#$_LV<=RP25Dhrfh4yIwD@zV9iYt7T^^X_t3{6Tfn>;FO!cUWl4IeSddb zX0556z4X7+52sH*xPd4~{=MzKeute^)Qps{^3e_dcd^tIXB_e&6|_iNzx{(oDx+wCg<{UYP! z=hxZUM90uQw-@(X7qzeHm)j(`>wD+VyyW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?n=>1)dU)0`C^5JOd*`8yg!VgCYY%haejh6N54X1DgW_gvZDr&%nS0 G;sF2`7SlBV literal 0 HcwPel00001 diff --git a/test/image/blend-mode-darken-7.swf.png b/test/image/blend-mode-darken-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..9fda92e305d82de262fdaf9216b58d8e4d5ecd0e GIT binary patch literal 1616 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`EaktG3V`F@4VX)5^RBS`&4fFN!|Q!$84*ya{B`*76Y!* zWA-guLeE}g&+<7j-(I%-&*c8}4?9oxhhGTPe6d2LB!tUKi&b`NQ=gZk`_cuAgHVM< z-~NdEzjt5#pMQT@j_>Cy`16(F`26yMKZVT4r@#K*AHRJ6gUR1zW%8vh;=&8|=sc)k z<3Ijg;=zyK%WW4b2NPq3sF{52Kek}IEvB^-*S?&5#yvj8?w8W%i{dl;?an6%{<50* zSQaQKJ)_@F{KKB=vp^xH?U!fscvL%KaW6JIa_p-9Fgfpgo^K#;d*ZhH{1-EFeEE&! zYbX7DQOKrz{&}a&`vk$NH4g;M!Zv)eIkEYp?FDUDM-SVD#260oKuzP-`;WQz1bq3y z+9#hO=ylKTm%`_Z&1c-@(~UmaG(JA=Cbm$z^1b?xx4&NQonU^MZv)3%wF_?k1PzA> zx1M!>KR-dK;y;V9;}+As^-bIR?_I2!B6I&_O^Ic*?z6`%eaHR87A8!$+8e%!WA4H0 zwroGxmUGH{Z^2_IvhaP zji{D)55Dc4==#E`&a{s0{sV~z-ZRw-?g$ffK14Y2^TpS!J^bs%4ea*B9k}hjUVK9c zkiqSGQ|XJ7*uwNp9JY#(h&VnU0eX6Mw6jx-b0Ynbvh% zQb+W=w{a!5>NPj z_f4HgOt=7rxn}pT)0XgACoSP~?n(J2P z`@Qy!+`K1~#mjo0Eq#a_PDjbFI@MUx?V7TePzzPZ+0pSPJ*t;U+#1>TCY5)fH zQ5FV+9;TMu7^vVx$7E2uFc;i!+~rk)e%^jgg^{fuTc?jfsh&n1O-KfdRr}WXNY= HU;^;~yR6o- literal 0 HcwPel00001 diff --git a/test/image/blend-mode-darken-8.swf.png b/test/image/blend-mode-darken-8.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..05a7ccad764a2871f7b572db925acf5ebcf3426e GIT binary patch literal 1616 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`~p5=35zP)VupUM5{A9kMX55Ewo`C^4gNeGvf7OU*kramu6_oWLK2cZg! zzWovRfA7BfKmY!+9N*7Z@aHST@%iNie+rq8Pk;TrKYscC2a~_c%H&I1#Dy2^(Ron8 z#((^~#DgEdm)kB>4kpG5Q8W44e{8{aTTE*wu6;TAjC*{F-7lrj7sY4x+nrAk{AD%q zu`EzfdPcvU_=i2!XMsXY+b_@N@u+sf;$CcaCp`b7J#H+Y8#RjvlrPi7_1Ffttpv_aAfb3Hb7Z zwNE}n(CePvFNMz+o6oq*ryG5;X?%R#O>Cib<$LuXZ-2eqJHh-i-v*AkY8Tx62^tO& zZawS%etv>d#eWuI$1SFN>zlUs-@8~dMdtp=ni9)q-Di(k`i}dFElikhwKsed$J~S0 zZP|XXE$5W^-h#(aWZ@e%U%oMZYuV1fL48kcL+69H%zJ9T{NwD)fAV(mY1ST_=f;)p z8c{9p9(>z7(e;H>ooOB0{Ra{cyl1Kv+z}?|e28%3=Zmjdd-&Ij8`$lMJ8;{5z4(R@ zAcNcWrqUNDv4!cIIBXlEw{X<1d+@$S=gHRj#uAl%jQgf!G94!&CjM44bzk_)Gp*~k zq>kuy;|Q%q@xAHqIb6Fh81JZ^f5O_S{KHZkb0hiKgVQ(ZJds^!JgdJc{LnYz!>Q!{ z!8L{I(U;${r1ie;JR{}*WbKR>;g2s`J6%+o^5^9|>mQeG!#3@SJ&|pnZtzLw@vpzh zU)tYs5)(i`;SE1uxYeoGD(4@KImuRZ@83LPFlj}+>`Q4p!BG{0~jjLx!mSKoc}%d_rH(1tnWEu#Xg+; z%=7O;a)bXowNK|2=Fk39LTm)5GQK`l$=G~y<0RJ?OnLWHKK+V1@Z@U*5G(w?@tf%% z_j~Odxp_|}i@h5G>s9yn(_BdJf)$8fpi8twZjM}H~(?@4C+-)?`waAwlI z6YB9NKX&z<++V3S--fMf(xiH}pLd=t*Cx{JKE|@yml<}SHUIfU{O6P8hVQfNPJEP= zUF@py^T}M9{3jKP$BixJo=Di1kx=Yd`6fL1sdoH{>(a}UWtz9o^1Iv&%(5SQW#*sw s=+|dn#8YQ1w^#8?yq!DIhW=+h7|YTVTe*5ZutH$)boFyt=akR{0Er>mbN~PV literal 0 HcwPel00001 diff --git a/test/image/blend-mode-difference-7.swf b/test/image/blend-mode-difference-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..fdceadb7999b6eca2827a7f84d11d12b3b592b11 GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fkBml^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?hs*1)e&N0`C^53IiiU8yg!VgBk-vhaejh6N3f=1G@tQgvZFB!oa`; G;sF4P71L+{ literal 0 HcwPel00001 diff --git a/test/image/blend-mode-difference-7.swf.png b/test/image/blend-mode-difference-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..b5faa9eea33818a3bed91ed0ddab4345fc645af9 GIT binary patch literal 1162 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`8` zHKny4MK>hF+keQ*tI69-nbmy$F#BQY!>T4V*9%KHW{EgXR>}xs@$FjRDQKdJA~x1 zA($E?KiACZ{M!DwO@hC6@a#YK_2T-|A9im3cwO{8QynvIx4;A+|9Y|IN##4IiMQkQg3h)^fJe+DTTEqw;E0U>~CKV)OGLk z&WEWpuMw+pm+0q759gQf>CIIBVp?~=y3SFZU?2enfl-?oTqyOg?#Rt7|C+?Qt%;pf#3l@~T?!LVCQ09-HH?;ki^V1!=&L!3m z(Sx8gR)1~F6H8uuy~EG1xu1Xg#c%(Eoo3S#iS-IFjqkKSz0=yMUgz-iHU0B;*Oo~A zD>}M?*jWG4@$)1w#-^wK$ds(>1*X9~P)4wyFI7flyw9Dp`&;oXj@sQk^P}bWrYL{8 lqx=k*kLsk-hzf_F{A+6`)Y|zewgZb222WQ%mvv4FO#s50@{#}m literal 0 HcwPel00001 diff --git a/test/image/blend-mode-difference-8.swf b/test/image/blend-mode-difference-8.swf new file mode 100644 index 0000000000000000000000000000000000000000..dda194ef076538c13322af29375356b4db32360a GIT binary patch literal 1701 zcwTc059V0P#=ua(z?s0nFpYtMk&(ffiGhK^MUW9l+H=|isZs{k4-6j|DsH_!+$hpu zz`%MyWZ8s6B0(OCt(rcGT){wEWLbdR|GRt3Zv)Lj0!uWPu2_W(62I4mha!W+*P>AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPCJbW1)OBrrDFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPp&TC6moEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Yu8= zYf5W9if%}TxBrlrSChAwGOPLgVfMq)hgD5#t{0YY%o1^&tdtSN;@h>rQ_w^cMR4A7 z+kNf(r#<99{o!}&kMpTN`cr?rHTtuK=l^b=|9g4<$F%L&KYV}M!}8M~J{#>RaKdR2 zLNGN(ey*9*`L+FVn*@LD;Msrd>&5k_KkVH6@w(`HraETaZh;9t{`F$Zlgf8a7c(vP z+gatd_+77?XZ`M9WLrJYW>!Ua+9iy8e09S$|CC)K~o7B3N}i`0;t5GxjeK#ut=G&fgh&#=C7ff5pkSi!Zk> zdj5_hR?e{gop=e6!Dm};nO^tf4$z$53*P&7rQYBq=w*&sQwnQKZZ(?x+26h#sO#S6 zoexuIUL#iHF451E9?mb{)0?UM#kB5#b)BO+!9W5E0;4uFxKQd}-J7Y)|G)WScJ8iV z)w}9_PuwlPnav@f7c3}w-F%9yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~Us~d_4h*cIz!4CBFpa${LQZT!#jOTlP#kVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?l$F1)c+r0`C^5EdwJ%8yg!VgFOR7haejh6N4iI1CIj(gvZEW%fP?{ G;sF53F4SiL literal 0 HcwPel00001 diff --git a/test/image/blend-mode-erase-7.swf.png b/test/image/blend-mode-erase-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..7a47373dec11221e64cc90c6334d11d956c211a7 GIT binary patch literal 1062 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`wfW{!X2&c>KQ>SzFiAE1x+-Y z)Lbtt;g}`jI9Ul<@M-0&{(J8ae>9mfr%(P#_K$P>pJ&hL|MXl4rw*9lrnBz(+aFd) z$%Q}9<| zWl2n-;4cOH1?mJn4HVq=^TlcJKNkBr_TF!Qd^^{oZo>UGVl{pThV*p(!yliYKm76Y z=Yl!$Eq?DgY|Z6uzgN#AHq`vOFKC~0|J;4y`}c=Gx=u$E8(x`DD)WH8^ggPs=k&Q= zglKL46-Pfl1V)eByys#IFGt74$G0cv%eVfYNkA{htSPy6RYz?f?ksP)m$$s{{yjfg z|9ttm|L$Dg_*3JLGBE+R!u7@aW#uh?$1htu#mBWh{_{K8b|E2aA!$?BslN1`?83`R zCBL43eSXg_%Z}^6Eiq}Mq$p3YYCr#Rek1w0aT>qAzAmWAv$NV;`{mBHl1H2bgAC~H a{R}^k|9!V(o=*WNb9%b^xvXAP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPoJbW1)`xtIIFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPVFEm;FJBaB1xCZgP*CUwp%C*9pZjf7{!D4klKc|}TlyuBf785t#V&o`?ddw+ zzh{-^-rtn_w))%Nzb6W}%(p!MP5b)Qy65|D&$sdaJ^Op^|4+4VA5M?2`}uT~7$ruD zQG#m3_w{x4SEE1$-bADVZvu`2?-pk-10zEl8yh1-KLbODAR7}C!$bxK9tQ>pkCCC5 Jfq@Cc0|0H)*W>^I literal 0 HcwPel00001 diff --git a/test/image/blend-mode-erase-8.swf.png b/test/image/blend-mode-erase-8.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8d0beda61c573f18f0ec2b4b70d8fa04f7a517 GIT binary patch literal 1062 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`wfW{!X2&c>KQ>SzFiAE1x+-Y z)Lbtt;g}`jI9Ul<@M-0&{(J8ae>9mfr%(P#_K$P>pJ&hL|MXl4rw*9lrnBz(+aFd) z$%Q}9<| zWl2n-;4cOH1?mJn4HVq=^TlcJKNkBr_TF!Qd^^{oZo>UGVl{pThV*p(!yliYKm76Y z=Yl!$Eq?DgY|Z6uzgN#AHq`vOFKC~0|J;4y`}c=Gx=u$E8(x`DD)WH8^ggPs=k&Q= zglKL46-Pfl1V)eByys#IFGt74$G0cv%eVfYNkA{htSPy6RYz?f?ksP)m$$s{{yjfg z|9ttm|L$Dg_*3JLGBE+R!u7@aW#uh?$1htu#mBWh{_{K8b|E2aA!$?BslN1`?83`R zCBL43eSXg_%Z}^6Eiq}Mq$p3YYCr#Rek1w0aT>qAzAmWAv$NV;`{mBHl1H2bgAC~H a{R}^k|9!V(o=*WNb9%b^xvXyW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?ooA1)dj<0`C^5I|Cy_8yg!VgC_$+haejh6N5Jc1D^u}gvZF>&cMI~ G;sF4!JJihp literal 0 HcwPel00001 diff --git a/test/image/blend-mode-hardlight-7.swf.png b/test/image/blend-mode-hardlight-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..4f271825776b6edbd001cae83aa22bde9a387d2b GIT binary patch literal 1349 zcwUW^e@GKy7{^CNElJE=MOv;_NygTwEScF!rd+F>DgNP*TqH*YinUfbJ2#LdGTMRG zE;WC#YDCmhVvE|3%HoKdExFKa*s^un8l}5g-Zs&0{h;K9#;{ndSn-~mLZ*&~H+v3qcBQMHGiCnaeP9l2CcHW<`bI`spb+QfE*N0PE?T;7 zuJmg?i#2aloU^N_>e`o~AxX&*PHw@X?H=`&Nws6+q0j@v;?5g8$%j}fQN!?)QwTWPhFWCg5^Mrt2G*Cw-u5|@ItiX42ud{$y#F=Kv1UaRG{xJ5HuS~^KSdH0 zsV8xQH(`a9430?ZG~lSq48+(LM+I^wY{K+VKYbq#bisjQE8L<%x$c?(6{1L-B0cSA zGq!W<;v&rNSF%jYQ}i=ZtsCnu%G3&7TDMnWp0Zcss7-*4dfqUNI=OJR9{m&tM|955 zl_C`%!{l&@#(?`m;k2Sc+a?SRzjRfprWYLE9o6(+l!=%;hyH-%Q^u8QsYZsnaXDP7 nLD9YH_hSXN&PefOL@KM{;(0~->D1%QFUS(-N^Z2?S471=tefgq5D=-=^hJr#j2!)t;_}p)s@@GnOmgJu>*wQa~{F~ic*h&BZ literal 0 HcwPel00001 diff --git a/test/image/blend-mode-hardlight-8.swf.png b/test/image/blend-mode-hardlight-8.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..f1d4c98ab58fd666e920b0e1a1661d0c2f84dcb5 GIT binary patch literal 1349 zcwUW^e@GKy7{^CMElJE=MOv;FNygU5ESc#^rd+F>89@%oMRHW2Xls?Ta|2N#qa9@J z(o&O^BchfPThxA37DwD{$%$q|m#x#*2;I%{wuyG@2lY>Gyu9zj`~Bks-{<+h@5KWW zFg7MJhQ(sViudFlWa?yivllRDSBB~pQx+ZD2j;Qn!t0hr-^3`372<;Y#e?kFr7Kdt z9!5G@tcBy^yj_Q?Z+;yfmXsXl!kDec=WZwI36eID zw1cD(lAa!=>25f1Mr7q<<0K7v$v1ou^WGtvbSn2cx)e6E$&OG=2c09D(JB;)W@ z@t6)v<67p7uyUv+86TJ`Hg--!Kn>rP6z4CZ+5d6w0%DLA}t%kj5e4i69qsV^r{SSJtLrIS}J&jmBuOV)g#nM$E}mhya1V zPfvd9I~iXiOXgUbkr$4Q5qe*j0^LAnP4+|?`ur0l0)!YLyX+cax328KePw|Om~TKv z(EFZ>p%&}R!~33>l@Woz>ZgPE8 ziG!3+scw6s1NZr(|$g4 z2e%mm(16rpW@J%&iSQM zq~c?k94^rqa9=2#R#a%)f}!D;t}4~^f}^{mn%?U&5tHZ8ACP>;xJE72$WS*fhf6gm mx>x;SqR7?}DV~f-k+2-hT#BjF& literal 0 HcwPel00001 diff --git a/test/image/blend-mode-inverse-7.swf b/test/image/blend-mode-inverse-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..c3383f3edcb81a42c22efdd353592b69571d398d GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fx(1<^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?o=I1)dp>0`C^5F#{t*8yg!VgDC?;haejh6N5Pe1D68>gvZEW%)r0| G;sF5TA=Ci? literal 0 HcwPel00001 diff --git a/test/image/blend-mode-inverse-7.swf.png b/test/image/blend-mode-inverse-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..78faaa6699089876bbad04095c408227234afb3e GIT binary patch literal 1206 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`u|KEW->>MX6WdyPKb}jG}G|_BQbG@*HW0nYt z;P%s5_ja$3Z-1yC-}dnQ{Pu_b^V=Tw%eOz=y*u&8;r7HI=jSK>xV}E|$JbJcx;nWw zd7#wq--$oIl}XIAScubDgy5#N{eIF5pI>v=-y~R7Y|Qh&_w{0a{=*-BC#OHYefyKd z@_9`E_z9Q+6x{apV&=)ucUl)+E~u+5xy3Pe-CvvSg1>%$H~90(h{u{pm&~iq{pAxF_E(0POR>%Lu?#5%gnFmvWLVl_rR*?r=}>({Ds$+tNEO8-C5{in%~K!O4b=Dc2fS?RvXpFcIP zCg0cpzxi_VoZZS_?tHJADF5_MGSTU#yXNwTw{KVa&-0O9n4f?6!_Mnl{a4TE??3$E zi*5Xq$#V&$8L;5ZYwpWk_qDetR_szPG19H{J8W(aGzl30)_X7OSFG#RU6LrK=TFe6 zQ`_vS>g{>v-{!C_cYksEv_Z{8NE$k9Umur5bW~Iw{qqDEeU~pA{CRlT;E(w_V5|be z`O}||kFRVHCg>ZW;O$>8p4{0w|FYYQyLSyhsX+;tz2Xe(fvn%(iA>1#3?Y+b_?&f9 R+AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPUJbW1)TNrLSFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPp$#6?moEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Yu|KEW->>MX6WdyPKb}jG}G|_BQbG@*HW0nYt z;P%s5_ja$3Z-1yC-}dnQ{Pu_b^V=Tw%eOz=y*u&8;r7HI=jSK>xV}E|$JbJcx;nWw zd7#wq--$oIl}XIAScubDgy5#N{eIF5pI>v=-y~R7Y|Qh&_w{0a{=*-BC#OHYefyKd z@_9`E_z9Q+6x{apV&=)ucUl)+E~u+5xy3Pe-CvvSg1>%$H~90(h{u{pm&~iq{pAxF_E(0POR>%Lu?#5%gnFmvWLVl_rR*?r=}>({Ds$+tNEO8-C5{in%~K!O4b=Dc2fS?RvXpFcIP zCg0cpzxi_VoZZS_?tHJADF5_MGSTU#yXNwTw{KVa&-0O9n4f?6!_Mnl{a4TE??3$E zi*5Xq$#V&$8L;5ZYwpWk_qDetR_szPG19H{J8W(aGzl30)_X7OSFG#RU6LrK=TFe6 zQ`_vS>g{>v-{!C_cYksEv_Z{8NE$k9Umur5bW~Iw{qqDEeU~pA{CRlT;E(w_V5|be z`O}||kFRVHCg>ZW;O$>8p4{0w|FYYQyLSyhsX+;tz2Xe(fvn%(iA>1#3?Y+b_?&f9 R+yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?pte1s)%c0`C?lHv=O>8yg!V11|$Zhaejh69Yd31Cs*-gvZFh4dnp< DO8nAk literal 0 HcwPel00001 diff --git a/test/image/blend-mode-layer-7.swf.png b/test/image/blend-mode-layer-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..1d533e317829cc2423c120a4e47fb45e98a0acaf GIT binary patch literal 1366 zcwUWEYe-XZ934?PB7@2-%(!8Y1lLw-kIB?B*IJ<~2}(yR8jBu^vQ}+&w}BMBccH50&BwmojH%d9&MVtS}q4?0Q#gjk!m9_h|NC1@)yiF8_Prd^ntQem{QawwH5K zXJyQy(P*jMEu|Fz$K#Ja4g5RTDINouxqlm{lr|OrT6zs?z@$jHW$ct8dg|;2aB9PW zdoZS zVJfAQ(2jPG+vex5XjsmEb(7wdwo#pRuwr`I`4;Znze#c9aRhVp`-l#bdP!0!NllWJ ziKK=`DayzS$(ahiih=vwVsmtD(F@#H=U&*9{tvCcNIMd=z$Jz|u1;3S@{EIuit6Ej zRoIBWS61rG)n%yYNIlHAMRK7+jbor6Nh{j)KbJqrr)#0!9521OtIe)95I}(M)K3E8 z->}!IH<2FwCz6`DYeLJTB?(P7EEiox1=l+CDxdRGRl_S`?fNGoJu1{d+o zc5CZ%&S+i&IY3qitX@3rXn`)hl^4xx%Vq?uL%`e~CotyG8_3f)P*NI}ejiRY^7q|> z7a?^fFJN^IcHl@*)QDO@m9|_+4%dSA7M{1jeV1&$M~sBC24q+0vq`inq-4EMZ^eDG zMzs9GD`C~CmDnV3XA&Lx;?a*MCsT~`S39&1#_VFGQf25E;CbmIaZO=p3IUTnG&dXu zV`xGj8WLm#k|`J*IQ72qKLot4JP_=V>?o*Lj*dcN*BEn zj~IMIxt6rrvLqR_VlUW@A4@WWo7%urrd>ePn zOQ>Z8+j{Op5EU^M@Zu*znZKq$5WDEb)x{cOl6)!U>!JlqBGSTWU2>+vd=-TIIx`(@ z1PM{cWPVH>tzjyzsOuDaTmWB{AEes4?ke*B>j5#y}xE>L)8BxXVnt77Q kA>>{CYes%fVrQ`#8J@EzI%^{N;4IR(?DEp~l6?(70Kg@Gx&QzG literal 0 HcwPel00001 diff --git a/test/image/blend-mode-layer-8.swf b/test/image/blend-mode-layer-8.swf new file mode 100644 index 0000000000000000000000000000000000000000..97fe635b13784955018871094b77903ff1f8f165 GIT binary patch literal 1701 zcwTc059V0P#=ua(z?s0nFpYtMk&(ffiGhK^MUW9l+H=|isTc;<4-6j|DsH_!+$hpu zz`%MyWZ8s6B0(OCt(rcGT){wEWLbdR|GRt3Zv)Lj0!uWPu2_W(62I4mha!W+*P>AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPVJbW1)V;F8aFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPAr2nYmoEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Y!Mn?}XODt zH>OfL3GGYSfMW5(*L3L7imX=7P!=K*VV-eS)OrFQE>wt zunL>e_sS}rxuzTy9ch61wn!dSq;U)mAZf*$|L5{2`E(uBm*b_kcDLKr1_B81o%$&t z{2TT;^(NAz|3p%g_e^L-v^1f~#+9P0s6e~QDPcY5n6eplP+xAqYR~%vjI<&KW^fVT zY`3>P=ZxhikOO2*!0N@*juz_D+j!CZ_H0JLItGzRjBY)o` zco9-(@&Z=ZP$!NAMa`%MRB6kDwab!9r* z2@;}?$^4i&TFX>iRcWX1o kL&&>^*NlRk#Li-~GCXHbbk#-*z*(em*%f6SrTZIy0He`>82|tP literal 0 HcwPel00001 diff --git a/test/image/blend-mode-lighten-7.swf b/test/image/blend-mode-lighten-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..2eab3129ca43f3b32099a58bb84af01c660cc4ff GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fkB#q^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?k$;1)eO90`C^56ayne8yg!VgA4;hhaejh6N4NB1FHiAgvZDr#lXM> G;sF4p2-5-p literal 0 HcwPel00001 diff --git a/test/image/blend-mode-lighten-7.swf.png b/test/image/blend-mode-lighten-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..891460cde050ee70f8704ec90bba34b764ac5656 GIT binary patch literal 1033 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`EaktG3V`F@2u!R5!Ztjh5zhr{-0d7dfE1mz4OFE-!@N3 ze0c5ItCxqLJUzPcv9^4@jGefi|Ai$SvqT&xD`f<+_;xMu6g1InQgcNXJoS0Y75tsW-W^ZDY--V4R+`{z}!GO?GR8z(=v52*7l zaW;w+Tb=t~@ptFX7he{<*m>Q3dGhDL3SI&lfr5`~N@gYb9e*yi@OhuUk^I+RFQWIe z#>^$)R*qRy3hk_H&s9!*>|Rq_64e4UAx_>@zO`JPfPGDBsdM`Mnmvzi*ZcJN>*eM} z&lVTN_>K}ZWtG|ik z>o1KxZAAHRZ>;56sq?lAUuN(5S#fLDto}p0h4JeG3L2erUvB$w=h8*~|Lo_#`5L%G zpQuQFuSis2{+(}a_g!n*`AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bP1JbW1)vl(tWFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPAr~IhmoEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Y}xs@$FjRDQKeEq~?k&cFkD4FK5f!MJD=l&r^o#y<)Iaz#SAP@7 z*IycY+KBSs-dM}CQs-?KzRce9v*OmQS^bB03**-X6f`>LzTEcV&ZUd||Jl!f^EGgX zK2ecyOBfi0X}!j}CBDENo@z-_MVQp@e-z?{tB>FVdQ&MBb@0LK!uo&W#< literal 0 HcwPel00001 diff --git a/test/image/blend-mode-multiply-7.swf b/test/image/blend-mode-multiply-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..3476ad2f564c03e0a0afc86bf204d9019d7fbbef GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fkBXg^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?h^@1)eaD0`C^500SdK8yg!VgAfBlhaejh6N3l?1G57IgvZDrz`(!+ G;sF4?`_h~M literal 0 HcwPel00001 diff --git a/test/image/blend-mode-multiply-7.swf.png b/test/image/blend-mode-multiply-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc210206d580dd36da5003e74bd31695a585efc GIT binary patch literal 1616 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`~p5=35zP)VupUM5{A9kMX55Ewo`C^4gNeGvf7OU*kramu6_oWLK2cZg! zzWovRfA7BfKmY!+9N*7Z@aHST@%iNie+rq8Pk;TrKYscC2a~_c%H&I1#Dy2^(Ron8 z#((^~#DgEdm)kB>4kpG5Q8W44e{8{aTTE*wu6;TAjC*{F-7lrj7sY4x+nrAk{AD%q zu`EzfdPcvU_=i2!XMsXY+b_@N@u+sf;$CcaCp`b7J#H+Y8#RjvlrPi7_1Ffttpv_aAfb3Hb7Z zwNE}n(CePvFNMz+o6oq*ryG5;X?%R#O>Cib<$LuXZ-2eqJHh-i-v*AkY8Tx62^tO& zZawS%etv>d#eWuI$1SFN>zlUs-@8~dMdtp=ni9)q-Di(k`i}dFElikhwKsed$J~S0 zZP|XXE$5W^-h#(aWZ@e%U%oMZYuV1fL48kcL+69H%zJ9T{NwD)fAV(mY1ST_=f;)p z8c{9p9(>z7(e;H>ooOB0{Ra{cyl1Kv+z}?|e28%3=Zmjdd-&Ij8`$lMJ8;{5z4(R@ zAcNcWrqUNDv4!cIIBXlEw{X<1d+@$S=gHRj#uAl%jQgf!G94!&CjM44bzk_)Gp*~k zq>kuy;|Q%q@xAHqIb6Fh81JZ^f5O_S{KHZkb0hiKgVQ(ZJds^!JgdJc{LnYz!>Q!{ z!8L{I(U;${r1ie;JR{}*WbKR>;g2s`J6%+o^5^9|>mQeG!#3@SJ&|pnZtzLw@vpzh zU)tYs5)(i`;SE1uxYeoGD(4@KImuRZ@83LPFlj}+>`Q4p!BG{0~jjLx!mSKoc}%d_rH(1tnWEu#Xg+; z%=7O;a)bXowNK|2=Fk39LTm)5GQK`l$=G~y<0RJ?OnLWHKK+V1@Z@U*5G(w?@tf%% z_j~Odxp_|}i@h5G>s9yn(_BdJf)$8fpi8twZjM}H~(?@4C+-)?`waAwlI z6YB9NKX&z<++V3S--fMf(xiH}pLd=t*Cx{JKE|@yml<}SHUIfU{O6P8hVQfNPJEP= zUF@py^T}M9{3jKP$BixJo=Di1kx=Yd`6fL1sdoH{>(a}UWtz9o^1Iv&%(5SQW#*sw s=+|dn#8YQ1w^#8?yq!DIhW=+h7|YTVTe*5ZutH$)boFyt=akR{0B;i882|tP literal 0 HcwPel00001 diff --git a/test/image/blend-mode-multiply-8.swf b/test/image/blend-mode-multiply-8.swf new file mode 100644 index 0000000000000000000000000000000000000000..f451edebefdd0a36e5de774fdc85492539d1ecfa GIT binary patch literal 1701 zcwTc059V0P#=ua(z?s0nFpYtMk&(ffiGhK^MUW9l+H=|isYC|W4-6j|DsH_!+$hpu zz`%MyWZ8s6B0(OCt(rcGT){wEWLbdR|GRt3Zv)Lj0!uWPu2_W(62I4mha!W+*P>AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bP5JbW1)6B%wgFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPAsHUjmoEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&Y~p5=35zP)VupUM5{A9kMX55Ewo`C^4gNeGvf7OU*kramu6_oWLK2cZg! zzWovRfA7BfKmY!+9N*7Z@aHST@%iNie+rq8Pk;TrKYscC2a~_c%H&I1#Dy2^(Ron8 z#((^~#DgEdm)kB>4kpG5Q8W44e{8{aTTE*wu6;TAjC*{F-7lrj7sY4x+nrAk{AD%q zu`EzfdPcvU_=i2!XMsXY+b_@N@u+sf;$CcaCp`b7J#H+Y8#RjvlrPi7_1Ffttpv_aAfb3Hb7Z zwNE}n(CePvFNMz+o6oq*ryG5;X?%R#O>Cib<$LuXZ-2eqJHh-i-v*AkY8Tx62^tO& zZawS%etv>d#eWuI$1SFN>zlUs-@8~dMdtp=ni9)q-Di(k`i}dFElikhwKsed$J~S0 zZP|XXE$5W^-h#(aWZ@e%U%oMZYuV1fL48kcL+69H%zJ9T{NwD)fAV(mY1ST_=f;)p z8c{9p9(>z7(e;H>ooOB0{Ra{cyl1Kv+z}?|e28%3=Zmjdd-&Ij8`$lMJ8;{5z4(R@ zAcNcWrqUNDv4!cIIBXlEw{X<1d+@$S=gHRj#uAl%jQgf!G94!&CjM44bzk_)Gp*~k zq>kuy;|Q%q@xAHqIb6Fh81JZ^f5O_S{KHZkb0hiKgVQ(ZJds^!JgdJc{LnYz!>Q!{ z!8L{I(U;${r1ie;JR{}*WbKR>;g2s`J6%+o^5^9|>mQeG!#3@SJ&|pnZtzLw@vpzh zU)tYs5)(i`;SE1uxYeoGD(4@KImuRZ@83LPFlj}+>`Q4p!BG{0~jjLx!mSKoc}%d_rH(1tnWEu#Xg+; z%=7O;a)bXowNK|2=Fk39LTm)5GQK`l$=G~y<0RJ?OnLWHKK+V1@Z@U*5G(w?@tf%% z_j~Odxp_|}i@h5G>s9yn(_BdJf)$8fpi8twZjM}H~(?@4C+-)?`waAwlI z6YB9NKX&z<++V3S--fMf(xiH}pLd=t*Cx{JKE|@yml<}SHUIfU{O6P8hVQfNPJEP= zUF@py^T}M9{3jKP$BixJo=Di1kx=Yd`6fL1sdoH{>(a}UWtz9o^1Iv&%(5SQW#*sw s=+|dn#8YQ1w^#8?yq!DIhW=+h7|YTVTe*5ZutH$)boFyt=akR{0FSHM^Z)<= literal 0 HcwPel00001 diff --git a/test/image/blend-mode-normal-7.swf b/test/image/blend-mode-normal-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..87202ee55bf2dbbade589fc4bccfefd79b8bfcd7 GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fq|WY^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?j}o1s*4k0`C?l8v`Rl8yg!V0|x^`haejh69X5p>TzIz@E93@bqN!Q F2LRXZ(l!79 literal 0 HcwPel00001 diff --git a/test/image/blend-mode-normal-7.swf.png b/test/image/blend-mode-normal-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..d893ffef14b319b230a760b0f2370873cfd2be6d GIT binary patch literal 1366 zcwUWEYe-XZ934?PB7@2-%(!8Y1lLw-kIB?B*IJ<~3ra^b8iO8+vQ}+&w}BMBccH50&Bwhcahnd9&MVtS}q4?0Q#gjk!m9_h|NC1@)yiF8_Prd^ntQem{Qacb0Qf z=VZ*G(P*jMZKV|eC*qGj1N^%-C>{fteQ*b-lr|mzTKf!Yz@$jHW$ct;dg|Oo%mdYp zyJ@tU6t{Hq9_e+@=;)E9DNES9hBPfPt$F&CX5*Eu@>$TiL%o&mu&^FibK45@ZL>P-P{qu$3$5Jwf0N>-6A0!Q@DZIP^^&AelA0nZ z6G;t^QIwGtk~0;26$AIV#pdYxq8GTY-o3av{U2I?k#;0#flCZ`U0tk@|k3F|q>l+CDv`c?<5_S`?fNGoJu1{d+o zc6c`+)P!04uAOk;BX z;MqF-j?b9c4=V>{GXKKn$ihQN&;S1``9gu>+~pAp#vzrHfvT zM-0B9T+7;QS&|G|u@~${^4)i5Ul(wCYL@eGHH52Ca>$ky>}AQqN1~X29G840zD+n5 zB-Ap3Z9V@Xh>DmBcS7HsMZT2sbliz6!#9U73z{ zf`q8!GCwAc)-n~>RNCqLxPM$rCf!#HOG5~m76t|`NN=VR#vB>~T#ty@jHqJw%sfft jF!HY9H6uSKv9s8$49~ffUA2*Xa29D?c6n(>$$`cngj|2F literal 0 HcwPel00001 diff --git a/test/image/blend-mode-normal-8.swf b/test/image/blend-mode-normal-8.swf new file mode 100644 index 0000000000000000000000000000000000000000..63666bdb85ff02aacd9a6aae83c9700df90f39a1 GIT binary patch literal 1701 zcwTc059V0P#=ua(z?s0nFpYtMk&(ffiGhK^MUW9l+H=|isc;6?4-6j|DsH_!+$hpu zz`%MyWZ8s6B0(OCt(rcGT){wEWLbdR|GRt3Zv)Lj0!uWPu2_W(62I4mha!W+*P>AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bO?JbW1)!x?TmFtCCGM?m<&H1@6tIk5#5w;F&! zeUycPArc6Yl&;7P3f2K5NN&X3gE&Y?HntDyeW#^t>S&X2=6=XrR}@2udY z&dHcVqtQ~i+sY~dPQ)L52KaZbS3CtU```{v8ErcL-Rv=_0h1!(ma|ia>8W!UZB*?d zlr-8*id(jMxAeMabo9v5lqKw41DckY);xVmv*F5C`7G$%q3&vTSXhs%+UMnevW>f| zFqP6tXvZE**cKM7YFx>Fb(`LtwppEZsB&icg`3>@f0N>-6A0$$^AQ~+^^&AelA0nZ z6G;t^QIwGtk~0;26$AIV#pdX`;vw8u?_S)T{tvCcNIMd=z@>(Ju1;3S@`8hkiW}g7 zRoH~SS61uHHRY)2Xamf*Me?8`jibL0Nh{v+KbJqr=j))J95214tIe)95I}(M)K3B7 z->~1QH<2FwCz6`HZ$c}gr3p|k32TsJ%4XC-J-Gp^J?{@N(ux?E!9{$t z-Pu0K8Ou)~2gsU$)r+ScE7Ya8@}l`|*^Gd77?|7V1jami19|2aN=n1h?<2`Z{=P>r z6jEpM0#?^R2aW_qO{fJ_Y0HD;a2;rG@dXRqd)elD!bmu4Kz4;bn?$QaO4j@IR@^6R zLMtx567D^ni%kJ{CehI^9{ogeG9@^FjYIor+%86{Rfdj!o|irv*A#}P5ir@q^TS~< zhGz7!Awfn!jyUyRywWEh*<{JVv?O($srXn$7}%f1$o|+RyMNN^Hm+R@oq>4CG$!Zw zpRL31`iz;qu(Dq!^DpepDCt=tiN|!@n4Gk_-h%QIMf|mIFwut_+mUJ=BG4gwbjKV$n&muP4dH5(9I#~tyIHdEktpUL$0c8hZxfCM z3AK!1ThD(8q9UdOUiwTZ^Vb#%Vwb$Qx?}4b!*lLrXKkbaoJAU!T~XFvdZ6(K`~QGl literal 0 HcwPel00001 diff --git a/test/image/blend-mode-overlay-7.swf b/test/image/blend-mode-overlay-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..a6cf9277400cfbc73e4471c4b28b3e0861115d10 GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fx(%9^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?kq)1)eL80`C^569Xed8yg!Vg9`&ghaejh6N4KA1Fr)EgvZF>#K6D= G;sF3WJk**1 literal 0 HcwPel00001 diff --git a/test/image/blend-mode-overlay-7.swf.png b/test/image/blend-mode-overlay-7.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..3d39a60badaef9a24ba1fa0ec6592dd1f3aa4d44 GIT binary patch literal 1384 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`^q`-dN&XieT!T{<`0mGIe*aeF>k_Z#UibMY3g0{IkW|GwpWWDSw_SxNEI@ z`>Q+n+z1nte7-n-`p*~JQ|+ww)_y5nuT}f7rbM#RZrb7Rse)Cp>o&aJ^l8q!W67K^ zOT?H_!f@6{OSJNpK``c zQ?H1d_h6&Vl*6Yp-LGvu{P(AQe0clQw~O0TSN<^D8&DG2vQPK=!Q#jk zySB}@mA>q%IY0erwVi(Vh2%<&a(!kFppMUir+Drfcct#2tMG9lfY9{G5SX|2xYW5*L?D}(Tq8D>VLQCIITZ?Ggq)`uG>8QYWEj! zx7B?5)OX?Zr<2d0cH2$!x8rTUOVCJ2s-K=3TRD?$@@b_nMsx0}t)HIysVY)!{bjpv zoBnXGKb=?n>&e>>Ch~XX9{#s~MWjP*^@GoRHacqK|N7MRzmli_e|Y)9*^`5!(1 zJxku@*=~QB$aGYtv-@oF&D?z-CQtu9Yu~#M+t&S&ssF5QxhG~fQ3+hee)>(dnj)gq b{$Y>((C+`KZE6Rwpk(lL^>bP0l+XkKQ}tZ2?S3{&Ajefgq5D=-=^hJr#j2!)t;_}p)s@@GnOmgJu>*wQa~{F~>0N~Qt7XSbN literal 0 HcwPel00001 diff --git a/test/image/blend-mode-overlay-8.swf.png b/test/image/blend-mode-overlay-8.swf.png new file mode 100644 index 0000000000000000000000000000000000000000..f307268eb7d99a9bbe5fb3c7695af7ee11a42496 GIT binary patch literal 1384 zcwXxa@N?(olHy`uVBq!ia0vp^A3&Ic2}o`^q`-dN&XieT!T{<`0mGIe*aeF>k_Z#UibMY3g0{IkW|GwpWWDSw_SxNEI@ z`>Q+n+z1nte7-n-`p*~JQ|+ww)_y5nuT}f7rbM#RZrb7Rse)Cp>o&aJ^l8q!W67K^ zOT?H_!f@6{OSJNpK``c zQ?H1d_h6&Vl*6Yp-LGvu{P(AQe0clQw~O0TSN<^D8&DG2vQPK=!Q#jk zySB}@mA>q%IY0erwVi(Vh2%<&a(!kFppMUir+Drfcct#2tMG9lfY9{G5SX|2xYW5*L?D}(Tq8D>VLQCIITZ?Ggq)`uG>8QYWEj! zx7B?5)OX?Zr<2d0cH2$!x8rTUOVCJ2s-K=3TRD?$@@b_nMsx0}t)HIysVY)!{bjpv zoBnXGKb=?n>&e>>Ch~XX9{#s~MWjP*^@GoRHacqK|N7MRzmli_e|Y)9*^`5!(1 zJxku@*=~QB$aGYtv-@oF&D?z-CQtu9Yu~#M+t&S&ssF5QxhG~fQ3+hee)>(dnj)gq b{$Y>((C+`KZE6Rwpk(lL^>bP0l+XkK@{Vay literal 0 HcwPel00001 diff --git a/test/image/blend-mode-screen-7.swf b/test/image/blend-mode-screen-7.swf new file mode 100644 index 0000000000000000000000000000000000000000..c013c30cbe7b685ce9b7b7a953bc6bf94d480c61 GIT binary patch literal 1695 zcwTc04`!dw#=ua(z?s0nFpYtMk&(ffiGhK^p3|O@fkBLc^#j8PhKgHn4>yW57%;FN z5Lq_ikVue+VymW4B3Cew7FiY`_y6wR^4maDkiZhnr7Kn;gT(K(;i1Uj@UTk{~UskVN zntOj!?%V2bd;gv&+%n(t{5S3ESL>edyFK5=|M%?gx&J@azI`}7zV7GKQDT%BB}NIV z5#QI>)nAPQ6?l?J1)cEaktG3V`FPrp<{0oQ|BEB4+0pO(!X({fP8wI}!*v+Uo% zQ+5CIKE0oxc-Wl3UgBKqYtC6Bj+2!#f>?aJ7I+GpXf~<2URc6`ELb_?+mCyHW841g z9Ns_uVf^V2=TmYRO?eQt~2;mfUy zl_x)ZVUH{N{i0;yi=ETot?fUwS(qq0ch51luQ~bnYo2_oxeEc$vG|_aVQ2N$L8|W4 zhn+x=ZttIW+jQ@vgbH4w0w#0q$4L(}cYm6cZ}+|8FEC>Ahz%LP)ia*w9sMGyU%Uwz z4Y9=8_VdG?wKM$cW=>w7_AP zS2r9lMALHqa|o)Ixa&(%RJ7%;U5Tot`aKFi>xN+)ihxwvIaD2Od*4T+Si<|;rXN+y zx7v6V6{c^ZywSAO&PUV2{(7sEp$bPjJbW1)(->|#FtCCGM?m<&H1@6tIk5#5w;F&! zeUycPAp;)NmoEym0;Az#C@6G;P>6Yl&;7P3f2K5NN&X3gE&YV8dSM9%vS8(mZ$Iw+jcxm{ zb9n#shw-OBoKO96+~`lO z*Zq3&^gDJ|ywUQl#{~$w*=Sw=ylT@rsdM&m_PH&7hcCA-l3U+?T@_!rfdx}zS#W?`c2+&#zGzUJiPuX*yV<}L(0$Krcxhn>}12dTPG zA9eygy1jqiZPUGv5-NC!3Yg5bA16J`-2G`%zTNkVzrcveBQ|9GR?m2zcl3*-e(@$? zG{h2T+s_Yo*3R&&n>l%T;_Jm9-Vg{zpkUAI#n0#2*_VG(oj>tEGgy}dQC1bNpXq;i zdQDq?-KUe++#ebeXH^)>=fnR>{pI3*v=X!g9P(V{pScN|%rR@q|L#Vvmh?#{)PZ@J N!PC{xWt~$(69A~dv4#Ku literal 0 HcwPel00001 diff --git a/test/image/blend-mode.c b/test/image/blend-mode.c new file mode 100644 index 00000000..c302cc48 --- /dev/null +++ b/test/image/blend-mode.c @@ -0,0 +1,134 @@ +/* gcc -Wall `pkg-config --libs --cflags libming glib-2.0` blend-mode.c -o blend-mode && ./blend-mode + */ + +#include +#include + +#define SIZE 240 + +const char *modes[] = { + "0", + "normal", + "layer", + "multiply", + "screen", + "lighten", + "darken", + "difference", + "add", + "subtract", + "inverse", + "alpha", + "erase", + "overlay", + "hardlight", + "15" +}; + +SWFBitmap +create_yellow_image (guint w, guint h) +{ + guint32 *data; + guint x, y; + SWFBitmap ret; + + data = g_malloc (w * h * 4); + for (y = 0; y < h; y++) { + /* get 15 steps of 10 pixel high lines fading in yellow */ + guint32 pixel = 255 / 15 * (y * 16 / h); + pixel *= 0x01010100; + for (x = 0; x < w; x++) { + data[y * w + x] = pixel; + } + } + ret = newSWFBitmap_fromData ((guint8 *) data, w, h, TRUE); + g_free (data); + return ret; +} + +SWFBitmap +create_teal_image (guint w, guint h) +{ + guint32 *data; + guint x, y; + SWFBitmap ret; + + data = g_malloc (w * h * 4); + for (y = 0; y < h; y++) { + /* get 15 steps of 10 pixel high lines fading in yellow */ + for (x = 0; x < w; x++) { + guint32 pixel = 255 / 15 * (x * 16 / w); + pixel *= 0x01000101; + data[y * w + x] = pixel; + } + } + ret = newSWFBitmap_fromData ((guint8 *) data, w, h, TRUE); + g_free (data); + return ret; +} + +static SWFDisplayItem +add_images (SWFMovie movie, int blend_mode) +{ + SWFBitmap bitmap; + SWFShape shape; + SWFMovieClip clip; + SWFDisplayItem item; + + clip = newSWFMovieClip (); + + bitmap = create_yellow_image (SIZE, SIZE); + shape = newSWFShapeFromBitmap (bitmap, SWFFILL_CLIPPED_BITMAP); + item = SWFMovieClip_add (clip, (SWFBlock) shape); + SWFDisplayItem_setDepth (item, 1); + + bitmap = create_teal_image (SIZE, SIZE); + shape = newSWFShapeFromBitmap (bitmap, SWFFILL_CLIPPED_BITMAP); + item = SWFMovieClip_add (clip, (SWFBlock) shape); + SWFDisplayItem_setDepth (item, 2); + SWFDisplayItem_setBlendMode (item, blend_mode); + + SWFMovieClip_nextFrame (clip); + + item = SWFMovie_add (movie, (SWFBlock) clip); + SWFDisplayItem_setBlendMode (item, SWFBLEND_MODE_LAYER); + + return item; +} + +static void +do_movie (int version) +{ + SWFMovie movie; + char *real_name; + int mode; + + for (mode = 0; mode < G_N_ELEMENTS (modes); mode++) { + movie = newSWFMovieWithVersion (version); + movie = newSWFMovie(); + SWFMovie_setRate (movie, 1); + SWFMovie_setDimension (movie, SIZE, SIZE); + SWFMovie_setBackground (movie, 0, 0, 0); + + add_images (movie, mode); + SWFMovie_nextFrame (movie); + + real_name = g_strdup_printf ("blend-mode-%s-%d.swf", modes[mode], version); + SWFMovie_save (movie, real_name); + g_free (real_name); + } +} + +int +main (int argc, char **argv) +{ + int i; + + if (Ming_init ()) + return 1; + + for (i = 7; i < 9; i++) + do_movie (i); + + return 0; +} -- 2.11.4.GIT