From 3f05669fbdd8335b702fab2d3ac7c248588c54a6 Mon Sep 17 00:00:00 2001 From: falsycat Date: Sat, 12 Oct 2019 00:00:00 +0000 Subject: [PATCH] [update] Implemented showing a title logo in TitleScene. --- dub.json | 2 + res/images/title.png | Bin 0 -> 10023 bytes src/sj/Game.d | 3 +- src/sj/TitleScene.d | 34 ++++++++++--- src/sj/TitleTextProgram.d | 99 +++++++++++++++++++++++++++++++++----- src/sj/util/image.d | 37 ++++++++++++++ 6 files changed, 154 insertions(+), 21 deletions(-) create mode 100644 res/images/title.png create mode 100644 src/sj/util/image.d diff --git a/dub.json b/dub.json index e13ce0f..6cf5d5b 100644 --- a/dub.json +++ b/dub.json @@ -3,6 +3,8 @@ "targetPath": ".bin", + "stringImportPaths": ["res"], + "dependencies": { "sjplayer": {"path": "sjplayer"}, diff --git a/res/images/title.png b/res/images/title.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ab1c3f7956ba1c752a3bf4995128f70e9cbb59 GIT binary patch literal 10023 zcmcJ#gnO zLWBV$Bu4Ew_49rF{(;}`@mSt_ALpE%-FxDBpK005VWAA!jK z$ce8ROB_1Hx63{{mVN+0i~jQjWr)#o000l5t9jcbD1U1{aH`BS_;?p5XA#1DKb=nl z_3RZT$pdr|Sr;R732Uj)E1FWiL-aF2Igj#KhPY>uuLNUtsGq&kqQ3ly>h9aiqq7Zd z=}v(WusP+)p&>)XqkWZ!3-h?O)*-=8+<@ZIfb#IB-%R+eQ~}-p-yW_IIS_5WKRr>w z=ygxhuuIwC^;-h28eBAImn|sUeLll=h*SJgIJ%22zsL4?@{gVYwMd(%IFAO!4}ErUzzFyT3cvRo$QY>W(&hTt16m zSd5myuq?GbNWCfOY@h__R=P^oOV!iWtNPvv5rYd5!Z02X5w|q1OJNjKrNg)^21QV< zd$XKlX%m<;D-+pHn)QY+Oe@0lw`>_;(u?YP==Pv8Mj>0l5AQ~xP; zA)f#Q-D=p%5|~w}n9)x+`Obw3zgN4Dq@QwIse39@cpkkx zq^1)*Jj|MaJ?)wlt!Oofs`{gcEX;LG>gi|6&mcfI7w&9CbPqd3ZO0Q68-txs)S*8{ zeeSWpJ$IbBcWTOBXNf|BW(^e*3E4iUr2*Y#q{#xNYc!Q*t_U?>@OeJNIFe?>;X2fC z2_AveTZRhkZ0b^g<!Z@!4$Wg0AHIjRA>~+ci>3fG3-&*O|?)E zccDLh|GdIFpydJO#w3@G=gOC-z8kTDOcNp;-Ef01lG?Q&MISF@lOGu< zMKYXH`Le$fa3$X(%D#D`;)7wGoh{PglDp^ZJd87U{p}1ACZQ|z=i!{l^#>e%zW+5E zEK$0eI(BGX~_QgRI zDKJ{TMHN=uGi;55qK%6tN#p@}CeolLQmR<&5-wk|nD)nqwvS z(_g;m%3>i--R-$kPj)XD`+3yf(Q@|XuIsv~Wg-Er=iWT9`|u%XB;ne9TvB9k+{pyT zee*!YD#$=;pDK+-DBANe1%Tl6Rr!vgB>uWGwqC)?)OTGR6laoY;mGgvD5^L?)Vw60 zGkuo8M!)#h0dY@sa7&-W|DF~+cmMnm$3omhZzi6@$^;CMs;up3x!X6KvNNpVBth1UX-Az$9ayU+9-!SpGn*Nb@UMetn zKO#y$mpqgfe{P3jk=?Kl#1j^1RPr{gDP_(gGR)|_Ko%KdfPia^71KpZ>dkX5*_9)| zsKAMGnDCNC-Bl2>+BnG?5TIG61awEo_NZ(|%LYlf?(a0q14b27-C2?5B=60`BAAIg z)?J7K5YT#W(rntjNx(+Is&?AFYJubll|TB3^8QcX{I-!w06)eC zgXe$sR`;(Eb3iBc-Nc+O1&?b&Q}R@iy;A81NjM|M0;BV2H+E^mX-o{5Ag2{DRGp%2 zereI+!{9TtM^L9hkRT`!n~WBX0HTsk5lYep;?NJ80(-`9no{{GqRS1Rur4+ zhGNFgCZ=j_e;ei57P=s>hQiS6Fm*k0fQ#--yJW~ODj`kUTy|^n4Kc69`>_uC%fPhe zz9zZ_yEy}x5?&~$2Hqp2?x`Xi-Rg>EDwyMNL(7%VY5V^-!FhYLF_zZ#i2C;%vSHQd zdr{eBDC_I`c9vZpC0~r+JBIVa_aIk(GSvB*|%oGuORzHx2BPnswFwJC>0aD@-`&%e6c?Pv+fi zie8N@Zcv1*1W+{|R3}F^uc?P`$ms>AbvHRjh2Hn>4 z5D}@s?aD4MX6gJkA2o9|%ovEYJOWVND3Q1|IhoM z<9`MFl^Qtf#J0fte<>M-nuMt~M!_IE9t%ApvoFscVO}yr2#>p_W)I6e+CJlLhi8i+ z?HzqvD@Wmhp~~ZCyy@wS54^1hu9Yy!znW_8&yiiamaz$-mSe`6)TI?HtroHF=nDvD zLDO28c_J@ZU5NrH)D-Y8m>3?oY5$U#)~gEEZp;jI&7)sM8i;mhu>sAG@qQByce}TY zGe+|c4fi8)G!;i?eMv6QvyF!Z_S_i2jDss`zJ=tMrgH*8pCemog$N5_ z^^iFn&teW|X4|C_ro4(qRbYq3Y;bc?(^A8urqVt4pW7ycSa5p^GGe*=(9H@oBBs7H{jtMuIuJ7J2>VEN5S8 zUC|Fz?9}i$C->iWK1Sry#O7cfLg$qG<5tM?yH{;j7O?ZDV}1(tH!aPnj{Rj8l&r05 zCCXuj4MR*(xI_GWII4izaZB7tuj5Wt?oaG}VgdG1j_TOF+YcN-TW`yUAX?Tz-8pT4 z?=f7B>6q-GiQ;i)F%nTf#8DAIJsp|~Cx{py#h~a?51RVjD>AE!KZx^^v*~dzyf5S? zF%nD_P)oPy4mTT|k~Bb%2Y3{<*6NK(zn+>@_u$!7co!J#9{?0jX6D26CPpk};8Yne_4OLoM^`_<173t!qmLG~+1gE=)pqtNp;?9P-#q^v4B0;3_<(LiV|x`( zVS@V@OmwIInOuOd7h~fAvaZ-GHhe!P1ZivG-6WQ}mHwEU@Tg(v_G$nGi8pdR1P4fb zF*i_2on8e9KYDw+i~% zH2uEG601bI$d?a2Z~0Ei#p9Vb&iJGK`29n!x708;J=`isyCP|c$!UY=XC_$h=4yDu54 zI>;4Yxsd|kRi*T@6kp)h=*^tF0>NTi*KMfVle2eEy}rQPUz;NN!39gL^29>RT$l@4 zw&Uvp-=M);qDo^qmX(=2X&b!ucBc&u5lm!w*uErWC*tCE!1@Vcn3QXD4KAo%cknr{1M8B* zu^h?~%L@kXD`9+?#Jn`6C}{Z@7i|$|E?826{<#yzTL(>xH`LCUZWZnE<}~>DDQ0`~ z7$%Q_=Tt8j#7IDqK#)_z5LT@F0R#*Q?UjmkB)7kNE;up^2sbQwhuRIEg!D#u>224@ zka|LuS4>?Hr@furZ%KhR`j&eqG+cJ~swMGm4d;gcuU9_=$)-dFi@+~+ys{?=m8`3Z z%h`->y?{9jRrza0Bo7SCm!KWh_1Y(sAggmAzqpkbZGs!Q=`WZIAFeL8ccGsiRwpQ3 zgxLk2@G+FSfkis|qifG_ge|yMDBV99 zJn0^AIlPIiw`bC`&bs&Lr(YZnR}*^XB@O@V7>Eg!UCP$|TZ6i7u~mQFgn8Y8dUdqd zDm6}-2aGF9?anpH?yx5sd-6}|aQn$YM<8gJP*au^1jJM-n&X{tRw0aX}cRK%a z+X&%iykFdqp{cr5Y}5Ll<6cioI6_->x<**A;j%=L+5NS*aVMQ-;0ylLUAkHFR8`u8 zF%Z;~snEB_>W~ehjCA#BgV!q1CB11$bpZxfm&*9oE7WLKu7JCBAO++ zKN88kGj|@@BYUOiUK_2TtH7V`UDujP|C_S%bk1A&7jgd7yPSFls(8BXN~!MwwmH@<`#h$E&UAV zTD+ALz^ON?qX6)@K9J*4BFu-Xy_}~v^A$}wZ|M`qlPX^*gY|8pe^ny3@ArrfLbtE5 zrMFW4%f%Kl@o_RB@gVY}HiOB7-Zk;>y|uF`19sM>znX`5mAa8ad-487snP?dz1~b4 za!kZZ&MlvKP=y?5;hV@wn(1=JZv}V7IfjPbLF=wP2?^fh$?^MMh5kq(tuX3-8GA1| zp=}5m{8|J@4SUV3OW9QHVZRHy6G2c}dj5Kdt#39mi!n6M`+B^@@>5J43af1bQ?Dx} z+}pewsZATSojCY1&1_GxpIU2tE7`^6xArdQks0O+-|iDr+@%GR-4-yhBP`QWB>IX` z&4}PJ&<3(jD4)lXY6}(ZuhkOlL;U76-z$NEAf7wzuY1pgopMiLc*M))YEVqr}#^iHxi-Bz~pYS>*SkTk<|V_C*Ke5ed`B$K$FfD`@28sd%*HyN zoaE57Kg(z=mtX&mN{d>%qH-vQ$*nEQScsS3JP!TBKjiA54TnNxC5n{oYK zL0n&eXr=f;tuo+a`N?reFmt#m!x>bhJ-`#uvFtJoQtRm}$jXcQ632XVxq(@_5udT@ zq>aI&qEL34n+BmEIAd`K$(l4unrt{!ByDl@!5>%BPn^#gh5*IqR!EH%_LivQxv*4) z87b?@$+)*ClR||}N;ZG`3h>ZR^wTj1ZRvURPHFkZ6lHTGPhwiAO5p8J`&Kv8OmNMg z5msnpC&39)$zLJcHK=8d*rxAscb2v!wFR+@;+C-2XVQN2g?8V%nc52X2Qf-I*cdL8 zyta4x-2$3->*w#d^Ek`VMTTCs*;?U4E+lKSps_t?W7II9&7{p;6MjzurKZ2axWOI1_$EVH}N3w_4Zk)NsnFCpjh)_EINSntzS2gBxSeJ05heR8W3!fzA7=qql~NWd5CWNWtVF?h)o5j$oJy76Qhm-2fED9mZu_LqQr;8)R@&&?i``39Sx zyk}dq!p)hAI=14@xL-34Z{_3F#HP2wvCn-Cu6O(-yjGBGK%Z%zLYr!Tvwz)uzf#`6 zSwZr}jK_wwo!?Rzy|&z+ZaWFy`r93O&S`l4T)n3ih&bXn`OuO)<+#v4{=&Ct{#Ka1 zm`By!P2~1k#tUfso2cwrtpZX^B(X}we1h81pS!$)-69x%y#~Si3Jr0H7+Fn}ZT&*Z zpL=t-Il5q8sd@TmEw>itP0KGz_S}bI-uoYXN@Idb-fNG^bMJ~}n zSRdi>cBrdV*kgsA=bCv2GqU(&QQhW^i@eDK3?0OI*Gco`o2<7e@6;`iPdocxt7e}6 zvIvwiU8Fe{Ja;)oYJOavY_-+%Pj5?_+gAq~^)*ezoE&C?f{Q zy^0kpX;$1EHaNb)d;K~rpSm`BVS!C+s ziF>~}haWbJJs`q@IY02#Q?HTf%+ZoYf(SJA>vcQKw-`t;$rqQ$MdJtgo>@J%tEbB{ zkmS-=4vK)+8}WVEY&+#H0opaiYj!&w@vwmeSZcJlTH|JfU)(hIcEK}$F@NC7~U%V5YE(t3|a--C=>!2VO=8?l>p zjI3+isKzsz*%|oxzQ~Ty#z`j+6tSH^Q(adCd(xgBWG@2YB$0w6Xcak4aXY-ZzCbZjM zW~Y9DW5nSL2#S-&1glrGde|VwV-w|h8mWXYEOQ%PEcpNhH8P6v@h-9BC!!Dcsm$deUikNXruhBS$b%I zIy3!HZ6{chu~`VaElwZ}^TE4MCuGk@fK#e#_kFM4IQ!aV7x3n!SSPS0RcG_q3}dRP zy#z+#sTa9?-IAsXjlqSdamc~6UI~|l_eSAg5=TRWK4Gi(*oXMlNGTfjiYH}NxnN}Y zno9*27Si1=bQOW5d^u~Wlm~&CbtH8>wK%(4{R#7v^BJ?ide0@U4DblSxp(@Ulf7r=~A~-N4@Y&Ueh!RXR4N|_NuK?{* zf4U}rrCZ_aI(z_BUi4Iy3ag^aO(u&)s@{JCz;H5SatygMYXH zUe~gW)k>%PLzz53M!K&TkvhovXf3Q3!jR|odo4#y(V2}D zX!`?&ZUP@;T4uXBXUZqKu}8n?+$49qHVv$G;gm6IpyNA0)M4UARVma5|m!$8O1*o=LR$ zEnqXH8aCFM*_4xUE6#n)V~hKX{T$j?a5S2UFAzmSg{LlksTo{p@vdy}5)tLE;5-Yt zqHww)5Z8^e?f>C?{|)mU79?)OY|EoWD_ zOT%ut{tq7g%o6YH{8I^YnFf9I4&*6LQaEvogWj4yLbbSt#YYYw{&qk1AxUnKQ5J~% zE#c`83Px+DnDPDA75AXKcXpflWi?q2l(gGSciG8{?x*~LL}?$HVi|gJ=NBJ^ZS5)V z;pO$NU9y?DA8+sSdwQm+G^YmWk1c!CL0%g}lR2*+!Q<@NXL#*c@Qb-nMv&`mYpTer zCe^Ti0aCX66ZH^lp~(CDYWiveRu3X&yRfZn)!Hv_?A|#B3E^m-FwhA zeXx8E2Z=VQ>F7zReM@e0@8Ce9m)_%G+_ol{we)tAz>??4TxGoR%u9=rlwjLHP*F+C zr<&Uc@&(YD8k^&51+RTh^xC8RLqVm)$t&H#q$zEXxe4Bj#GE;*CdSFzy27XRT*K;d ztOM0<5|9{V+rn(@L#13fies;&L&MSq>@T_hnYo;T9+=DdZEw~Ysl$HY@Mw~udo(A1 zgB`-+o$h%qCT6!xq4ll16{R2RG@Qj?&6Y_ozYpUxq(27WpB>B+0=P)dz`F|t_YQ8y z2d1>$UaZp^SVl0xYnCR_qubk)4ar|?cGw|+3nPNp%ruPaSQ^g060ijJ6W+~H%=;>Y zlsZrY8w6j6r=K}$4!xp^LedvB32HX9`+9@c4|y<8$i4GgQiJRpVW&(MyZGQ>@Q((v zou0(0h`S!{tQo;5`OGG$`VN8t@fRP~%Zq^}3szJ@W7)d!=s{w>0Z`2zG+|6Z($fFk zaH|u{l;;M=Al}Uzqi<%jZG&CqcBp#$Xmvr^^B<<wdXlx6pz8LQSe3qahnU82K;ezU@_#G(QcQ4Xi