From 71f275b5ad5991fd51ea975c7546ffb11a9fbd56 Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 7 Jan 2023 17:02:00 +0200 Subject: [PATCH] Tests/LibGfx: Add tests for compressed TGA images --- .../buggie-bottom-left-compressed.tga | Bin 0 -> 23955 bytes .../buggie-top-left-compressed.tga | Bin 0 -> 23955 bytes Tests/LibGfx/TestImageDecoder.cpp | 32 ++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 Base/res/html/misc/targasuite_files/buggie-bottom-left-compressed.tga create mode 100644 Base/res/html/misc/targasuite_files/buggie-top-left-compressed.tga diff --git a/Base/res/html/misc/targasuite_files/buggie-bottom-left-compressed.tga b/Base/res/html/misc/targasuite_files/buggie-bottom-left-compressed.tga new file mode 100644 index 0000000000000000000000000000000000000000..187d49bec5c40ea6618ba36f865dad30f33c7e2d GIT binary patch literal 23955 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%0DjFz>zVK~`AhqR=m z_-LQUMdKarwJJ;-8-iC?2_IqD}!E+5vl|(o;4}&XHAAb0u zh)hkB_-huAU(&WL;fv$Yi%WkvI(fv%;m{@Ki@e&_Wb2TcOfJ?THGwP?;Aq-Huz|nB z5TbRi(=%s{t-wET+O(pnHGpVC)5@2dbBkvT>(jRv(?~P~ zQLOHIsDMJTyD74g+JFyy02wsx2>9c0I))Crr>0gIqzwiy4x&+aR0a(OII#gZx&@J& zmuDK+kUnWFxkH2A6>}3m64v-sZQ;~{KK%e937pMtb-SHW(Gl9VB;DcYt^3TtA9O_-?L*)z~&?{qS5Yv%?TQ_rL|QV#JI_%5D;x}UP-V% zoxk(hy7H=p{VwSP6cR|{A>A~>jfB;7&IL~s^Pi-0wxo9baYAnEbd7mpXLuA1oa zN=ky3icVm;5|XuOF!avtQ%DqyK#$mg*c^7wdD-0&Isx}Z2onQUw4G{!1?3eyj;N09 zD*I~hWRlLH)|5lxxoz8mU@Y&w_Z|XbvrJSo+-}}_aQ&!ui7skznsMUl#DB28q;u|G zon_x4I?}~X4Iczs7$d`F(}tZBPCNlY(gS-ypB)ZcYFay#=ABnd&OASj4g&jg&tT9(?l9x+j9Q2l@7LL&+?3lY^@_*g3r7iYr1>BNaB-&@t_-ylw|s z5)1QsJ#LQ+RtIL6oZkToL_%;II{eILxZp+| zMcD#ojO!;^4|zZak&|ki(kwR0OZMR7aGLHfw2O~UO^i)TjOBM~LQHa;FFxACx76^7 zu~7^mlaS@wApkEn)IR>v?#H@zPQ?_^ER7xK#Ht<}I|6TlPkHDTx`6r|4^<3$ZaI7Q z(-8Ip2M-E%gSKOEG>7`&v883{O|S1N-`KjUurLo|=#m63qesW|^yGLyJrP^GgxF4L z68iZLNyAba2pwdRHZ6ioYAsR=GK)^_Qx?l*8v4w&e%Zs6+3Dj3cq9pq zRT?ufQTPSa0nUdKI%!@N1$Drh63^ZOHJDUi!HUfxX|h8Oi2CQxf+#)W_qNlUuMeUc zh1Lg3LD5p#pi4?lrrBgsm^@^to3tR}Nm#9%tPP{HzhI&0HW{vfFkl$!DvrzAt4pRk zJPa9FZHibT1I_ptwy~w-F{v<5qKR?twHZ4b=F#M&5>-R#1P(KZZ*nlt!*_Q1^Ua*6mp|I0R|*>tvXv97Pa!M%Va)1v zMXVJV9n+HWN-UpKoK#R62DCxmg(OoGo3l!p4OGKM4V zb~~ED2V#lxi0M(lMf)^+Y}^k-Vg#3mJ#f#{YwIP?Ay%*Y`Pih!61r{muvoTJ=#8WaBdcsijT9>l0(nK!km+*7HnwNTa(ULU#Px#BLC*ANORQJ#9;6WtAY|kgYN8vCBAT#CaXPeVaRd);*j}z#AbetxIvy z9?q3O>%RN%BBcyv?!TNWsGq$^q=o($AW!Uy^IgiMln9|P&Ye4lY=kosShqLa@$DNq z!QFn+)9icizmm&%hCsz2C)en~rX-?3tKf`5J_a&DA(}&wg>f-4(KDWy+_X`b5DrPd zc2r(?V?y7~atg|-=3^=FM1$doDaY8_z@RW39SVT47^Cj#_UGyB9nb2Wf9Hmc`7>sX z_C-aJjgsCW0sKz5(?P{0NXSsV%#G-TV^(sM!0yS7g9ox{CublWv|GMBJnPUp`ZIx3 zPS*wex*)MU{`ljvOQBDMJpJ@Da7)zLgkiAuqg^A;?90{%5a7+mmgzJO555k+nGYalV`qs*bblEHYkF0B2DNtkslWL94;F)7M^thag z8n)^UC5neO92}AcM~EFyEgbU8iR|Xqd^w2`wxM}^bIbBQ+iHGzJ%8fFF*ZA~LxDqc zBttl2Nll9LLl!nk^y161Y1goag+M|W-g#x=7q1lh+;!-PQulE);YKPE4q)tUgF&$A z)Txu`syU!v$}h*qvG2~NvmB5KYigN6$=}+#inD>7uH#6?fB{zs4U2`Ag}|WyNare@ z{d9VfY_ZZDdT;xq?97E^5-1VZmoCs2Q^R2fG+*=L(@#GY5OU7R!qX;#ARW?&*Wdr; z5m8bAXmKopouK&cjj4xpFO)oOQem!-2(3&lmq3O_=RvwDRGqXQIlMzHlfnP(637y` z$X5jM-dXLX^AHS|I*I7hEtAX#wOcspns45ih8n@c)wb7mR{Z?Nge!ViYqx`W2Tt^G z7?zE|Hr&UK9TVJA>yLl9?;odg*fbWm(=wr{wLu5kPY%pGv$sV4Y2Vno^60bU2lej= z`=TSgJU)Zy=z>`!q`I6AI$VIpZL>up8HKfbr}Qv~y<3+qAHSS``sGC$7o7O^=#-r+ z<`F(Qg=wl;Lczj8X36aJp)oQEj`|BOswm^#?GJr?08n}BTg2C+AN)SCr}V2MGuh=^ zQZb)=^1A+6VB$Z*8iwU@he!FSj3X1`qR6*6M8;N6GXE#UBvOXNMe$X1l*da%*4;rr zBdsJRl#w*EdUuvogmg&f>~u|7LsCj&eNFMNr}B3`SKHjOMh*;NCAf~I7mgR)c^%DD z@u;RM)Qfp_uRdfTXZ9o@N`_`Fo_N(Cr^h|NRqTQ_2t%E%>lQyOj0CCdNZ(W$#uNmDH7_thlPUy2m(`Sa(6>-umZ4`QJO!u1F;pAUDA_~gKB z9W)wA03IDV+!N_xkkiS&tQU6H1I*PfDK0M7$7U>i=S#vhT{Bj4(=9iySXs>yIn_n3 zD7IwX(9(Ev&*C3nn=t4y(MfnNj(-~C#HuY5CQg*xQ9~h@}<-*}9>0 z%-BZ>b4z-~@dLl02=}rArq;%acKryGeF4TPY4) z;b-k|Xc6=IQj=r(K&9g2BH6bE6!%}&c|i7%LjMCx%N}i5GNNYoeGBjE|B%fj(_$mc zm69AIP;Dq(AWStB-+g8;j=fR(m3Y?G=HFf|L6i>+;bi%8LIBBxQD>;WFhnv5(FUmk z;hUUN4qLur1y|%hL)p!)v<=`4dc-8?xWJ4;?dcZd#-hVw9v?Dc{lw>wE`0x^Wj~y) zx$tTAFP~Ol_8?G(r%Kzkl_W-DZR5vX|maPKsFw-7uJ!k`#;O$u_28xuU~0 zb>r3^Tl^77KCQm6_-yqr)^{t?y)BD?lh78j6^i zRIomXr3gNWa}aht^UO1n2+HYm>zp}rxQdFz#CTCaJKJsvMQzJ3LYYL}c~k`Q0eEF)W$-9;>RI5idkzG*D;yUo@ch8zY_*(W!)GXY z;9@ZDWH5!=5TyoMEM3M8p7`vvy=N-U2Xt!z80}}OzJ6iG{=z%vdL12U1EUdWqxc$= z@;t_CZ+LRjkO5V2u7SjPt}?7F)?#ov6fYs6RDRU@4I5Bhf}PlziIHgx>4q@~UJs4| z08bTIjDgDN74PZv*!2aAN7Suhmu>Q%9WxKVIP1u!$$RR@K2vb()YRy%RGZ4+c<^A; zxSYikM>QH`fM)6gPIZC?C%v4*pMXJ=$l=AS3wIQW8yDTKFpVW9%7f-BqZ6%J0_R{K zeRTtV7}qJ|YBb6)`dKW!EtXz}90B2^-XP>?7~mbu-G(uc202C{QGjhwH;)@x)hs+F zNoxbXcb+mjTz>iGY`}^Zi#D5_^2x}^;LJN>5j8eba2^0R5}>>SqMZE>5ayXCw7(;Uoee<+wq;)hxtO-Eqeq zLYz<2ZkG~^&Y|bT98oLy#z~A}hO*}5=F;R8Zy>bQh7B8#8XBqH3(i~{UNjuRoeT!j zVEW01(HXtuk<H4L7i?hmUC<9gu3CFVm+pdHMa)Ef;80=do*ouCx!Z5Zivt{Li%K=Wgl zLQWA4mBmfNLcAW|NoB6o%`Eb+yYAxIZg~t!qu`JS_>&T2g*OrLv5`1x%rgLoY@twh#R<#TAEO&$IAncJUPTBPIQ$(A_YVZDLW-} z*|BN;yx?7oY2Uv6=FM9Wr9As3xsgJ|WJ=^U!c`}FlNcWbdvJc36g^(DHu~5!?EHwn z7)>FzDKaSB5WzD%%)vd}8SQgpElKe)P^gym;hD)0O!P|C^2DN{N=-EZDPqMPJ9b>X zX3e+XeJ9VhX%N(1EChwBVW>ZqREN(Z(j9(c{d`8?V2Kc%qCDI4*q7ukXtUGXqUbdXMfRBue z@gXSgEh$38B`bXHTA_lqW!?YoIRv`fK+dJ!lhY zvz6r~$3dCw%n!v#*2A;FR0wQ>aSoc_{F~GMJhX}-fW_zIs2M9)Y>jb#mbHq>nwT!O z0tH&-qLqrJ@YhElebhEHr@P^8Y;2^=j2wKDz*sCd+;9W4z%5XUL$ssmoDQ5aMViDu zpN|u01TV2j3Hp@Q6DLlDrHKjA!ZnqcfL$3cz4TJsJV+G{Lbt@5iU8@%a{;&i^2;wn zTr-Qwct{QMhYufytZ21~2(P^IO1s^Lti|3Ho)~MWTDGi>_Tth~>YPjJ}=R*%Y#DW@RLHuwV%1G4*QBf`O##l#~ zEg~X1(DE?1qRR$G{D)pPmdRhd-y%fov(G-~0+$7#$x`@>jdq|5IXTP8 zg*|)r==&kgbHVsY)Kns|!d8$FWqpVoha$Ki`<*ZAML@_3<)UYd1!;h+8zUYvWC-FG z-iPcmHj=v~AgB}qnPKpJWQb@Wj8h&6QIQa?A}J|}C%X0f9Qb5Te2Q3}LJN3mjfc53 zKyHQ>*;|Mf57(kFWDr6N4U5L2$eu(872iRKKJrTWYx(l!AP;6h2CBhx(;+JB*01L~ zxS*+Ez^SRJsFIvk!mpL7}4f!HAKF2Ey5SCPQYLL||%uH_Dwn7)JnLGU2ho zyAp;D8x|rlXU<&qxdnyht}6^zfp|0(OpXWWao3s(i8)RjQ3PB}N*rf)Zo26vR;!hb ziFmr3R<>Rdli?C^gZjy4eCfb}15pD_2&Vwl*ck0GOnfhd23&nL+7TiIqX;Mg)}TZd zgEQ_z$Uwi@b6L$lO^m|jauM&CN)SmgMJ*p%*NmAn@voW$$qe%aYTHqCiJ9M`pO-8!Dz$8N zWeVxNpvqcw0s8P?JeF*|@#X^QP8gJqytzX1ZACcX3J<<%+N^=UaC0Hrpx{D$Y?P*r zBj#-$|3(`v(+?Pflvq>3t=N}Apn%P~tROw*VpOC@=h2imlwMpoapFX1hOfT*iVK8e zJp=s^G6tdPKsi7E{B!&RLgIA*fdh50Q@*rd9=hdCtkCly82Y=B9#?1{PLZ)tq%QL~ z_#qrR!^p8*NEALX(Y$%{GTbrxVR2GXz*D6xvW63|G$;i!mbx8D`)FNLclB+%40Y+zDOi z0aX$tRa;xj1*}F-M8<*vLP$p{x&#Py*RI`d6QNRMab!mrANrP)lOw|{#8qLLjRFVP z4N06IBl%h;RR{Dze3BHM#|MtFDhX)Nf=s;PBab}t;DZl_){FP$4MDs-MbD0g!OGC=I9cKx zL)&I2DDx&OpV!UoRO_T9LH#z#a#%59;@u>gk(@N->@?OTOLh{J?z!h4EF5b54LT0h z;sK~Iwdx^$?SFKhK}i^k`K(^OCX|cX9)9={DhFmIncx*R7_?SB9*twx07yM+;It++ ztXR68+nACi!W%pt(TD|T5%7>BWh~xE(grr%CGK!0qisI!*1?nG72-4r(Rw~`!(ITO zN_xJ)vPsRwk6GkvJ{193!fSGDG1N_ZQs~C*x8Dx0+9o)8@)W)buTF8x1RPos0hpvl z1R&f~a3{@VW=48E9uoF7LR(%X(necSOssp;=FJkUrA)Bl-AIV(=_e;jZh#9D20NLX z_AKv_feDnyP(dWv6Zy~@zE@fRK#mj0IQek$Pf~UvD+{$27Z+nvl+w6dUa=vLTHdCB zuhywMD<%tMZV78rMFe8Cj_Tw?AV#$$6%b-JUb(@V44BNCTB@g2=37;lH z5=puNB29#{7|nwlZA6%iSC$blBO_f5L)MxIiHF1C*tl_{4%0#36dtCDP>W)&Bu4U` z7@sxJ7o%{10&Yeq$n$4#W#q__{6l9iki;pX^%6!Ucf=?3?|&7#)J6yA?c)}Df~rF zDlvky_Fi6o|eu$lxcYV5E8h_*$dbq8t7zYTp%%ky--38nHL9-)~(@t zsdX${pM6&Ri6qbR2CHDP0F#7*1JWR&`_1qKhARUH52NIrcQV|H4jrbIMU_E59B$zZt10D0AbS0Kt@8*3*;;8_cd1wYIeHIfX zK!-6p7$~flw>JfXuShfufFFMJ5!aS1DMMrD`TayqkfNR7lE@+b09hec1EZM^qfAIl z#3%*5LQ-%GGJ?s4^a~5+d?Dr99e3VItLMRo9wKq#3SMsPb@6AAbB1`dkGCGG+Z3)QAy}Lh-iSZ$EhG5Z{VF&=j$l z09Q1{S+izQsfmqBnTGR3eG!#bPe#FCJPvfQFmztLgC@dSZ8kdzhbBTcd;k6SYePq8 z=(59P`Ahgs%E#Nth7KJHdxcYaI5;7TbC%&!!}HQlv|qb4Oq910;H|VBz)se9!wom0 zkK$qEqK)CGDg6;toy9Uj@X`=(N=r{i?L^TPSu17*XiXJ5tOBKx?@YWHE}9&XHH!lh zj>;PsaT(Y-XVi<3hw9y@4?R|lO1IlFV<-g8Q3akWA=YW?oCRh8E7a@ZA$knHzP>?7 z3m+nw9l4>tWOyh)q(}@A1UW`#hYpuqa>)lDeyG!ANI-}ZPcH#3Lx{XbPZG$&&^xVG zWJ+i-a73}iqg(gx-G_VN#W3joKmPGgp(nwGoges#tI??(i$uAxM2$2rKc8p>J2n3T zZ6vVj3E<9W~h)!U$ z;!zcI`+QNPmhzW;FWM62i^g>zNWD^wAM?NqXu3R+fXQgQI4Ybd_ABEez|9vF2N(>0 zBUF6aij^yIvit+8(9!fTU{s#yCR0k>mI{GPoen~%CSY)Y@p?*DjZX-fZ^w?Ekc3QW z#k7$kjV0bmQ$V{K3r%JN8ka!LxBVrVW!5aw1aNxruu0E%$@8H&rRbfco9 zSd^X=&qYe4C&jo4IS|qC>+0Bql@lIP)X66@!yJSh3iU9iB6Eq7N>(>~_=5yB{vkva zEF~IVapjeM#zBR*bC`H;x!IUGYZg5)87ql#yVQ1QpRCdVBOH*5n}&`Br+_Z#5s!@- zgU1TZroKLZ9*X!Hji0~p(ZUjTR;)p@F@_C$09rCcUJQdt;Y4vPdLDRo>#euRJS41= zg6T<6SR6{*B!O2_U}>Vi2FzlINLmlZ_19kyA-&3gRukn#SJfU}rQsKadj^q|juyLJ zdJ_D+9)V}#t)`qoXq$)Pggek#Jc>^i20E0uhw3G;A z#9ZuED+TLea{z|w*)T&c5Wm}Id+ROfw4kF>&KT4n$VCqX=BQDl$oll0=rLd5kae1b zGsC=x+;kJn6_aYz6X8^ zT`RmM=|SF5KqE99l<9%t!!c=;L4uu0iA9eYwgjD|Nrb_>;|zfnB5X38P9Nb7{$(^;r^SCrJyD^RbGz= z&kNbm-6#q@AEZx>3Oj_SqN7%L#7dd5yrKdg3TJJo+Rk0O2!}`rI1pXKWe0%4-o1Nw z=A^_SnnIs@#X9WJAxu28b}c(u)E`&~yp`xKSUtQ^h|C~0H7zqUbJ?if8QD$4M+W&%{!AF%G?bD2Z@&euq`9 zSh14rHPK-+IVqU~g9wckG;vE9cEHK^ri~jh%SnZW<0njjgOtKtM3qIfA_Y4h5{FE1 v*u8ttp~Hu1d84E!_~!F}`(Xn8-+lMof8)@b@4flXJ9<1Y_~zSg>}mNwPVNEg literal 0 HcmV?d00001 diff --git a/Base/res/html/misc/targasuite_files/buggie-top-left-compressed.tga b/Base/res/html/misc/targasuite_files/buggie-top-left-compressed.tga new file mode 100644 index 0000000000000000000000000000000000000000..45cbda952103c686118e453d0f29a54dba4588cc GIT binary patch literal 23955 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 literal 0 HcmV?d00001 diff --git a/Tests/LibGfx/TestImageDecoder.cpp b/Tests/LibGfx/TestImageDecoder.cpp index f458a6f5009..7c6ceb836aa 100644 --- a/Tests/LibGfx/TestImageDecoder.cpp +++ b/Tests/LibGfx/TestImageDecoder.cpp @@ -176,3 +176,35 @@ TEST_CASE(test_targa_top_left) auto frame = frame_or_error.release_value(); EXPECT(frame.duration == 0); } + +TEST_CASE(test_targa_bottom_left_compressed) +{ + auto file = Core::MappedFile::map("/res/html/misc/targasuite_files/buggie-bottom-left-compressed.tga"sv).release_value(); + auto tga = Gfx::TGAImageDecoderPlugin(reinterpret_cast(file->data()), file->size()); + EXPECT_EQ(tga.frame_count(), 1u); + + EXPECT(tga.sniff()); + EXPECT(!tga.is_animated()); + EXPECT(!tga.loop_count()); + + auto frame_or_error = tga.frame(0); + EXPECT(!frame_or_error.is_error()); + auto frame = frame_or_error.release_value(); + EXPECT(frame.duration == 0); +} + +TEST_CASE(test_targa_top_left_compressed) +{ + auto file = Core::MappedFile::map("/res/html/misc/targasuite_files/buggie-top-left-compressed.tga"sv).release_value(); + auto tga = Gfx::TGAImageDecoderPlugin(reinterpret_cast(file->data()), file->size()); + EXPECT_EQ(tga.frame_count(), 1u); + + EXPECT(tga.sniff()); + EXPECT(!tga.is_animated()); + EXPECT(!tga.loop_count()); + + auto frame_or_error = tga.frame(0); + EXPECT(!frame_or_error.is_error()); + auto frame = frame_or_error.release_value(); + EXPECT(frame.duration == 0); +}