From cbbc0231ad020d39cc810b769c1ee35775736d90 Mon Sep 17 00:00:00 2001 From: yuuko Date: Mon, 15 Sep 2025 03:42:44 -0700 Subject: [PATCH 1/3] vtfpp: add some non-texture images --- vtfpp/extfmt/RGB888.png | Bin 0 -> 3285 bytes vtfpp/extfmt/RGB888.qoi | Bin 0 -> 1094 bytes vtfpp/extfmt/RGBA16161616.png | Bin 0 -> 8417 bytes vtfpp/extfmt/RGBA32323232F.exr | Bin 0 -> 1665 bytes vtfpp/extfmt/RGBA8888.png | Bin 0 -> 4309 bytes vtfpp/extfmt/RGBA8888.qoi | Bin 0 -> 1622 bytes vtfpp/extfmt/RGBA8888.tga | Bin 0 -> 4108 bytes vtfpp/extfmt/RGBA8888.webp | Bin 0 -> 144 bytes 8 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 vtfpp/extfmt/RGB888.png create mode 100644 vtfpp/extfmt/RGB888.qoi create mode 100644 vtfpp/extfmt/RGBA16161616.png create mode 100644 vtfpp/extfmt/RGBA32323232F.exr create mode 100644 vtfpp/extfmt/RGBA8888.png create mode 100644 vtfpp/extfmt/RGBA8888.qoi create mode 100644 vtfpp/extfmt/RGBA8888.tga create mode 100644 vtfpp/extfmt/RGBA8888.webp diff --git a/vtfpp/extfmt/RGB888.png b/vtfpp/extfmt/RGB888.png new file mode 100644 index 0000000000000000000000000000000000000000..fbc962aff74b1ee9ddda5ae1da5cea0fea4da4bb GIT binary patch literal 3285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCf{A_6YK2V5m}KU}$JzVE6?TYIwoGP-?)y@G60U!DSz)VZZ$p1`)v!AgEw86^(!(Vl?{wkEHS)7$zjuAET*g1f-(TNFI%3f+0Xq!DuQP_#oOL V8T&}2-Y_5J5>Hn@mvv4FO#ol;hl2nB literal 0 HcmV?d00001 diff --git a/vtfpp/extfmt/RGB888.qoi b/vtfpp/extfmt/RGB888.qoi new file mode 100644 index 0000000000000000000000000000000000000000..67faee14c2f0e2aa6c993102cbbf796700ec9ada GIT binary patch literal 1094 zcmXTS&rD-rU{C;IW`=*ijlBPT2~Yd?Cco<6lcw%}cP7pJcX`3Ge<#;$`nP}k-hbQo zANjZDCXLsO;4Wx%YXC!U-*~r|BQbBJ7BNQARx+NXuu^QWMRdpdw|c% iLP&zkz>q^!fI;0}WmJB6g^$W;e2?h#4lFf5fDr)Hz|>6u literal 0 HcmV?d00001 diff --git a/vtfpp/extfmt/RGBA16161616.png b/vtfpp/extfmt/RGBA16161616.png new file mode 100644 index 0000000000000000000000000000000000000000..a68d142a4199efffa6868b47bd5a8e28cce1bb66 GIT binary patch literal 8417 zcmeHNL1@!Z82+QqykzZcTG@tzB#enLsbk>9Ikh8Y?WDsMFP=8tKs`)~oua*L%BY9~ z#U1n@-rP~pi=aD*JBcU7gEAqx2(?%%$%Fs<{_o2nA-7MB z3`O-lIsino89PsChAXy{&Rx~T7X(T%KQyR(etU3+iXG=uxfH;&yRFT$E#c0IOg;xt z+7B>02k?_F%~k-e^a51J0ggNb=qNmTIeL_CXobv~B0#b$T*|d4$FI^wbvm0%tKYO; z>b~Bw{yY64fvlZ6eW67$O~+B1lYQ~c=W{V!=pG2(Gc&L|qd}QjSWUQin3;Y#=HVx1 z`9@pdU!rnUYc2zb#>|c8)mL7v#GDYnMD-;9^C`Duy;E;)ZN~F3|;D8HC~|;^Zat#47$|a zi2gu_y3a>mqf6autsl@~3{ia?RP+Qfcz`Z-FK9YCnnw)oQ(am$*a6ztP7L0mt1c0P z64g^H%jzL?w{ZfZq8xyz&U4)|0eljoqD+9O&U4)|0eljoqD+9O&U4)|0eljoqD+9O z&U4*LU%WYaa`>0GRqx}R$X0!ikdFX&Kva|o5Y>6ETPA={LR6Fq5Y>6ETPA={LR6Fq w5Y>6ETPA={LR9>J6EHfF>>yWr!hZq&(cR)E4u4tvcsbmjO^?`52gh&z0Uin_ivR!s literal 0 HcmV?d00001 diff --git a/vtfpp/extfmt/RGBA32323232F.exr b/vtfpp/extfmt/RGBA32323232F.exr new file mode 100644 index 0000000000000000000000000000000000000000..e530667618671843a67f611277b509733847a9e4 GIT binary patch literal 1665 zcmah|2~d+q6#hM?C`ePQ4n=ISayS*_HjIKvW2Z%pKt+zJAee?f5OSJ?1cHEq)ml-? zEl3g&IYusR2?&A_a8R+3k`N+ifC5pDgexQ@0h)-NYPI8=*`2rF+x_0|+wals9oMV{ z00141A`(G7Rp;QbR2pzZhamucL~mzA@GKi-6 z=-xsCFnAJ*2CUb|fOBvvngW8vRr+s0B27m?cftT0UWHeuH@5^}Luujvp#WH~5&-~Y zmGsrA2;Cn<d9g~M7f!Qe;6Hn~4} z#I@AqFRUT;3Oh=zLb4d<+Z8J%D;`Vm@s;B%$?Evdm4apSx1sf__+fR^@{#BpTDyt3 zv2D?4N(+N38+mXu5+OB~7#W^*xObY27;KJdoVz%Yp#FujTSJ8Ix0oGsmV^DCacQ%L znss81V+u19iX5A1B{v{(i6UaTF`L!nlLmbjsr1m1*K<@b&vwldd7T@imEi^I1(hojvbPicqx!beMOmK5H^$bkubJf)a7BjR?9 zLrjX0yuGY>#4g;xmW+FTuA367S$Dh5wPlsWOG=~756VQl>oW$-`bSW81w3eVk*2m@ zQz1f?HU%*b{>qoLx5NakIH!$xRx6S9EPu(UX5kR+k|zhe(|u7QA6VL4pWU;Zpg0#n zxcO+YEi*@z)s{&P#gAq$YT!S~3fq_e%V5)Q> z6a520?yw)Wu*Fi+isO)D51 zce%N73#|#66S8D&+H4ful=A^SrRRQ?Jc=nYD2D|42?f4k^a$pd(d7bYd^Q16<9ABz z;!YxGPAQ#VE*!mP9>C>Me%Cr4Y;aGV2>c_p_Ng>!z-T#4%U1NSwSk3J%W507^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10g0sLQ zvY3HEPZ@+6E0)@q0R`DhJbhi+Uvl!Z%USJzm!!(TAfWB(;usRa$*3T3|2^Yxqkkd7yybY$ z@q*(G$8Gkf96&1=RDVhXwTl3?3j($C{own~`<>?-&kycz+&}}_e{p@~`oZ;u^9ScA zpm867_$?5>0Lt8E|G@+@U?9P$14ct&Gz3ONU^E0qLtr!n7>#~=|E8oq2UX>iv?oTR qU^E0qLtr!nMnhmU1V%$(z(ZiGYHgyKKsXPmTK9DIb6Mw<&;$T5vZo0E literal 0 HcmV?d00001 diff --git a/vtfpp/extfmt/RGBA8888.qoi b/vtfpp/extfmt/RGBA8888.qoi new file mode 100644 index 0000000000000000000000000000000000000000..9a224fe3618a6acc2315ac641ee5124b07204f13 GIT binary patch literal 1622 zcmXTS&rD-rU{C;I7KZ=7jsCU#{}TSa=l`4h_f!5qX?i~A|D8$qm;ArH;QE^XC)b?Y z@_+yKBYXaD-@o_J|1~E!o%+Av^0G_+C*7HO`+w7u?#KW0-&DQ+AO0on^M9k?-oFp9 zNN`B;+bS}M%7Kls76BX1c|ZhgzO}HND1)LczZ8cA%cy!_Fpq}M&`b~D#EYKRAz28N TnMTw5X#O4%CV)%= znFul&WCO@1kc}XlN39^heAwXXf+=BBqm;{J6e@ZARb2 z#XE9Umi~A8e!QYaY4Wz8UeBrzJ^uf{e0ue=!eus--+NwHSp6{aqmGTxR*7ZK!W|q8 s42HSdR+3L9IPxKgWCOnB3uV)Cm4Dd_oOpG!{N73f#T(cESI05~06O76>Hq)$ literal 0 HcmV?d00001 From 5bb5c5dab6e3673619627d5740db9d0227f67c47 Mon Sep 17 00:00:00 2001 From: yuuko Date: Tue, 16 Sep 2025 00:30:17 -0700 Subject: [PATCH 2/3] vtfpp: add some programatically-testable vtfs for good measure --- vtfpp/extfmt/RGB888.vtf | Bin 0 -> 4319 bytes vtfpp/extfmt/RGBA16161616.vtf | Bin 0 -> 11144 bytes vtfpp/extfmt/RGBA32323232F.vtf | Bin 0 -> 22064 bytes vtfpp/extfmt/RGBA8888.vtf | Bin 0 -> 5684 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 vtfpp/extfmt/RGB888.vtf create mode 100644 vtfpp/extfmt/RGBA16161616.vtf create mode 100644 vtfpp/extfmt/RGBA32323232F.vtf create mode 100644 vtfpp/extfmt/RGBA8888.vtf diff --git a/vtfpp/extfmt/RGB888.vtf b/vtfpp/extfmt/RGB888.vtf new file mode 100644 index 0000000000000000000000000000000000000000..e45dc0f58b7598822987989af85c5a2fd5ce5134 GIT binary patch literal 4319 zcmeHJF-QVY7``G3gg|I%Y-*@Qgj$^xq&0F1oN^JILXd_Mw@|`G8$=O|;FLJQ4h}-W zBRWCjILRWz1|g{f7cob0_x?NX&UbHP-Nwu?3^RprA{Ou? zHZdF-X7z5-vVxe4n=Bf&YncR?p2c7^4rL@C86lhq6XG5bd0i4tU=4oW_6Q?K7Do6! zj33rBY=iGvwR+D=>V)t2ebA3`gV6F3y+K&ckbWcm$9|vB$8o>HDUHdJP8-(d)cjQo{lwu1xAy+t0l`cc_m0P)i z10V&75(JPzJdPjNhd!6zeGdobwT@#;_4u0p{d)LNNgPS(Y@R>k^I}@6B$QgX-tadc zJZjs~c{UH;-~dQLq67hC5Mv4^Vmg|j6&j)~n$!OD{?PY_{=ew@@Hf{_x}MYT9sOR@ M{S4jj{m=dCJNA!^F#rGn literal 0 HcmV?d00001 diff --git a/vtfpp/extfmt/RGBA16161616.vtf b/vtfpp/extfmt/RGBA16161616.vtf new file mode 100644 index 0000000000000000000000000000000000000000..67c21e2ae62e675a88f18a0aa802c452513fbc25 GIT binary patch literal 11144 zcmeIzUr62cAII@i^oJD#8L{jlS}=n!(}Yp9ksxWqN@uuU|4qTa$G=`qdmy7Q_+HzTnz6XqlW|Y*FSo4?{*jQd zaCY|McEe5M3n@%?o0_2sq1rJqk{1wWpQ zbxvmmKTeMC<3Er8IXPJP^YZ)2<$2c@^BRJ=yzljF&lnx%N3TEpI&Xb3yI=>Ech*&*ZhW zHQaipv#IUd?~2N2%Xc1~G40)XXWF~-&a`*uooVmRJJa5sccmv^{U9{Z{@M3^iERVX z%+B0!cmH5(??C46L*w^V<&K&5?z~&+=kC0dexU|HAQ?UT{N$KUCnsw)_Ku;Inn zTW{x2-CObTrKzn?&J`Cte%1VYzjWuF9JzY*n)dFzle5~t`uqPs{`c3|SH5S*Kzqa3 zK%{PN__gr${-fc2Lw7~a_C0mHB3jw=Q^$s{9_=nWRoXZ?ocQ_7@QJF_@ofj{V-+ur z{qSQ+?u2RY&O14B_2~V#@8!tVqZbD*oO)OP{#g8bboKAgrO%bs&yR)AS)Y482YoL3 zob zsQILKbmNiASfpj^HytfyBcmOg`ck?soVwhb(zU5C>%^U3cLYD#8F}dR#v{F>$C{oQ zO|EG^AFY4$+?Ksb7qj=jccGwU^X&ez)|tHgxhu~Wk6d1tUNoQc^e=yy_U^osBUg`J z9Jp}e=D~|6Z`0nLcXH(F(Tf8YPTV|r@#JmVyYo(tTs?Ym;KGTU2QQwyO?!9V$&sr^ zFAiKdar5BClecN_&O14B_2|Wc3ny+Kym<09?cI4NN3I^dIB?;_&4U+D-ln}f@8rnU zqZbD*oVa=L;>p{zcjuiPxq9^Cz=abx4_-WZoA&O!lOtD;UL3e^;^x7NCvVfd}h>7f#$fc=6-ko=HwiJJ#6p1e(acizd7t4A*mTsU#_;Kh@-Y46TEIdb*r#eoYaZXUdN@;2?= zc_&A%9=$kl;l#~@7f;@%y*uyZ$kn442QHkrdGO-N+q8G*ogBG(^y0vU6E_cDJb9b; z?!1#DSC3vCxNzd;!HXwv)83tTa^&jKivt%<+&p;kd7Y8n!xOwp6$@{wiJJ#6p1e(acizd7t4A*mTsU#_;Kh@-Y46TEIdb*r#eoYaZXUdN@;2?=c_&A% z9=$kl;l#~@7f;@%y*uyZ$kn442QHkrdGO-N+q8G*ogBG(^y0vU6E_cDJb9b;?!1#D zSC3vCxNzd;!HXwv)83tTa^&jKivt%<+&p;kd7Y8n!xOwp6$=kGd=baq6di3JJg%dXqUOai5_U^osBUg`J9Jp}e=D~|6Z`0nL zcXH(F(Tf8YPTV|r@#JmVyYo(tTs?Ym;KGTU2QQwyO?!9V$&sr^FAiKdar5BClecN_ z&O14B_2|Wc3ny+Kym<09?cI4NN3I^dIB?;_&4U+D-ln}f@8rnUqZbD*oVa=L;>p{z zcjuiPxq9^Cz=abx4_-WZoA&O!lOtD;UL3e^;^x7NCvVfd}h>7f#$fc=6AsLFka-tW{47qyXOK46#_wv7lQ-@Vho#7av_+C3|0$t zino#mML+`ORctg;D_6t-p+KP$8Jlr%5ENyh2?wO>VPS;d*4L(K?uBQUv(KM%{xA1^ zUx#JTSFUSxPNPPR8t2!D{A!(lm427yKbJnfS9Mven7$wep4~O-zcVF$I{)G9kLOR# zo1cJ{*S~S%bLkr+@~dNhy^&w5@98&URsN_LKC0QNuOH-(()a7XR+QdbFn)y^0Z!pXgVQFZHd*pXzt!yvN$kkJX#si>Aw$W&YjMvXga_|4^6k zt1|x7`=xs2Y4zu3Zi`l(?~89W+ZC%;bV!G1eLc>*_0rVr3-`oLHxF)5i(hc`=~&li zU5wpd8{cVpW%}Wksc~=D=BdrPnK9$7z71;eQ!>6L<3F464`h7l{ijdsXD$9<=KG1v zw`t~kbLM+_*7K>X=dP@0W!7UY{tqJ$$1g7WOVz{yM`P%)7U`)a+vDz4KaJ^=UXQ=^ z@0dFMdRCO(eok85?U87|x_>%U*)+EA@12$|tcb;n#xlWogfYwNW!2)~zEPB7{_VGufW@O8>Y4)3ONt2;**RXfuCks2IBa1f2k$*0Z!L4`39h17IW8YpG z^E&@MmOimAW>335z50AjwC~>{jcGb3s=qckl@F|lDLX3DfSD+ zQ~N!yRUPV9-Jlk4Kj+CuzUoo0wRrnEPd@ThPoclazqtO3`@eYp{ck+~yO*zviyoaH z)jMlr?3&M{0ZslGch8?4eYb9l=f-qMGar39y7u^Gj9R}l9&XVoUEl7-nEcL~xb&<) z$F8Z@q)ru2#>Y0i8apoheYBnY#Wc6i+<0YM!Iw|znkAG`#s^L-z7e$*W&HxJo(61J?gE_`^dDskF?GE$l<(?cwT#+ zd)~VbxG%U*xNlgCx1aOmBVYBX*IK;&oF^aosz<%n;_c@=`N&s2>a`YcKj+CuzUoo0 zwRrnEPd@Thk9w`e+s}FOk*|8xYc1Y>&XbRP)uUc(@%D3`eB`Sh^;(O!pY!A+U-hWh zTD<+7Cm;E$N4?hK?dLrC$X7k;wJzh|tM+rAeB`Sh^;(O!pY!A+U-hW>(6h&5PluYy zis|L4NAt#M=89vn_~C(78~$3BYCE2rw#+yZ2M0Yip6hQQPg#=(c}vYw$@dqiO>Hg_6^(|gT}3oE6(kiE?N7l=)L6K*n7*9v9{t%>9$$3 zV(O2Yr0Q!QiO&7LoPPY`q&WYXi_?c~XT($A9GdRy)hBiy?U>5X`bJ#+z^L@XqVr>8 zuj|tBRbAq@E60`kSG_xTSgIRP7FAovr|%y)UfJ`#@oC+r`>TF;U~+?6y#1UfANi_B zz51bF`l;XMVP58G-qzyn=REnyS3T<05B<_l{WcHtGS4FaGw=5z|1+NlUN2rxUT@JnuXYJuf{^J#RgaJ+D2_z2B|H+s}FOk*|8x zs~`HMpZaYc=4GD6`Cpv>#ra>H|HaRL>VMu>JpYURuh{>J{jd1>fBpXlxG%a-x^KFV zy05y=y6?IVyDz&>yKlRXyRW;?`@FXnZ$IbBN51M&uYTy4e(JY*n3s7L`+u?j7yEy) z{}=mz{r>Os(C4MkQ=hj!k9}VIJokC;dEj~BdE$BFdE|NJdFFX%E#7|4laGAWqh9^c zFa6YS^Dr;-G;eG1_H&+mW6;mr+%Ac2 z$w$8GQLldJmwxKEd6<`Znzyxh`#DcO@>P#|^+Uh(Q@_o_yv)W-hR%Lk9^gmUj5K7{nT&sFfa2oZ)@@PbDn(Us~+|0hkog&ew&AR znWuSMi?^TiJqOF#A7Jj}~H&D&bM{hTKs`Km{~`k`O?so&;dUgl}u*5d8w zJo(61J?hmD{nAhUHV^YMPxH1GZ$IbBN51M&uYTy4e(JY*n3s8)x3zftIZrzsOsr+Hh8x1aOmBVYBXS3mSiKlR%@%*#B@+giN+ zoF^aosz<&0peUbZ(og+15A!ll^R^amKj+CuzUoo0 ze(0Be>bH5AmwB4EwRrnEPd@Thk9ze(zw}eT&BMIR)4Z+4+s}FOk*|8xs~`HMpZaYc z=4GDdZ7tq@&XbRP)uUeh&@cVeZ}TuO^E7X3@%D3`eB`Sh_3DRy>8F01hk2Q&d0UIO zpY!A+U-hV0KlDpK_1iqm%RJ57TD<+7Cm;E$N4@%?U;3%v=3!puY2Mc2?dLrC$X7k; z)ersBPyIFz^DQS$L=$C%#w|SVCd78Jic>6g|KJrzMdi6uU^i#jh K!@SJXy#EE~5Qy9W literal 0 HcmV?d00001 diff --git a/vtfpp/extfmt/RGBA8888.vtf b/vtfpp/extfmt/RGBA8888.vtf new file mode 100644 index 0000000000000000000000000000000000000000..23b71c5ef30640fcfc05f40dad195ea083f81700 GIT binary patch literal 5684 zcmWFwabsX-U|?VY;shX8074LA1hPTE?5>)Z6DU8{lM`gSh23LpT{xLsA&y>fj~@#6=&dFb{n+r91pIzBh`(u(#Q6R(3Xh`oFH!Oc_7%sm6b zFgA#Wv0>_9`d(+fn{s;T`3>{WFFT+5rua1ogV-Q3kQ}A*2PdCceqjC4Z7YtiJ5hPF z?FI;g*dQ^G96BFeJ+<9~?w@a7Kf7L3yq(Sj?4(>X<=JkJ>*P{-fz{H2;m3KcnUEX#GR~`ggSc Z9&Nvjw% Date: Wed, 17 Sep 2025 05:22:40 -0700 Subject: [PATCH 3/3] vtfpp: more intricate test patterns --- vtfpp/extfmt/RGB888.png | Bin 3285 -> 3285 bytes vtfpp/extfmt/RGB888.qoi | Bin 1094 -> 1007 bytes vtfpp/extfmt/RGB888.vtf | Bin 4319 -> 4319 bytes vtfpp/extfmt/RGBA16161616.png | Bin 8417 -> 8417 bytes vtfpp/extfmt/RGBA16161616.vtf | Bin 11144 -> 11144 bytes vtfpp/extfmt/RGBA32323232F.exr | Bin 1665 -> 1721 bytes vtfpp/extfmt/RGBA32323232F.vtf | Bin 22064 -> 22064 bytes vtfpp/extfmt/RGBA8888.png | Bin 4309 -> 4309 bytes vtfpp/extfmt/RGBA8888.qoi | Bin 1622 -> 990 bytes vtfpp/extfmt/RGBA8888.tga | Bin 4108 -> 2396 bytes vtfpp/extfmt/RGBA8888.vtf | Bin 5684 -> 5684 bytes vtfpp/extfmt/RGBA8888.webp | Bin 144 -> 180 bytes 12 files changed, 0 insertions(+), 0 deletions(-) diff --git a/vtfpp/extfmt/RGB888.png b/vtfpp/extfmt/RGB888.png index fbc962aff74b1ee9ddda5ae1da5cea0fea4da4bb..487e64ca4b3494756e0590b60c6fdc60c3ee011c 100644 GIT binary patch literal 3285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={W7>k44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCf{A_6YK2V5m}KU}$JzVE6?TYIwoGP-?)y@G60U!Dv;;`+?V`I(dB0|)0DPWBh$1aBdL4`I+UdPgXTUMwE#!j zK?siq5h5&buoxL|6y*OIap=Gy!H7fsXdK`OM}+Wb5Fx?>2aD!G^jk44ofvPP)Tsw@SkfJR9T^xl z_H+M9WCf{A_6YK2V5m}KU}$JzVE6?TYIwoGP-?)y@G60U!DSz)VZZ$p1`)v!AgEw86^(!(Vl?{wkEHS)7$zjuAET*g1f-(TNFI%3f+0Xq!DuQP_#oOL V8T&}2-Y_5J5>Hn@mvv4FO#ol;hl2nB diff --git a/vtfpp/extfmt/RGB888.qoi b/vtfpp/extfmt/RGB888.qoi index 67faee14c2f0e2aa6c993102cbbf796700ec9ada..be19f1c8edd52d0566d4f8cfa5ef46c36155a2e4 100644 GIT binary patch literal 1007 zcmXTS&rD-rU{C;IW`=*ijlBMS2}}L=Hm~a6lcw%}cP7pJcX|G@f2Y=L`gdUao`2g9 z9Qn8A)VY82FJJ#R>CXLsO;29@%X|C&U)Yy#|BQbBJ7B8GE+E8frUTL-4AN}@GKxv< z0FwpCJRxCT9W$5#0_>WmDx*565LW;GGcX)0JC=Ja?3mFpgJXKf)JUdPKrsi7R$%lZ t#UD5ofT9qTG)7}_K+^9&hX4PM#T`pOR(DMEnD#Nc;okrN literal 1094 zcmXTS&rD-rU{C;IW`=*ijlBPT2~Yd?Cco<6lcw%}cP7pJcX`3Ge<#;$`nP}k-hbQo zANjZDCXLsO;4Wx%YXC!U-*~r|BQbBJ7BNQARx+NXuu^QWMRdpdw|c% iLP&zkz>q^!fI;0}WmJB6g^$W;e2?h#4lFf5fDr)Hz|>6u diff --git a/vtfpp/extfmt/RGB888.vtf b/vtfpp/extfmt/RGB888.vtf index e45dc0f58b7598822987989af85c5a2fd5ce5134..8d9c4eb6a7b0999c0d07608a78f5411db004be87 100644 GIT binary patch literal 4319 zcmeHJUuarq6u($;gV;J@tm>#SJeieD;*%QN<&)@E<*s+dxy7p4nyIuvS=}mYX zJ^Bn*iT9{o4eRAZiHNa zoYFVB5GsdH9>-3E!(9li{pLP$WQqyjs^Hzrr8itW%d?f$3vngyVp)Vvm7Br{q2b-* z%Px@Lk^T|<4}0?@hW*{&-*2}&?%ew3j?+Kx_+fnP`l9)YIWlVwr50~bQ^pUC-(50( z9i}K|bo$5X(Jw*4IX}NM|H)7DUwv?XP?@=S<-uL&-3N;oGg(k@AcSO&7))A5EXgS% zO%st#3%QzfQMs{i1#xqXkP)$V@xn)9{Q@zt9SdcI^~dXYM`)mZASA2uH@=i?kSObYDumpEmUr3GHezs(vi2D4#=)8St_3GAN zJv+Og;6MmT*a85+0DRc^qPmCE85q+rZ5y}IlP1Qi<0v(^s9wnGf>{%}VRNQvf0Xge za8^gr_-RS>7B6WoNL%6>nI_&UEyyLjQj{7L4gM-o2vT`bqs_CMv0BZOgl zn!qtUaX^6MD3O49*_Q(#81_PO4Sq$XN-LDCTuy6SwX{smwkXogD&HB^>3a&vrd*oQ zYI1Zu&lZYlURWuWjS<=!q&%e8@0^4gBt64Ht08isH*)TBQ0E{`GfrF7Pp3T0hLy`2 zi~M1~7j==>aaj|yVWU&DEy|c?IGv+-?sD-$FK0C{o?+TQZgWnWNUttPsUx(gRF?39 zv{2N<^KnhCAkFZS&C=<6CEpo7-CST>;Leg3t@a{}L~#-p}`a%o)v3ZhWz3z5Q_F`#3psKR^ZUN67fk6AzcHYs`%&TShM1 zm)}tdWl(S+gd}VM0AK)y5-5anAOR{M1X>_(@HhJNU!I@m=V6UgJtb?h5Z2k)KQ3Qd z>lDb0_x?NX&UbHP-Nwu?3^RprA{Ou? zHZdF-X7z5-vVxe4n=Bf&YncR?p2c7^4rL@C86lhq6XG5bd0i4tU=4oW_6Q?K7Do6! zj33rBY=iGvwR+D=>V)t2ebA3`gV6F3y+K&ckbWcm$9|vB$8o>HDUHdJP8-(d)cjQo{lwu1xAy+t0l`cc_m0P)i z10V&75(JPzJdPjNhd!6zeGdobwT@#;_4u0p{d)LNNgPS(Y@R>k^I}@6B$QgX-tadc zJZjs~c{UH;-~dQLq67hC5Mv4^Vmg|j6&j)~n$!OD{?PY_{=ew@@Hf{_x}MYT9sOR@ M{S4jj{m=dCJNA!^F#rGn diff --git a/vtfpp/extfmt/RGBA16161616.png b/vtfpp/extfmt/RGBA16161616.png index a68d142a4199efffa6868b47bd5a8e28cce1bb66..1d45b68a96aaa381ec15b006f70d4b118b0515bd 100644 GIT binary patch delta 200 zcmaFp_|S1e7l$B^kcmgZ`Q(k0#5p(_|NmzIg8%;~Z)CJ!VFYr43_BRZise5L07Yyz zZ{TNS#7A&)ax#LSSaDn+0W90SyI<5HM@<2L4+t^ZsTXoIFoKUu1nbpKp_s R;t`M|Jzf1=);T3K0RY7>NYVfR delta 128 zcmaFp_|S1e7Y9GPoI$*GxAn$J;vAbd@G~+JBse(h8OOI0ujz=QVuC1Y8Wc+t2^f!R#59K-OVwiV2un1MrG2sED!IIR8^J4}FvbCtLY4&C=F$uO^NLqjY&kEMxzmVqsjD+ zbwWpZQ3E#a1LQ zJ-MMcF?#Kuod>oX6Qfh#k6gdq7+g@hp&{nEtp4Gp`hFYVF7F>+eQs3z+vULp_YbC* zKbIAkxjgLbODikhT=GQxqU9p?`qRf}S60MjCY<-ay|N-=%i3d2fB1d%;sY&F^9~)q zLL{&DTYNFnRNd@sa9p2jc(>Ns(Cg1BbKk91`^{aja71-;KuvPk^XAZ99r-H`d0(BK zk`mwhYWm@nE7zB8tlJoVpoU1EI{IAi?wEBU-Y0qQ#rSO@JDYRvZOyr~YU9$IeS?1Y zkH0N2l>ibTHb2&e5U1)adyk&~$ z^e`5b`90tAWTd4`H{^BES2X8bj=%{TU>7Ytu)? z8h^I_!fOe0;4=8p3NOWg+4Olq%oUN|bmJT8CwtWl#rXbkh4m_NcTwkc(JzqV#q zLyPk;y=BN#P8NU1<3-wOy}SG!9T$aYdv`ex+u|8wbh4xjcNp7YHnfEKl>}Dai)|X0 z?_-E-`Ji!9dtl?4_7JnVW0HAp=YX23t{En8tBX-iqL^4YkHnb;Iv+8gI-i*Za$dzR z4_~4}d>0jT{X6P>#IIKC%mVT2e|vqE7liMMfAp>2dJP}kyK6z!7EiIR+B%1^Vx4pI zN&>~Ydj!M!q-c=rtE(gxmRnVqJ^es-49; zdj(9NCDuJRZ(_c<58AqZZQ{NxsM1@+eHwkszpJrKxo@j8F8s(}nV((C{3vs!O7TA| z<}5pXzj3Zt4x|i_XBUt6LWQJ z_rXd?e;BJAGZAm_t=c)NL`B3XfULsq^Y#ZJXYi*!q2cerTu4b?DyL-TPOr zli2ri|H^d~&jq=Ea#K0oAr6wieR&yVi=teq8#J-pNSI&`mF39~W=d7wr&RtcPoI|m%_$$usxtMJreb)jcW(k*@5ufLeS*}d|$=s#A3uAWvG9dW#7 z_WYKnpcR+z4fbBv5fE5!A(E$#K5)Q=2VQib3!Ui32fpx$Zz6f>=mQ5_c;H0`y3mPk zeBcY8_$HF4jy`a}g$G`ApbMSo#s|LeiEko#>gWRpTzKF`2fEOSZhYVipZF${r;a{w zz=a21bf62J=*9=W@QH6CdFto`2V8jIMF+ajiEe!03!nHVlBbS7aKMEJUUZ-fo#@5~ zzVL}}B6;fQ0|#7q;6(?z(1~t*;0vGlCX%O)K5)Q=2VQib3!Ui32fpx$Zz6f>=mQ5_ zc;H0`y3mPkeBcY8_$HF4jy`a}g$G`ApbMSo#s|LeiEko#>gWRpTzKF`2fEOSZhYVi zpZF${r;a{wz=a21bf62J=*9=W@QH6CdFto`2V8jIMF+ajiEe!03!nHVlBbS7aKMEJ zUUZ-fo#@5~zVL}}{@$@Q%CnR_o!RzTblJ)-&u;d;%k!YE3T*TI@Ot(5@45fBPM>{~ zFS~o@-<}=Vv;QA{mf7;zp4IP}e|uNpe|`So9KyMTa|-7c&M};8IOlNg;T*)dh;tI> zCeBfut2k%jn@FBI`oIAf9(d7#E_9+BANay2zKP_iqYoT#;ei(&=t3vD@qsUV;+sgG zI{Lr?7an-gfi85S8z1<>C%%c~siO}ZaN&U$9q2+Qy77T8eBzr(o;v!#0T&*4(Sa^> zq8lIh!Y96oC%%c~siO}ZaN&U$9q2+Qy77T8eBzr(o;v!# z0T&*4(Sa^>q8lIh!Y96oh0sU&o}F4pN1a)-*!^IuFk#{w0-V-?!VkWJ@YSC;OnOI ToAS1If@~i`&-}BGZHxZ|upF7m delta 793 zcmeAO?+Bluz#VU(W}g7Wyvy__YMa*2|7x*oH4t3i&gE7C1Rz=$2teYmfMEY$38?%l zSD^HZ>)T(s0;RP<;vjhtUmGX@<0Gqofo$Gihzv*+ zfy--GTx=7&*)uWdI*f*iXYW>BQF%~eGv}0(XQt16eg;OPi^KR3S_`28-9VVZF!9M9 zj1DkdUwANSGQ)|D%kLeK*l^;g({{fVyN;h+x95aY<(!-HZGJakG)x?(4yKQgJWL%- zAIu!6KE@l9S1>BTTmz&PHg_;LFfQg`0pt2b2dW#gPi&lj4iAvi H!P5W$e}cBB diff --git a/vtfpp/extfmt/RGBA32323232F.exr b/vtfpp/extfmt/RGBA32323232F.exr index e530667618671843a67f611277b509733847a9e4..df64f598b6ab6cd0f79758144f527e2c579c1cf6 100644 GIT binary patch delta 482 zcmZqV-O0OQDkHBp3j-XqZC=Ev%&5xpYyZSXrwa}Y6IRU+sm$8l9%At7f8hWAU-ei1 zFa9V0^}oQE{RcMRVUl3f0R?HUGL49^YQK+>z(T}VlPx4{@%nS&!hLD zX4ahV6YrOn-&!+m*3FgK%~$i*@?P7$rQRs!Tj4LAmFej|=Vo}=de2trto@&RN zH&>?3+7h{LxBVyoQ;+|q)co6(7CrUt!~JL6bLM&boHwz)8WMh4Xq#5S-<~h-MK^G+o~pE5kwryV6;a___51qaxhxozgFJ+FOIes`|f>ZNIAuWlu5jm~cVs<)PBdhHxL z?^ib^CmX8;oxhZJ(k4!FT{)+cwe{AeYPr*1zw7@q`BR0xSyNiZx4;VZeo*PFzxMk$Iy1K&7{}S zXD01D`Ml>I_rLT%=YPa~m~-*YlNqWp_ounfnwR$T^VHv~%#QbeJGK0h&i>wWQoz7L U_9fioLWnSA`oqs~CH3Mw05a;v#sB~S diff --git a/vtfpp/extfmt/RGBA32323232F.vtf b/vtfpp/extfmt/RGBA32323232F.vtf index 908b57db9a4e79eaad87fcec8c2f9cc26449fedb..26b74d102fa21c9c633ce5d6c75a7fd5d32c8bfd 100644 GIT binary patch literal 22064 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 D!mkDH delta 1463 zcma)4ZAep581~LG+@MVew~SCzQ|Q)iuGA>sqm`thl0s+&y0Y?zKY}PTM6QZi&j{BS#fakpT zL~EZ{Z<)_^m-&9Z;C^y%VkbD?egmz;4q;(g%h!?g?pOK`Qq&Dnww zO!*DSZ$bVx_c@3JOWH!_8hL$oX7*CGFr-SM2ev%Dpa(_b1q5~41=CYhI296VE zCP!7kQc+n5rhKYL`pI5_UZ3C}6yyT6zJ`g|a25?+MMKeO=rbC!5W^HxKGov^{`J$B zvBd*g@XY72o-Pr3lzNQ?=OS$ls;brh$y!)VOCMBKtB1`ILbxhz(C{T^X_~w&mopT6Y|D z6j^0j2)RH7X+vs=8m57Q1Iw{12Ckr^_9APDfd`mq(wFEICfY+1Qv(W4Y#&bS3{LD3 zPHZ&;F*xzdeBv^WoI6@6tnvw{AZH{!cV_zORjYYqSa diff --git a/vtfpp/extfmt/RGBA8888.png b/vtfpp/extfmt/RGBA8888.png index a3ff0d16d468e1af42cda47f82d9866ff79c05b7..bb3328f66d992d9e1a06f279a7fe1bcd131f9af8 100644 GIT binary patch literal 4309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%C&rs6b?Si}mUKs7M+SzC z{oH>NSwSk3J%W507^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10g0sLQ zvY3HEPZ@+6E0)@q0R`DhJbhi+Uvdia2(sVl{kx5UK|tHn#W5s;lTkt7{(HvXM*muV zs{G*iDe;rzyU0(D9|GSwzVrS7;_n>axW93H=lsF`mFpYFXU;D`{F&ne$0v?AobNea zu)pTG!~T>5Xa$4HPw5{LKSh6td>8y7@PqFMFVFzq?>s-azj6KG{Lb-{>no7{%n8IC zKR7-B={M{@*k1tg9gZJNAOi*xj5=U61V%%E@jn9t5a9+O1$Y4g1^)@?AB}?15Eu=C z0S^I2qu*Y?DXGsvWdtSdi2)CRQ3s5Mz-S0CGW^G1WB+Hw+Zq72Ch#j@#4pV-8U>>v dFd6~_9s<3^9g(8PZmb4nc28G7mvv4FO#mH&w2lA( literal 4309 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%C&rs6b?Si}mUKs7M+SzC z{oH>NSwSk3J%W507^>757#dm_7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD+10g0sLQ zvY3HEPZ@+6E0)@q0R`DhJbhi+Uvl!Z%USJzm!!(TAfWB(;usRa$*3T3|2^Yxqkkd7yybY$ z@q*(G$8Gkf96&1=RDVhXwTl3?3j($C{own~`<>?-&kycz+&}}_e{p@~`oZ;u^9ScA zpm867_$?5>0Lt8E|G@+@U?9P$14ct&Gz3ONU^E0qLtr!n7>#~=|E8oq2UX>iv?oTR qU^E0qLtr!nMnhmU1V%$(z(ZiGYHgyKKsXPmTK9DIb6Mw<&;$T5vZo0E diff --git a/vtfpp/extfmt/RGBA8888.qoi b/vtfpp/extfmt/RGBA8888.qoi index 9a224fe3618a6acc2315ac641ee5124b07204f13..65d3042d44575f245236865503e48114cb15ddf0 100644 GIT binary patch literal 990 zcmXTS&rD-rU{C;I7KZ=7jsCU#{}T4C=l|Qh_f!5qX?ii||D8$qm;Apx|N5H$r`DX? z^8dj0BYXaDKd|TU|23yJo&G=n^0LeSC*7HO`+w7u?#KW0-d4T-AND2n^M9k?UcV1m zNpXNB#d)=uB_xHJgusS#9^epS5|)%;*5VbHLg=&N8C6eS`27FR!0`WA*|FSXVaJS) z8649)rbaT&V+Dyka5RD}ef literal 1622 zcmXTS&rD-rU{C;I7KZ=7jsCU#{}TSa=l`4h_f!5qX?i~A|D8$qm;ArH;QE^XC)b?Y z@_+yKBYXaD-@o_J|1~E!o%+Av^0G_+C*7HO`+w7u?#KW0-&DQ+AO0on^M9k?-oFp9 zNN`B;+bS}M%7Kls76BX1c|ZhgzO}HND1)LczZ8cA%cy!_Fpq}M&`b~D#EYKRAz28N TnMTw5X#O4%+>(Kxj*U7k{3-+=Dg2)JLOy0m!8IdM!#G5 zKrE05NCu<=q!Oe9q!VNU$Rv=7Ad^8hfNTQU2(o$9`q982O?m^6@qh&pxJUvQPT(R5 zTsRFHF+NbyLT<^@2rgR4E!Dt<+NkxTflp4QHk$N)^HGxVV6CT+pitK^&tOk~Kivp7 JPaju31^_3{R$u@C literal 4108 zcmZQz;9`IQ1qLAG;Pd`%^gHcK_~)uO`LDa5G(DbqXVUFumls^xbaKt9z5BNxICV)%= znFul&WCO@1kc}XlN39_H?ZG#E(hc$isu*d*1YF%zRvYV8Zks+mL=0xvxDff1c7ngzQ# zM2#z;5=cwOU{FfBEtW!4yz3_S;w=M(B_*)XQfXQ)y>tzgOWWHXzr)h58gRzNV6yi1 z>-p|?zQ4co-JW|?Rj(6|69n-X&~cz=;KJWWfX5&A*^+Wh1^{|dnphIG|gKTN8sMiBWW}mu{^-CpQ1xT?hr|mA4H4h zL2UG)o+Y-vzP{!lK?o|9>YL6sPsg{-t`5@`S8I1~p!M^UfvJz%>x4z5!%6X0xS64&lSeWqmoFaqlDW(_LhJD%TxYJ1<#R_>k)U{8*j0^ z6B-;iwO}x}Idtc)nsmpOO@=c|j=`Jb3oYUHkP=7(JOi>Y%!NUR0bLE)D8aS>d?>*e z4L$|%EkFz!VkseJ0mLQ{LNW>=N_LN-C<4i31cD_+n~JS30w1k?@9JC}n7H!u=;etK z`n!3(>%-O4e);BmzhlBYmf<<9gLSbDw%u#{XxX44RMj`^RqJfj`3_1;x6C#!H@U01 z+MtYko0mVaXi{C*~xq*#4$p{KBt( zalXJxL@`cL!G~#PBf@R1^S-!0wwQ1y)HmdO`$%oj+~4H3UTB%sk9JU97M-oPr*HVu zi7~^aS6M@ERd~2d?X&66yC^F?Icr|FxZAnzpnB^Qey{sO202tiE{%|r7ILE?M=#_W zf}Ep}dlYI2K`maWiGtd+P-7$1S`9VJp!Ph#Km=G60VZ<5h5?MCfRzB4B>}r6U?>2V zQNWY|Y~_G)5nwF>%<}+y{CuSdmKwp5?<#OYZ%Cm>@N<`@-PI8^)1Msv7xwY8q$Z-; z{E}0L+EgW3Bw6{AKn^#(YQ*%vgsz}{N zSzHmvgn2B(b65xKVjFCWePCbMC-#kF;8-{&j-8F4#XsABd-wdMH>Zq!C{vc+%TjyV zU&njfU#3}_&)n*E3-{-r|toRfLx$>ia`csJKr{)Z6DU8{lM`gSh23LpT{xLsA&y>fj~@#6=&dFb{n+r91pIzBh`(u(#Q6R(3Xh`oFH!Oc_7%sm6b zFgA#Wv0>_9`d(+fn{s;T`3>{WFFT+5rua1ogV-Q3kQ}A*2PdCceqjC4Z7YtiJ5hPF z?FI;g*dQ^G96BFeJ+<9~?w@a7Kf7L3yq(Sj?4(>X<=JkJ>*P{-fz{H2;m3KcnUEX#GR~`ggSc Z9&Nvjw%^heAwXXf+=BBqm;{J6e@ZARb2 z#XE9Umi~A8e!QYaY4Wz8UeBrzJ^uf{e0ue=!eus--+NwHSp6{aqmGTxR*7ZK!W|q8 s42HSdR+3L9IPxKgWCOnB3uV)Cm4Dd_oOpG!{N73f#T(cESI05~06O76>Hq)$