From cc514709931d8f3657fb39d918d13b34fb4f127b Mon Sep 17 00:00:00 2001 From: AthulJoseph27 Date: Tue, 26 Jan 2021 13:59:54 +0530 Subject: [PATCH 1/3] Buffer Abstraction --- src/VertexArray.h | 2 +- src/VertexBufferLayout.h | 9 +++++---- src/a.out | Bin 83560 -> 105244 bytes src/main.cpp | 18 +++++++++--------- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/VertexArray.h b/src/VertexArray.h index 4e2719f..2de27c1 100644 --- a/src/VertexArray.h +++ b/src/VertexArray.h @@ -48,7 +48,7 @@ void VertexArray::AddBuffer(const VertexBuffer &vb, const VertexBufferLayout &la { const auto &element = elements[i]; glEnableVertexAttribArray(i); - glVertexAttribPointer(i, element.count, element.type, element.normalize, layout.GetStride(), (const void *)offSet); + glVertexAttribPointer(i, element.count, element.type, element.normalize, layout.GetStride(), 0); offSet += element.count * VertexBufferElement::GetSizeOfType(element.type); } } \ No newline at end of file diff --git a/src/VertexBufferLayout.h b/src/VertexBufferLayout.h index e4614f9..8aa8d23 100644 --- a/src/VertexBufferLayout.h +++ b/src/VertexBufferLayout.h @@ -19,6 +19,7 @@ struct VertexBufferElement case GL_UNSIGNED_BYTE: return 1; } + // std::cout << type << std::endl; assert(false); return 0; } @@ -37,7 +38,7 @@ class VertexBufferLayout template void Push(unsigned int count) { - static_assert(false); + static_assert(true, "Assertion Failed"); } inline const std::vector GetElements() const { return m_Elements; } @@ -47,20 +48,20 @@ class VertexBufferLayout template <> void VertexBufferLayout::Push(unsigned int count) { - m_Elements.push_back({count, GL_FLOAT, GL_FALSE}); + m_Elements.push_back({GL_FLOAT, count, GL_FALSE}); m_Stride += count * VertexBufferElement::GetSizeOfType(GL_FLOAT); } template <> void VertexBufferLayout::Push(unsigned int count) { - m_Elements.push_back({count, GL_UNSIGNED_INT, GL_FALSE}); + m_Elements.push_back({GL_UNSIGNED_INT, count, GL_FALSE}); m_Stride += count * VertexBufferElement::GetSizeOfType(GL_UNSIGNED_INT); } template <> void VertexBufferLayout::Push(unsigned int count) { - m_Elements.push_back({count, GL_UNSIGNED_BYTE, GL_TRUE}); + m_Elements.push_back({GL_UNSIGNED_BYTE, count, GL_TRUE}); m_Stride += count * VertexBufferElement::GetSizeOfType(GL_UNSIGNED_BYTE); } diff --git a/src/a.out b/src/a.out index a2d944c4ff6a7c5b7a22c0707dee4a9fd2ffc0aa..1c5b352ed9bdea974ce582b5cce9061f42de37d9 100755 GIT binary patch literal 105244 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 EAN^Xk-~a#s delta 22206 zcmb_^30#%c*7trM4wIq>6%-Zah=4dB#?Ty&!_nh_;(${cpn{+v$e^g)=wvd5SQVib)zm$) zMus+vn2aUX@M3jbsA;zpe@Z41%SaxzH_{%*YDV9Vp4N4*zbC{6Y2ZS^vERsnan>J{99R>+4c{{M?>%#RaF=gv z@b`xw+w)V_sKEz&9yv2MPu&!nDIR=Bi1Abe3|bHlg}8QPzwMps%2#wdPQg}JUID@Oljye@E1wt5F!nj@YBfor5J$Tg z)3H}qp3oygfE{|R&3O_<+C1Pz#+tWafhH>F*KN!2!XiyJ8D=z}I;c!cZI;*aH zMz1kve+ zcS-x*2lPg?G8n`9Akq5^_G<0XHFio9bH7SP7FjorIBVRAlPCr(5CO6*&Cwu)Dm0D| zi5qtYlhW{;l|Y6uMd^W3Z7e#g*Nm9SaE;>qOr7nY=vA#<*EvyTS9H{T1jfzHi0ytCgn^P~bC!8* z)h}y7Yxwj5S$+4U32}?@REt(1Ra&9Jz^F z!lrOOHnO{V)t4WRG^stx`02<&T_a_wa({(3-09C-BPXiM{rQ-IlhynHzHQ(@_2B^i z@W2uNi=a)k2Lkw~1N-=oM}BJn|9#-?>KuQ*EXwMCZy|_2@aK<2jT`XVD#${0B?FVx zMUrMfFpOvvY4@+<0nsB=zW|;R-A}#b&lg5p)a^O^p6Cemx-Wk|IyN*V2h?j$p78hVeh#mV8LXD9*-rrLTPXS0gmoMqSBU@_?Ov&gWNv8vE^W5`zyiAP8%a8GnQ_v{>rxfO0ccEq7~Y%ReR(A68_C! zhMSBGw#K`RX7$Q^!!@>Ytk@3RJ^d3pS)#gZ=9oVC~{pf zdo5Q|GSn9e`0|uU)ltBA0x2!vkEWcOaR|nQ%@_AvV7}2-{WdPU7eu948*RSFpr7K( zI}-Egtng?-5Cq-S^`}z)GlAESN>(T3^KV8C?|&V7vu%4r0K|bF_^S3w;*H6ubq%Nt z;hCfT)ubezH#&Uuov6L_C6Np0#?|Q;ZB8r1J7cSUOZy}flLqMPz+6IRI*II6XxgO= z{^IEH*f@+XYTF9K03umiw5yXutd<+GPG)kSTc>nSn1TUvNEuHxYN?t0wp(M=+otpF zw~jR)8X`hHV53QEv+%cX?c1kMhLANue}QUGKMNJrFs-^l8#0|6#te%XCZn`K6pwbd z<%V?}c~dj^>@f)w5^qPbwMBN5_PTQ><>5&6%K8&aNV&cCf4`ld9y3y%p2x3`d9m9) zF))#&U%}?Us@=7WzcMyPRfq5^W24p1LwJvIaq5v}e9E{v>fcuJd&Z6J`RP(&QL~+K zK%WplEnq3XGHy)Z5)tJ4RZe}}_+J&ZbO|3ZVY(W-gm0Q~tNP7ietbfL`ToTi9qRk( zMcDYp2nU*=Qke99ZgVERvjQf7M;Gxv6HSI~VK9e{n-~?FB4Ynl*+E;6tXUTET@zQU z*B9|0Cm!f!=_PlkP~A|*kDwdas$bVu^9Ltc)V78Et4X`n%?o+iv%|iC zwFMUehyeXYj}X|C`&vh+Pc7g{)&zCa0>0XMn>u&_KVx02g!2JYrl~v9dH$4iH6fFq zo-#Z16WF)eoMIbdbDqFbYW|^o(9~thSzbA{Qklp*+g2Mso(Cn%pBfhZ&mPdJw}DoB zobqz*NeH#kE)QDA&7ZRkR4>fq=WP+nHvX%vU*H3%;q?7r86Plhp!)S(K4n^jdiOHE zYFfUsk-tAJx`z)Kj(Zp8GqLdlE0gE)py_>j$8?7T(=oxCljX4B+MLg(;kx@dA3uHI zpha^&^gOn?Hd=)G7A%ESL;3yFyQ*8}@F%C6)R?8bar!LfEgmsr&~!gY z!RD+ni^wn+REj-ku#_Ti8}*WL2h4IX_s_ne>g)zHNA;_1b93e9P+K{hyJqAmoc}Uo zf*O&=$Ie`&9-hsW***CaGbgHV%;w+CjO}$g_=X9bc`Ab;1?^34PK{OG=ZjNqy>9i^ zV5ni`CsLEuuED$|HAHFRzOyEVJ!|wbB@QpfV4g8+w6dMwJ1bkAoeJqsRf|*k^w|TI z48C^uFm=g7erR^AnlqEXI(zuQw&}PE{MNii?Db*&A2WloD5c7J4aR&G6j8gxd#0r* zTlnm>=#bnln52+H){8J>U-7E6k@jc1VgU5*O4&$~;Pfy+Bydi*7T&=^E?Q^~66HW1 ztGcq60kIVlKcg+{ppNaVJrC+}?^eHK8=C5|DL6HGY&>~RH+AC-K5b6lkaA&8&m*1% zwEyt(IsGC&!T=wu2L?=o$c}SbIiw*^lCJ6enK@BI_jQPD!^m6Pqv8BduXo0u!jWJ(I9^qH0WrVj}F z5K4}v{fAW~tXINFJ}x~{$>&+=(-L16l>^O#9UT^zi4r$qD{p@dGU}|jQeE-BW&#t= ziuYmA|1p_=o*v%mU8n;H)4E!@VL_DX6bwGm%++sKS>MzC1v{f%>F*g&{bD>-)TSMs z%xw$8!*VIkrkj=D)wc3G7W7t^P3Gt8K(ug&qqf z5jYQ;6SFNcc}VlX>gudG1erVq+%d&inJKGUD2Ma7g)w2zf?dq_ouC03h7ic`eK1!Q zE)4A#fcD7t3!+|y0wm$m&hf(w2hZ8oL0YBlmAJ|__$6C4>{KZ7W+6@o3LpDhAXT9=EvnkVp}bUiYVr{4`Nyq>eJ;n7~UH+q&H^rN>A*Xaaw8alDec zcS-2bpY*Dfl?FK!W6UBu4AvuvQgGM}=awa5K^GyQS>(}W;VYLUbSeV_So7;F{P2>9 z;52Re1js_QAxi58jH|w3$p|Gnz=AT|EVXLq#$$aXeKQS7==*}e#?{Bddn~O``&jti zrOE2I*JTjt9-|Z(0~Uqr`umK@i`d}@{1!J{CdXi{XL^F^;YZ~z+vBj zCSuJnku&X;QM@Sgpkm;GSyuIrR-TqMSbeXRZ_etio@lK*ZJ5zY;@=0N-DRg}_ z0Ml^7UepPTYeWj4w_>mT<#8Z`j5nXaz#89YbbL(WqdGn)@j)F|N$k{dxx`y^oGbA< z9WRo2rH*X^C-^SZ1u0Ttx{hNd9;f3liQ~uByH}o2)khNeoK=x27sg_}y#z;u0NDhv zuTFqE0%g`b5Tn2rwpwiQTC~R@1aOlEksn)?(q}ws3cI=z3{x1gZ^rZAS0zM#A5Vs$ z(uDj@5I`eY#BmeMeaGkKPF9bO)SQ7_;RY#|5Nhw|jY2=(~u zd|}~ab=~XyZ-wikpBaJ?d}k*C@x@L614Oe`E3n_Uh?2goJ$9BS6lJOVhVTPLQ`EX| z_~%8vRQEUhr=n=J=rZrWZW!#mW~>`+_$UCDkLq>##1kWfQrC!(gy~TrJ+x16rZ}lmSe^K0Dy}OyW6^E&1 z8t+{)bVP24=nicWVjnn;VDipsi=Z;9;AG&y72?p>ytpJv>B-$Cv1-lN{H2n9>XVna zr)0De$@`Wr>eE{jdGUxzA2yp%8CIx_GaBPHr7>!r#-A-U**}t65P(ZXqqb1TGC6q= zf#i%|p*3kBLDvy+&T2jqpA{*E-;`1(2*9Q4>nJ(>m#~%?O>@^ z+x<1KTOWRlg-p%8*~Z_s#b9IdF6-YXSFy>?)GL##Q-2dPsH}*%f!t@qxRKvQVs3Gf zdmA{M$nH}`i`8O_eI_dZ#;P@z7j5XN`0+b8Bt~xleOy|Tg+45;4Hu!(;M!8y7mMv% z7rAFcf_l$I9$FqZBNif1n6(zp%@#-jCV5YM#}#ipTZ z>1F=trrXt!%e>R(!)kgz{>0`{YM*{w+dR0-ea&c|*`i@L*v7vdJ1}yMkXQo#PYKRw z<}2>d)C=G7)QT|mmT!A+n@|!-q+m^xV_kH=8Ew{~j805|W z5k*-zA)5cS+##3e2G#g0T>qjiIVts;2g5cBInm+uiEw=|< z11+(rXkYc=v+cdqoiFfQd$_STp5;Y9OLu8AKIYs$eBlTXLX|dZ?_sB_ww@I|4XphH z(zDuCkXBjG2%)V8E(97uf0y-)@l*q?FtBB;PXAPdJtJ*-w5P&&FUM^Ab1(+la|^2o zCZuVZKex5LYW)ckgXf^KpR~QOvcIqPVJeXjW z!=aPz(fpd)+H!8($nnadM)icke{|f|^(nYsfZph|{)SO_MxV&QH5ea;^(4M)>nunqZ6aTK%YgO3ZkPIKW{Ws$r6UL%@K67aO=pB6&^^*|3 zpmIU4y7$`J+HZPvoyS7?>B`e;_a3}z=TP;h?)=%E8@tUF$Ln+r%G?A!qFV?bf9Evy zTo1nM&SW*Md;QCI#wzNzdVZxUs~&@ z)|;tG`zNfs%`irB4r;7UKc`L6V@Vxs@qfVqn)<_jG4GsvyMAwVqN4uzEkC;a~xG=El_li@l^UXEj)-nP?G{TCFg6R)unH6b@%L%_q~ZqsmE?! zHDMk)qivG`z>Bp=$acTU9lIBFPku|p0TC`qF73dZT-$v?{nD4earZ3skwD(pWgj*7 zJE3#}4etz;`D@S~hg}A|c6xdlw?_yW+`T(18ni?)!2t7EGk?#uO4-YA-4mfs4&Y1o znAPq9eD|I>Wo&)Jo(YO^Gfa2TP4p{aUbL;BGLnzrN$SrZ^K9Jhaiy(W6a8 zj8o?8a5gb^zUjiQ#a3O0-A&VQ?r(3R{xUPDw+SK`=F*GePJB~We#d@OV493Hrz?MGf3lkG!#~?U!XAj-vnJ_xI2&tMp@CrK zZ<(<5=Qt;dyX1oyUcd!0PJTzsA|Go1!iL1DDd}U3hRc|QN8GT;*}=0p$JU8^lCon^ zNwpepSJ{dxONB}oYZu0M9T=u=>B3JO=&$ZmdDDR*oy&33!3HW+co%n!x+jQN_KFyA ztN|8HdIst^gFrukR{^0FlzWpFcRUboH^YQOV+q^WqivAw1r04n>f1>aw3xA66ZNi@} z{F%a^CHyqu&lUcB;V%&WBH=F){!-!JF8oa4FBkqw;pc#FZ;Q?qV72h`g}+w#MZzx@ zeyQ-+3%^|Wn}mOd@V5xxA^dH^-y!^+!mkqkF5%xL{N2KLp>L1gE5JVC9}xaQ;omF# zL&Cpb__e}+K=?<5e^mI#g#W1U9~b_U!mktlKZO5`@ShX@3E@94eESQ6oDzP6@Lv}G zE5d(O_-BRxy712l|1IG+3jbZyCJjv^NWb87P;&WFI*MQsx1$8&z{prOaV{MZYI9v(k--Vk)nk6khJ_`{E#@_pVHM6I3f=QEDQ)?Yey zRN)UD3*mbn9m;1tp2|BtF^<3bI9#ee5zbdUG1zX}!x(-jXn<}q8Ir~C1M!C#<@m`S zgX8uvSX442Vaxz+8OT^ZP|IM(b^tXGW9$gfw7HBugLEEa=YY1%XY5m;o&}6u0b08d zJ~;zwTFh9`UGT}+a+qUHz&P?4O95K920nlTnwHO4Inc}^*q#G5moRn^NFEA1YGBfk3H8aJL#8j3HIEAUfqnOeH_gpP-6~-(evp~s!Iwk_1#1zXU zCce>5w5PdE-Ke57e~?5{E}h&r+r|Cfp7InGlc(39o=mtOVQH zOi6>9fZ9+z`B3@-Fjfc&gEJQ~1wPWV40l1hVWDEVq+xp{)jx1Nwol?ZltYa3-1aoo zH)%D*$k4P{Nf*I*z@JWaJqLx?>UxywS)wgO9Yl{|QZd}~wAnWRI*tNg5sp1bX`0Cf z8!po{6KxqGvBxZ_BSF%ZM4)@-gv5=O7z!(Xb>ll?Xai9buxS*(lwJJMfAqJzr~+6t zsV|Wfx|H~}$P%~ddS(hwBkG`Vo$7i;6z(E=mWt=1h6s@9CNMK)U=dLVQ4cAe&|8jZ z%ij7;^)ZU?Dyq29*!?ocmfIxFL<%+9#YF-SbRMkmzDbr0sX}FAX_*}{w0ws;dK}ZJ zzu^ByC;PWmGRR|+w2o*kj4|wB_ueV#5u#5LJwfzkqMqqeuW=gLnIWlzs2L^;wC5<6 z)UsAkJF~2l0uKe4DZ)82{2|en&7?>8GSTZq{~+36lX?wg#|7gM6UJEyX#f?tyPzaC(pXS%^pT2beI>Qf z=)9j4k0FJ29%^qT$v=p`K=f6jjYK~odXcDFEiDHT?Mc)`bO_NzqT`6#h|ZPN&cdjY zBZ&?pnoQI}bUM-bL~kdWOSG8i9Yl8$brD@k3Fi`GKDk9@7I)W3rMJ(Vk^p}9`4}GX=}aE`Sx^4lr`?rUe)6+$_qS0>aQ%Ni{Ze%g zja9}N95$E5y((78Qh{zAqHI+S z7py=Vb%5tUg}noJOgYWLN&|B4C%3_!aYM5o)F;5sljE%GQMpA4<=wvM!Ob7{cNfJg zT?3Y*w6$Ft!FONw_i?CFtMHrt2jUffKTxTD?N`tO;c{HE(O=q8j?RdDM zR)xasNl=o}z%dBe^FabPUJ2m)FB|#aJ{ZJnE(fS*Rle{_grO02MEM z%__|nMQ`-MCdkNGk-Mg(bWO&}tYT;kEPWG1a955!b(|q{1S9{u8ZYbmwXJ=<*m#@e!D$Oetrdn?V7H5~{78h>7m<|KxNZ4$bRq>hM zhS^;P$WzXW{K68^9S#a8Y8T_x3RqZ_Eo>hXs5m=oC5F`rRFa*&2GNOjREV%az|!pe zd;!l2xS=?&RHV{q=x)hal|LyzyCAC=)tjVXa&guMD+sgKmX@H{BgIp*OXrmq=dE3Z zGR@Ef<7RJ|wl=R61ucdU6y$7}1UW0sUI_hL7P?gr&@~-A?OK1OiWgq%+1uqyvF2^a zDwbO3+ZBDhWwIg z?6?}ozA*5ozF(&{2e{Y8Dhmyd1;St2Y<;Y!J7TEP--k8%xWCI*2JtVx@4_>G2yI4iHTWZDWV`@)acJ{Il6_WO&;QN1US$2BLp8%8Sr?u{{u&3-(P z`6Xl*=HRIJk7J+v-@+aWh|gYUU9p0_5s=KT1tjJ`+gsCStSFc}FFu3)9TS}kH4(?^ z{S&bhW7ul;SwNEL?_lW50H(%eWMG%hC@5T+4WcIh_>2tEQ+3Hl0R}_E9y_eyP*Fen z$Cnnu2*$i`EXua#v3I}*h@dk_$qIH)K=!&D7(RsjJ6LGs3Nsiy`_atW!qN;ZNgn%G zz>30xqO9U<%-Xz!i~{yhputdg0CgR1^y`G*;D+=K2G@P)Hy#zi@1d!zk`h>ptaDe) zow0(|1VYDHRho;&7zaZQ@V8Uo{~LXe@Eu(`w;HUhzB4y|n$pM0{;RXWP_<75ODBYXN%)WN z=Y>BHQ}6B~qV4aZN4u{JMvJ$y!(E`9M=;vKhtPLDg8s2bp$B_nYlG5EnQ3OTBf#uX z%x06xRK(B!5*Hq9F`LuO78Cd;kfz~3k75pXC~0OM_3PZo;7pJQn=>;po(Xh|>I@FW zRI8YZENP}-h{*TfCM@HWQ1D6_W{Q62Eu<3W-zT` zhLhk<9~01zldB2qN7-7!`qA}s!uk<59RDm!BtQle3FEwp32Xz53E=Gp;^P#Kw;YIn zC0s-}#U$<361Ed=B>XI3QNwiJwO=NIegGahKq}}5;WdQy1Mv%l^@Fhy+7=Cp12SW5 zDq%KSW)S~C4a4<=@=Jt077=b|zmuQ^ZYr=uq0kqwMwnIN1%xex_YsC$4Wa)J!nK6| zO}K@y8YS(Srbzur!kGfw8JkN22Pu>ht|NRuVGrS#2%D!$gZQZjW;l&-*Jz0ygr^a% zC0t3k0WqY{8b}aqlLmhyY$kk53?)FgkZ>*G$89j$ zf`&91p_*_b;ZF&h=g9COL!^Ns!rKVD2%jh1KzQmVCyiSS6k*o*N}5yMwfc;91X(@<2MqXOBgR9F}{be#SZszD2Rc3C((%r z=Mi=gew=U%;qM4DxXr})i6dov3*kEmrxAXcu#507gza@CNHI$T4TQ4^dk7ySoC%kP znBY5vU4(nY$@sN|7ZLUlew8p=B;yCi3w=9FBf%Caz#B=Cz%{}RgyRxq0v^Jtgj)!o zARN3{#vh(2_3?feGrWaxBjHy8_gCx=#+FEhZb`C@^}Dy_g!MbPdcyjhn_sfj*YDmI z1I8w-BYV3EdkB9>`uYu8|63rw9Xge`N`oBcpa8IbqxL#rG$?M?Al#fH!}a?$2jR3# zS%5~u`u$qOD5=k~W%w$)MKXK?VT;6e#z}zBD`?u8 zJ>fdShX@BdX#GD$f+B}B_%Y#H!q*A65Drh32?TGI`c;I@gx?~JPjQ&RUbAE$auH4i zESh8+<>&!YXxuI%G!Vu&JT&kjVSLL&e3cBi2&c>jgT63R?vmlt2@i8hyp-@v!i9wM z?IhSn0(`;51ojigmrTUR2;++;;ui?x%O>JR!uZ08_#$C^=|tR07+*XQ2c^jj+wtiW z1tt>U3n=15!uS%3*hUy%L=i6~j4z{ziwNTjDdHW3@ud{;LBjZAiuiGf?c(Va1-SRa zD#RyL#P1Wvr&PomVSG|W{2O6>T16ZTd%OODa8lYMv6Zm?Ho1v#9fiLxu-(D*$I3r+ zg}u^%ZLTz^KWgqJT+U^9E8!Nx%jQuA_Q~+mg!RYIPV=FFouMEP$Z!=hZN&B8W0Hct zC;(hXIEAqO_yv7agzJx6PZHK2xta*q&5-tdpjyzL{^%7&SbzMo0=5fQF95n=t2E5#u7^~bGx9ruw1`jN2ymNm*(>g#V>kNd*-H$tb;pM^cB09b!=4)v2* zfBjraSbu*#irC;_DKzdsAuQgTu{r!@xOn0OynwKHRs~#ZM}ZOytjzH<0>cg_MB?WG zLoI_@`FmYr$fo?^cRmo_j^n*Be(7^__y#X*-{U2C)C>RQg(n7fG>HF^%FPLU;)Mrx z>KKlHJ9m@5ogM2aV4r#6?l5F-iom9N;VoYHxEKD>3&#iDY!Alhsty9i4te2sy>LL6 zn+-5F&I^~j_w-aE?7w)4Q@VDHw%!ZlpS9jx&g))ysIg=CaxYxc5!;!wqkui+h5zY= zzx2Z4&?|4wP>L6x?}c}Cz%Z~5b`Zdn?}bl#;qSa~bhnNfSmK3U0z2CK{?VJmVX|e% zZx#T);DuYg@SyG;6CCS>H@YwMf|mW>OFXhi$7uOp_z^FB$qPq|v3{c*!@Y1)M{H+f zItth%FT7ab8GJ1=bLd7}WBKI?yz0CAibwtC?OUKl^E zgu&HbBikizZ=!o7ZlCubyMaae?9>ebrq5pW!f$!u54`ZFUieEd{EZj>p&iTg*{@Q7 zyBP5^^b#d%$01&LfW+-39x5@c(DFCd3s3dJ89Ju)S)nc<0}d~|*9#x^!cTkQvl6#g zIevZzP1KH?23r+z@b`z;y-}1g;CXq2NY<8wt(~E)HBg zxLd%D2WJ6?$0H-SN#G`f3kEj@+*D-^90q`y2Cf^p?%;ZWn+|R!xD0Ta;IhCi2e$&; zN^sfWa=@(umkTZr+-h(RaNEFb2e$)UCAgj7?gUrmey6|E!<{%l39;@4%)#vghYy&z zIfZ9Qb`ab>;O+$nFO%#LINa$@05=hw72FJPbHL4Ye-@$i9X=n}bZ`s6tpS%0t^geF ze+$7Cfm;Wz7+i^aok{7XY;+$sDSho*L4uk68@T^r^ZjpH&;I|R`TjSpH}Zend_(@< zo6p@TQW@ZWa-h=RotLF_b6bj(5$;bHDc#*yqZK23$<*!m`%%hO@%_@n$DKozeLj5t zrKIEgMku3$qL!@PP~iO;lK1y6$1jgoMk>eQW2`$=_sl^`fcuN_%HHFq~z;KDa6 zk?yipP|zcrm0R4&F%TMLRsxPMD^o&z-Dfu`^WCMJl`!|$Bb4Cd-)vSKo!wtdSGM$< z8K0PukynxdUuhJJkHNB6X5pv2hWmU-%=N%TQaMrqda{Oq{6QGb@j$NyQD5cg+U zV)CD5$$urgMd;0tUlLKm$$ydXsJ}>L)L$4JmEt}E1ybWv+#aAk6aH)~KGA$U=%5k| Hv+92X|FLdL diff --git a/src/main.cpp b/src/main.cpp index d021e79..5037201 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,7 +6,7 @@ #include "Renderer.h" #include "VertexBuffer.h" #include "IndexBuffer.h" -// #include "VertexArray.h" +#include "VertexArray.h" struct ShaderProgramSource { @@ -141,14 +141,14 @@ int main() glGenVertexArrays(1, &vao); glBindVertexArray(vao); - // VertexArray va; + VertexArray va; VertexBuffer vb(points, 12 * sizeof(float)); - // VertexBufferLayout layout; - // layout.Push(3); - // va.AddBuffer(vb, layout); + VertexBufferLayout layout; + layout.Push(3); + va.AddBuffer(vb, layout); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL); + // glEnableVertexAttribArray(0); + // glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL); IndexBuffer ib(indices, 6); struct ShaderProgramSource shaderSource = ParseShader("Basic.shader"); @@ -170,8 +170,8 @@ int main() glUseProgram(shader); glUniform4f(location, r, 0.7f, 0.5f, 1.0f); - glBindVertexArray(vao); - // va.Bind(); + // glBindVertexArray(vao); + va.Bind(); ib.Bind(); if (r > 1.0f) increment = -0.05; From 544880d7b38003d0c39acc2a2a8651e5825a3a14 Mon Sep 17 00:00:00 2001 From: AthulJoseph27 Date: Wed, 27 Jan 2021 00:02:48 +0530 Subject: [PATCH 2/3] Abstracted all --- Blue/src/IndexBuffer.cpp | 4 +- Blue/src/IndexBuffer.h | 4 +- Blue/src/Renderer.cpp | 14 +++- Blue/src/Renderer.h | 14 +++- Blue/src/Shader.cpp | 111 +++++++++++++++++++++++++ Blue/src/Shader.h | 34 ++++++++ Blue/src/VertexArray.h | 2 +- Blue/src/VertexBufferLayout.cpp | 6 +- src/IndexBuffer.h | 4 +- src/Renderer.h | 27 +++++- src/Shader.h | 143 ++++++++++++++++++++++++++++++++ src/VertexArray.h | 4 +- src/a.out | Bin 105244 -> 163672 bytes src/main.cpp | 102 ++++------------------- 14 files changed, 367 insertions(+), 102 deletions(-) create mode 100644 Blue/src/Shader.cpp create mode 100644 Blue/src/Shader.h create mode 100644 src/Shader.h diff --git a/Blue/src/IndexBuffer.cpp b/Blue/src/IndexBuffer.cpp index 8bf79e3..18b95df 100644 --- a/Blue/src/IndexBuffer.cpp +++ b/Blue/src/IndexBuffer.cpp @@ -16,12 +16,12 @@ IndexBuffer::~IndexBuffer() glDeleteBuffers(1, &m_RendererID); } -void IndexBuffer::Bind() +void IndexBuffer::Bind() const { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_RendererID); } -void IndexBuffer::Unbind() +void IndexBuffer::Unbind() const { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); } \ No newline at end of file diff --git a/Blue/src/IndexBuffer.h b/Blue/src/IndexBuffer.h index 4b6babb..1f9834b 100644 --- a/Blue/src/IndexBuffer.h +++ b/Blue/src/IndexBuffer.h @@ -12,8 +12,8 @@ class IndexBuffer IndexBuffer(const unsigned *data, unsigned int count); ~IndexBuffer(); - void Bind(); - void Unbind(); + void Bind() const; + void Unbind() const; inline unsigned int GetCount() const { return m_Count; } }; \ No newline at end of file diff --git a/Blue/src/Renderer.cpp b/Blue/src/Renderer.cpp index 79a3c22..9df5124 100644 --- a/Blue/src/Renderer.cpp +++ b/Blue/src/Renderer.cpp @@ -1 +1,13 @@ -#include "Renderer.h" \ No newline at end of file +#include "Renderer.h" + +void Renderer::Clear() const +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); +} +void Renderer::Draw(const VertexArray &va, const IndexBuffer &ib, const Shader &shader) const +{ + shader.Bind(); + va.Bind(); + ib.Bind(); + glDrawElements(GL_TRIANGLES, ib.GetCount(), GL_UNSIGNED_INT, nullptr); +} \ No newline at end of file diff --git a/Blue/src/Renderer.h b/Blue/src/Renderer.h index 81d52f6..dc551b3 100644 --- a/Blue/src/Renderer.h +++ b/Blue/src/Renderer.h @@ -1,4 +1,16 @@ #pragma once #include "GL/glew.h" -#include "GLFW/glfw3.h" \ No newline at end of file +#include "GLFW/glfw3.h" +#include "VertexArray.h" +#include "IndexBuffer.h" +#include "Shader.h" + +class Renderer +{ + +private: +public: + void Clear() const; + void Draw(const VertexArray &va, const IndexBuffer &ib, const Shader &shader) const; +}; \ No newline at end of file diff --git a/Blue/src/Shader.cpp b/Blue/src/Shader.cpp new file mode 100644 index 0000000..cb64d88 --- /dev/null +++ b/Blue/src/Shader.cpp @@ -0,0 +1,111 @@ +#include "Shader.h" +#include +#include +#include +#include + +Shader::Shader(const std::string &filepath) + : m_FilePath(filepath), m_RendererID(0) +{ + struct ShaderProgramSource shaderSource = ParseShader(filepath); + m_RendererID = CreateShader(shaderSource.VertexSource, shaderSource.FragmentSource); +} + +Shader::~Shader() +{ + glDeleteProgram(m_RendererID); +} + +struct ShaderProgramSource Shader::ParseShader(std::string filePath) +{ + enum class ShaderType + { + NONE = -1, + VERTEX = 0, + FRAGMENT = 1 + }; + std::ifstream stream(filePath); + std::string line; + std::stringstream ss[2]; + ShaderType type = ShaderType::NONE; + + while (getline(stream, line)) + { + if (line.find("#shader") != std::string::npos) + { + if (line.find("vertex") != std::string::npos) + type = ShaderType::VERTEX; + else if (line.find("fragment") != std::string::npos) + type = ShaderType::FRAGMENT; + } + else + ss[(int)type] << line << "\n"; + } + return {ss[0].str(), ss[1].str()}; +} + +unsigned int Shader::CreateShader(const std::string vertexShader, const std::string fragmentShader) +{ + unsigned int program = glCreateProgram(); + + unsigned int vs = CompileShader(GL_VERTEX_SHADER, vertexShader); + unsigned int fs = CompileShader(GL_FRAGMENT_SHADER, fragmentShader); + + glAttachShader(program, fs); + glAttachShader(program, vs); + glLinkProgram(program); + + return program; +} + +unsigned int Shader::CompileShader(unsigned int type, const std::string &source) +{ + unsigned int id = glCreateShader(type); + const char *src = source.c_str(); + glShaderSource(id, 1, &src, NULL); + glCompileShader(id); + + int result; + glGetShaderiv(id, GL_COMPILE_STATUS, &result); + if (result == GL_FALSE) + { + int length; + glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length); + char message[length]; + glGetShaderInfoLog(id, length, &length, message); + std::cout << "Failed to compile " << (type == GL_VERTEX_SHADER ? "vertex" : "fragment") << "shader" << std::endl; + std::cout << message << std::endl; + glDeleteShader(id); + return 0; + } + + return id; +} + +void Shader::Bind() const +{ + glUseProgram(m_RendererID); +} + +void Shader::Unbind() const +{ + glUseProgram(0); +} + +void Shader::SetUniform4f(const std::string &name, float v0, float v1, float v2, float v3) +{ + glUniform4f(GetUniformLocation(name), v0, v1, v2, v3); +} + +int Shader::GetUniformLocation(const std::string &name) +{ + if (m_UniformLocationCache.find(name) != m_UniformLocationCache.end()) + return m_UniformLocationCache[name]; + + int location = glGetUniformLocation(m_RendererID, name.c_str()); + if (location == -1) + std::cout << "Warning: Uniform " << name << " doesn't exist !" << std::endl; + else + m_UniformLocationCache[name] = location; + return location; +} \ No newline at end of file diff --git a/Blue/src/Shader.h b/Blue/src/Shader.h new file mode 100644 index 0000000..a590676 --- /dev/null +++ b/Blue/src/Shader.h @@ -0,0 +1,34 @@ +#pragma once +#include +#include "GL/glew.h" +#include "GLFW/glfw3.h" +#include + +struct ShaderProgramSource +{ + std::string VertexSource; + std::string FragmentSource; +}; + +class Shader +{ +private: + unsigned int m_RendererID; + std::string m_FilePath; + std::unordered_map m_UniformLocationCache; + +public: + Shader(const std::string &filepath); + ~Shader(); + + void Bind() const; + void Unbind() const; + + void SetUniform4f(const std::string &name, float v0, float v1, float v2, float v3); + +private: + unsigned int CompileShader(unsigned int type, const std::string &source); + int GetUniformLocation(const std::string &name); + unsigned int CreateShader(const std::string vertexShader, const std::string fragmentShader); + struct ShaderProgramSource ParseShader(std::string filePath); +}; \ No newline at end of file diff --git a/Blue/src/VertexArray.h b/Blue/src/VertexArray.h index 432250c..cf8ba98 100644 --- a/Blue/src/VertexArray.h +++ b/Blue/src/VertexArray.h @@ -14,5 +14,5 @@ class VertexArray void AddBuffer(const VertexBuffer &vb, const VertexBufferLayout &layout); void Bind() const; - void UnBind() const; + void Unbind() const; }; \ No newline at end of file diff --git a/Blue/src/VertexBufferLayout.cpp b/Blue/src/VertexBufferLayout.cpp index 9e09643..a6f46b9 100644 --- a/Blue/src/VertexBufferLayout.cpp +++ b/Blue/src/VertexBufferLayout.cpp @@ -3,20 +3,20 @@ template <> void VertexBufferLayout::Push(unsigned int count) { - m_Elements.push_back({count, GL_FLOAT, GL_FALSE}); + m_Elements.push_back({GL_FLOAT, count, GL_FALSE}); m_Stride += sizeof(GLfloat) * count; } template <> void VertexBufferLayout::Push(unsigned int count) { - m_Elements.push_back({count, GL_UNSIGNED_INT, GL_FALSE}); + m_Elements.push_back({GL_UNSIGNED_INT, count, GL_FALSE}); m_Stride += sizeof(GLuint) * count; } template <> void VertexBufferLayout::Push(unsigned int count) { - m_Elements.push_back({count, GL_UNSIGNED_BYTE, GL_TRUE}); + m_Elements.push_back({GL_UNSIGNED_BYTE, count, GL_TRUE}); m_Stride += sizeof(GLbyte) * count; } diff --git a/src/IndexBuffer.h b/src/IndexBuffer.h index 24bd70e..5f4a674 100644 --- a/src/IndexBuffer.h +++ b/src/IndexBuffer.h @@ -24,11 +24,11 @@ class IndexBuffer glDeleteBuffers(1, &m_RendererID); } - void Bind() + void Bind() const { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_RendererID); } - void Unbind() + void Unbind() const { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); } diff --git a/src/Renderer.h b/src/Renderer.h index 81d52f6..7ea026d 100644 --- a/src/Renderer.h +++ b/src/Renderer.h @@ -1,4 +1,29 @@ #pragma once #include "GL/glew.h" -#include "GLFW/glfw3.h" \ No newline at end of file +#include "GLFW/glfw3.h" +#include "VertexArray.h" +#include "IndexBuffer.h" +#include "Shader.h" + +class Renderer +{ + +private: +public: + void Clear() const; + void Draw(const VertexArray &va, const IndexBuffer &ib, const Shader &shader) const; +}; + +void Renderer::Draw(const VertexArray &va, const IndexBuffer &ib, const Shader &shader) const +{ + shader.Bind(); + va.Bind(); + ib.Bind(); + glDrawElements(GL_TRIANGLES, ib.GetCount(), GL_UNSIGNED_INT, nullptr); +} + +void Renderer::Clear() const +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); +} \ No newline at end of file diff --git a/src/Shader.h b/src/Shader.h new file mode 100644 index 0000000..8999d18 --- /dev/null +++ b/src/Shader.h @@ -0,0 +1,143 @@ +#pragma once +#include +#include +#include +#include +#include +#include + +#include "GL/glew.h" +#include "GLFW/glfw3.h" +struct ShaderProgramSource +{ + std::string VertexSource; + std::string FragmentSource; +}; + +class Shader +{ +private: + unsigned int m_RendererID; + std::string m_FilePath; + std::unordered_map m_UniformLocationCache; + +public: + Shader(const std::string &filepath); + ~Shader(); + + void Bind() const; + void Unbind() const; + + void SetUniform4f(const std::string &name, float v0, float v1, float v2, float v3); + +private: + unsigned int CompileShader(unsigned int type, const std::string &source); + int GetUniformLocation(const std::string &name); + unsigned int CreateShader(const std::string vertexShader, const std::string fragmentShader); + struct ShaderProgramSource ParseShader(std::string filePath); +}; + +Shader::Shader(const std::string &filepath) + : m_FilePath(filepath), m_RendererID(0) +{ + struct ShaderProgramSource shaderSource = ParseShader(filepath); + m_RendererID = CreateShader(shaderSource.VertexSource, shaderSource.FragmentSource); +} + +Shader::~Shader() +{ + glDeleteProgram(m_RendererID); +} + +struct ShaderProgramSource Shader::ParseShader(std::string filePath) +{ + enum class ShaderType + { + NONE = -1, + VERTEX = 0, + FRAGMENT = 1 + }; + std::ifstream stream(filePath); + std::string line; + std::stringstream ss[2]; + ShaderType type = ShaderType::NONE; + + while (getline(stream, line)) + { + if (line.find("#shader") != std::string::npos) + { + if (line.find("vertex") != std::string::npos) + type = ShaderType::VERTEX; + else if (line.find("fragment") != std::string::npos) + type = ShaderType::FRAGMENT; + } + else + ss[(int)type] << line << "\n"; + } + return {ss[0].str(), ss[1].str()}; +} + +unsigned int Shader::CreateShader(const std::string vertexShader, const std::string fragmentShader) +{ + unsigned int program = glCreateProgram(); + + unsigned int vs = CompileShader(GL_VERTEX_SHADER, vertexShader); + unsigned int fs = CompileShader(GL_FRAGMENT_SHADER, fragmentShader); + + glAttachShader(program, fs); + glAttachShader(program, vs); + glLinkProgram(program); + + return program; +} + +unsigned int Shader::CompileShader(unsigned int type, const std::string &source) +{ + unsigned int id = glCreateShader(type); + const char *src = source.c_str(); + glShaderSource(id, 1, &src, NULL); + glCompileShader(id); + + int result; + glGetShaderiv(id, GL_COMPILE_STATUS, &result); + if (result == GL_FALSE) + { + int length; + glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length); + char message[length]; + glGetShaderInfoLog(id, length, &length, message); + std::cout << "Failed to compile " << (type == GL_VERTEX_SHADER ? "vertex" : "fragment") << "shader" << std::endl; + std::cout << message << std::endl; + glDeleteShader(id); + return 0; + } + + return id; +} + +void Shader::Bind() const +{ + glUseProgram(m_RendererID); +} + +void Shader::Unbind() const +{ + glUseProgram(0); +} + +void Shader::SetUniform4f(const std::string &name, float v0, float v1, float v2, float v3) +{ + glUniform4f(GetUniformLocation(name), v0, v1, v2, v3); +} + +int Shader::GetUniformLocation(const std::string &name) +{ + if (m_UniformLocationCache.find(name) != m_UniformLocationCache.end()) + return m_UniformLocationCache[name]; + int location = glGetUniformLocation(m_RendererID, name.c_str()); + if (location == -1) + std::cout << "Warning: Uniform " << name << " doesn't exist !" << std::endl; + else + m_UniformLocationCache[name] = location; + return location; +} \ No newline at end of file diff --git a/src/VertexArray.h b/src/VertexArray.h index 2de27c1..de1b419 100644 --- a/src/VertexArray.h +++ b/src/VertexArray.h @@ -14,7 +14,7 @@ class VertexArray void AddBuffer(const VertexBuffer &vb, const VertexBufferLayout &layout); void Bind() const; - void UnBind() const; + void Unbind() const; }; VertexArray::VertexArray() @@ -33,7 +33,7 @@ void VertexArray::Bind() const glBindVertexArray(m_RenedererID); } -void VertexArray::UnBind() const +void VertexArray::Unbind() const { glBindVertexArray(0); } diff --git a/src/a.out b/src/a.out index 1c5b352ed9bdea974ce582b5cce9061f42de37d9..2193bb2e5ab9f647fb2bf61935aa572ad8e68557 100755 GIT binary patch literal 163672 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 delta 29738 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 I 1.0f) increment = -0.05; else if (r < 0.0f) @@ -180,8 +110,6 @@ int main() r += increment; - // draw points 0-3 from the currently bound VAO with current in-use shader - glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, nullptr); // update other events like input handling glfwPollEvents(); // put the stuff we've been drawing onto the display From af2463c4fb92a6ecddbce82f409febdd035f57b0 Mon Sep 17 00:00:00 2001 From: AthulJoseph27 Date: Wed, 27 Jan 2021 01:25:48 +0530 Subject: [PATCH 3/3] Abstracted Texture --- Blue/src/Shader.cpp | 10 + Blue/src/Shader.h | 2 + Blue/src/Texture.cpp | 36 + Blue/src/Texture.h | 21 + Blue/src/stb_image.cpp | 2 + Blue/src/stb_image.h | 9095 +++++++++++++++++++++++++++++++++++++++ res/textures/sample.jpg | Bin 0 -> 1226836 bytes src/Basic.shader | 19 +- src/Shader.h | 12 + src/Texture.h | 57 + src/a.out | Bin 163672 -> 303324 bytes src/main.cpp | 26 +- src/stb_image.h | 7762 +++++++++++++++++++++++++++++++++ 13 files changed, 17029 insertions(+), 13 deletions(-) create mode 100644 Blue/src/Texture.cpp create mode 100644 Blue/src/Texture.h create mode 100644 Blue/src/stb_image.cpp create mode 100644 Blue/src/stb_image.h create mode 100644 res/textures/sample.jpg create mode 100644 src/Texture.h create mode 100644 src/stb_image.h diff --git a/Blue/src/Shader.cpp b/Blue/src/Shader.cpp index cb64d88..c1a854c 100644 --- a/Blue/src/Shader.cpp +++ b/Blue/src/Shader.cpp @@ -108,4 +108,14 @@ int Shader::GetUniformLocation(const std::string &name) else m_UniformLocationCache[name] = location; return location; +} + +void Shader::SetUniform1i(const std::string &name, int value) +{ + glUniform1i(GetUniformLocation(name), value); +} + +void Shader::SetUniform1f(const std::string &name, float value) +{ + glUniform1f(GetUniformLocation(name), value); } \ No newline at end of file diff --git a/Blue/src/Shader.h b/Blue/src/Shader.h index a590676..8e56c3e 100644 --- a/Blue/src/Shader.h +++ b/Blue/src/Shader.h @@ -24,6 +24,8 @@ class Shader void Bind() const; void Unbind() const; + void SetUniform1i(const std::string &name, int value); + void SetUniform1f(const std::string &name, float value); void SetUniform4f(const std::string &name, float v0, float v1, float v2, float v3); private: diff --git a/Blue/src/Texture.cpp b/Blue/src/Texture.cpp new file mode 100644 index 0000000..6a20058 --- /dev/null +++ b/Blue/src/Texture.cpp @@ -0,0 +1,36 @@ +#include "Texture.h" +#include "GL/glew.h" +#include "GLFW/glfw3.h" +#include "stb_image.h" + +Texture::Texture(const std::string &filePath) + : m_RendererID(0), m_FilePath(filePath), m_LocalBuffer(nullptr), m_Width(0), m_Height(0), m_BPP(0) +{ + stbi_set_flip_vertically_on_load(1); + m_LocalBuffer = stbi_load(filePath.c_str(), &m_Width, &m_Height, &m_BPP, 4); + glGenTextures(1, &m_RendererID); + glBindTexture(GL_TEXTURE_2D, m_RendererID); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, m_Width, m_Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_LocalBuffer); + glBindTexture(GL_TEXTURE_2D, 0); + if (m_LocalBuffer) + stbi_image_free(m_LocalBuffer); +} + +Texture::~Texture() +{ + glDeleteTextures(1, &m_RendererID); +} +void Texture::Bind(unsigned int slot) const +{ + glActiveTexture(GL_TEXTURE0 + slot); + glBindTexture(GL_TEXTURE_2D, m_RendererID); +} + +void Texture::Unbind() const +{ + glBindTexture(GL_TEXTURE_2D, 0); +} \ No newline at end of file diff --git a/Blue/src/Texture.h b/Blue/src/Texture.h new file mode 100644 index 0000000..42fa5b8 --- /dev/null +++ b/Blue/src/Texture.h @@ -0,0 +1,21 @@ +#pragma once +#include + +class Texture +{ +private: + unsigned int m_RendererID; + std::string m_FilePath; + unsigned char *m_LocalBuffer; + int m_Width, m_Height, m_BPP; + +public: + Texture(const std::string &filePath); + ~Texture(); + + void Bind(unsigned int slot = 0) const; + void Unbind() const; + + inline int GetWidth() const { return m_Width; } + inline int GetHeight() const { return m_Height; } +}; diff --git a/Blue/src/stb_image.cpp b/Blue/src/stb_image.cpp new file mode 100644 index 0000000..badb3ef --- /dev/null +++ b/Blue/src/stb_image.cpp @@ -0,0 +1,2 @@ +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" \ No newline at end of file diff --git a/Blue/src/stb_image.h b/Blue/src/stb_image.h new file mode 100644 index 0000000..3dfd8da --- /dev/null +++ b/Blue/src/stb_image.h @@ -0,0 +1,9095 @@ +/* stb_image - v2.26 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko [reserved] + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data) +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// By default we convert iphone-formatted PNGs back to RGB, even though +// they are internally encoded differently. You can disable this conversion +// by calling stbi_convert_iphone_png_to_rgb(0), in which case +// you will always just get the native iphone "format" through (which +// is BGR stored in RGB). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + + ////////////////////////////////////////////////////////////////////////////// + // + // PRIMARY API - works on images of any type + // + + // + // load image by filename, open file, or memory buffer + // + + typedef struct + { + int (*read)(void *user, char *data, int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip)(void *user, int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof)(void *user); // returns nonzero if we are at end of file/data + } stbi_io_callbacks; + + //////////////////////////////////// + // + // 8-bits-per-channel interface + // + + STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO + STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF + STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 + STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t *input); +#endif + + //////////////////////////////////// + // + // 16-bits-per-channel interface + // + + STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO + STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + + // stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR + STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); + STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO + STBIDEF int stbi_is_hdr(char const *filename); + STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + // get a VERY brief reason for failure + // on most compilers (and ALL modern mainstream compilers) this is threadsafe + STBIDEF const char *stbi_failure_reason(void); + + // free the loaded image -- this is just free() + STBIDEF void stbi_image_free(void *retval_from_stbi_load); + + // get image dimensions & components without fully decoding + STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); + STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); + STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); + STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO + STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp); + STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp); + STBIDEF int stbi_is_16_bit(char const *filename); + STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + // for image formats that explicitly notate that they have premultiplied alpha, + // we just return the colors as stored in the file. set this flag to force + // unpremultiplication. results are undefined if the unpremultiply overflow. + STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + + // indicate whether we should process iphone images back to canonical format, + // or just pass them through "as-is" + STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + + // flip the image vertically, so the first pixel in the output array is the bottom left + STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + + // as above, but only applies to images loaded on the thread that calls the function + // this function is only available if your compiler supports thread-local variables; + // calling it will fail to link if your compiler doesn't + STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + + // ZLIB client - used by PNG, available for other purposes + + STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); + STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); + STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); + STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); + STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) || defined(STBI_ONLY_ZLIB) +#ifndef STBI_ONLY_JPEG +#define STBI_NO_JPEG +#endif +#ifndef STBI_ONLY_PNG +#define STBI_NO_PNG +#endif +#ifndef STBI_ONLY_BMP +#define STBI_NO_BMP +#endif +#ifndef STBI_ONLY_PSD +#define STBI_NO_PSD +#endif +#ifndef STBI_ONLY_TGA +#define STBI_NO_TGA +#endif +#ifndef STBI_ONLY_GIF +#define STBI_NO_GIF +#endif +#ifndef STBI_ONLY_HDR +#define STBI_NO_HDR +#endif +#ifndef STBI_ONLY_PIC +#define STBI_NO_PIC +#endif +#ifndef STBI_ONLY_PNM +#define STBI_NO_PNM +#endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + +#ifndef _MSC_VER +#ifdef __cplusplus +#define stbi_inline inline +#else +#define stbi_inline +#endif +#else +#define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS +#if defined(__cplusplus) && __cplusplus >= 201103L +#define STBI_THREAD_LOCAL thread_local +#elif defined(__GNUC__) && __GNUC__ < 5 +#define STBI_THREAD_LOCAL __thread +#elif defined(_MSC_VER) +#define STBI_THREAD_LOCAL __declspec(thread) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) +#define STBI_THREAD_LOCAL _Thread_local +#endif + +#ifndef STBI_THREAD_LOCAL +#if defined(__GNUC__) +#define STBI_THREAD_LOCAL __thread +#endif +#endif +#endif + +#ifdef _MSC_VER +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32) == 4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL +#define stbi_lrot(x, y) _lrotl(x, y) +#else +#define stbi_lrot(x, y) (((x) << (y)) | ((x) >> (32 - (y)))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p, newsz) realloc(p, newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p, oldsz, newsz) STBI_REALLOC(p, newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info, 1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +// assume GCC or Clang on ARM targets +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *)buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *)buffer + len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int)fread(data, 1, size, (FILE *)user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE *)user, n, SEEK_CUR); + ch = fgetc((FILE *)user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) + { + ungetc(ch, (FILE *)user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE *)user) || ferror((FILE *)user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = + { + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *)f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +static +#ifdef STBI_THREAD_LOCAL + STBI_THREAD_LOCAL +#endif + const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) + return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) + return 0; + if (b == 0) + return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX / b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a * b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) && + stbi__addsizes_valid(a * b * c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a * b, c) && + stbi__mul2sizes_valid(a * b * c, d) && stbi__addsizes_valid(a * b * c * d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) + return NULL; + return stbi__malloc(a * b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) + return NULL; + return stbi__malloc(a * b * c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) + return NULL; + return stbi__malloc(a * b * c * d + add); +} +#endif + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS +#define stbi__err(x, y) 0 +#elif defined(STBI_FAILURE_USERMSG) +#define stbi__err(x, y) stbi__err(y) +#else +#define stbi__err(x, y) stbi__err(x) +#endif + +#define stbi__errpf(x, y) ((float *)(size_t)(stbi__err(x, y) ? NULL : NULL)) +#define stbi__errpuc(x, y) ((unsigned char *)(size_t)(stbi__err(x, y) ? NULL : NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + +#ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) + return stbi__jpeg_load(s, x, y, comp, req_comp, ri); +#endif +#ifndef STBI_NO_PNG + if (stbi__png_test(s)) + return stbi__png_load(s, x, y, comp, req_comp, ri); +#endif +#ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) + return stbi__bmp_load(s, x, y, comp, req_comp, ri); +#endif +#ifndef STBI_NO_GIF + if (stbi__gif_test(s)) + return stbi__gif_load(s, x, y, comp, req_comp, ri); +#endif +#ifndef STBI_NO_PSD + if (stbi__psd_test(s)) + return stbi__psd_load(s, x, y, comp, req_comp, ri, bpc); +#else + STBI_NOTUSED(bpc); +#endif +#ifndef STBI_NO_PIC + if (stbi__pic_test(s)) + return stbi__pic_load(s, x, y, comp, req_comp, ri); +#endif +#ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) + return stbi__pnm_load(s, x, y, comp, req_comp, ri); +#endif + +#ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) + { + float *hdr = stbi__hdr_load(s, x, y, comp, req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } +#endif + +#ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s, x, y, comp, req_comp, ri); +#endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *)stbi__malloc(img_len); + if (reduced == NULL) + return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *)stbi__malloc(img_len * 2); + if (enlarged == NULL) + return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h >> 1); row++) + { + stbi_uc *row0 = bytes + row * bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1) * bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) + { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) + { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) + { + result = stbi__convert_16_to_8((stbi__uint16 *)result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) + { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *)result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) + { + result = stbi__convert_8_to_16((stbi_uc *)result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) + { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *)result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) + { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t *input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int)bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename))) + return 0; + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode))) + return 0; + +#if _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)) + f = 0; +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f = 0; +#else + f = fopen(filename, mode); +#endif + return f; +} + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) + return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f, x, y, comp, req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s, f); + result = stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); + if (result) + { + // need to 'unget' all the characters in the IO buffer + fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s, f); + result = stbi__load_and_postprocess_16bit(&s, x, y, comp, req_comp); + if (result) + { + // need to 'unget' all the characters in the IO buffer + fseek(f, -(int)(s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) + return (stbi_us *)stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f, x, y, comp, req_comp); + fclose(f); + return result; +} + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s, buffer, len); + return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s, x, y, channels_in_file, desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s, buffer, len); + return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_8bit(&s, x, y, comp, req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s, buffer, len); + + result = (unsigned char *)stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) + { + stbi__vertical_flip_slices(result, *x, *y, *z, *comp); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; +#ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) + { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s, x, y, comp, req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data, x, y, comp, req_comp); + return hdr_data; + } +#endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s, buffer, len); + return stbi__loadf_main(&s, x, y, comp, req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__loadf_main(&s, x, y, comp, req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) + return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f, x, y, comp, req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s, f); + return stbi__loadf_main(&s, x, y, comp, req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ +#ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s, buffer, len); + return stbi__hdr_test(&s); +#else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; +#endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result = 0; + if (f) + { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ +#ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s, f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; +#else + STBI_NOTUSED(f); + return 0; +#endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ +#ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__hdr_test(&s); +#else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; +#endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma = 2.2f, stbi__l2h_scale = 1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i = 1.0f / 2.2f, stbi__h2l_scale_i = 1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1 / gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1 / scale; } + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load = 0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data, (char *)s->buffer_start, s->buflen); + s->callback_already_read += (int)(s->img_buffer - s->img_buffer_original); + if (n == 0) + { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + 1; + *s->img_buffer = 0; + } + else + { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) + { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) + { + if (!(s->io.eof)(s->io_user_data)) + return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) + return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0) + return; // already there! + if (n < 0) + { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) + { + int blen = (int)(s->img_buffer_end - s->img_buffer); + if (blen < n) + { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) + { + int blen = (int)(s->img_buffer_end - s->img_buffer); + if (blen < n) + { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char *)buffer + blen, n - blen); + res = (count == (n - blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer + n <= s->img_buffer_end) + { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } + else + return 0; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + return z + (stbi__get16le(s) << 16); +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc)((x)&255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc)(((r * 77) + (g * 150) + (29 * b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i, j; + unsigned char *good; + + if (req_comp == img_n) + return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *)stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) + { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j = 0; j < (int)y; ++j) + { + unsigned char *src = data + j * x * img_n; + unsigned char *dest = good + j * x * req_comp; + +#define STBI__COMBO(a, b) ((a)*8 + (b)) +#define STBI__CASE(a, b) \ + case STBI__COMBO(a, b): \ + for (i = x - 1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) + { + STBI__CASE(1, 2) + { + dest[0] = src[0]; + dest[1] = 255; + } + break; + STBI__CASE(1, 3) { dest[0] = dest[1] = dest[2] = src[0]; } + break; + STBI__CASE(1, 4) + { + dest[0] = dest[1] = dest[2] = src[0]; + dest[3] = 255; + } + break; + STBI__CASE(2, 1) { dest[0] = src[0]; } + break; + STBI__CASE(2, 3) { dest[0] = dest[1] = dest[2] = src[0]; } + break; + STBI__CASE(2, 4) + { + dest[0] = dest[1] = dest[2] = src[0]; + dest[3] = src[1]; + } + break; + STBI__CASE(3, 4) + { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = 255; + } + break; + STBI__CASE(3, 1) { dest[0] = stbi__compute_y(src[0], src[1], src[2]); } + break; + STBI__CASE(3, 2) + { + dest[0] = stbi__compute_y(src[0], src[1], src[2]); + dest[1] = 255; + } + break; + STBI__CASE(4, 1) { dest[0] = stbi__compute_y(src[0], src[1], src[2]); } + break; + STBI__CASE(4, 2) + { + dest[0] = stbi__compute_y(src[0], src[1], src[2]); + dest[1] = src[3]; + } + break; + STBI__CASE(4, 3) + { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + } + break; + default: + STBI_ASSERT(0); + STBI_FREE(data); + STBI_FREE(good); + return stbi__errpuc("unsupported", "Unsupported format conversion"); + } +#undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16)(((r * 77) + (g * 150) + (29 * b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i, j; + stbi__uint16 *good; + + if (req_comp == img_n) + return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *)stbi__malloc(req_comp * x * y * 2); + if (good == NULL) + { + STBI_FREE(data); + return (stbi__uint16 *)stbi__errpuc("outofmem", "Out of memory"); + } + + for (j = 0; j < (int)y; ++j) + { + stbi__uint16 *src = data + j * x * img_n; + stbi__uint16 *dest = good + j * x * req_comp; + +#define STBI__COMBO(a, b) ((a)*8 + (b)) +#define STBI__CASE(a, b) \ + case STBI__COMBO(a, b): \ + for (i = x - 1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) + { + STBI__CASE(1, 2) + { + dest[0] = src[0]; + dest[1] = 0xffff; + } + break; + STBI__CASE(1, 3) { dest[0] = dest[1] = dest[2] = src[0]; } + break; + STBI__CASE(1, 4) + { + dest[0] = dest[1] = dest[2] = src[0]; + dest[3] = 0xffff; + } + break; + STBI__CASE(2, 1) { dest[0] = src[0]; } + break; + STBI__CASE(2, 3) { dest[0] = dest[1] = dest[2] = src[0]; } + break; + STBI__CASE(2, 4) + { + dest[0] = dest[1] = dest[2] = src[0]; + dest[3] = src[1]; + } + break; + STBI__CASE(3, 4) + { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = 0xffff; + } + break; + STBI__CASE(3, 1) { dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); } + break; + STBI__CASE(3, 2) + { + dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); + dest[1] = 0xffff; + } + break; + STBI__CASE(4, 1) { dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); } + break; + STBI__CASE(4, 2) + { + dest[0] = stbi__compute_y_16(src[0], src[1], src[2]); + dest[1] = src[3]; + } + break; + STBI__CASE(4, 3) + { + dest[0] = src[0]; + dest[1] = src[1]; + dest[2] = src[2]; + } + break; + default: + STBI_ASSERT(0); + STBI_FREE(data); + STBI_FREE(good); + return (stbi__uint16 *)stbi__errpuc("unsupported", "Unsupported format conversion"); + } +#undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i, k, n; + float *output; + if (!data) + return NULL; + output = (float *)stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) + { + STBI_FREE(data); + return stbi__errpf("outofmem", "Out of memory"); + } + // compute number of non-alpha components + if (comp & 1) + n = comp; + else + n = comp - 1; + for (i = 0; i < x * y; ++i) + { + for (k = 0; k < n; ++k) + { + output[i * comp + k] = (float)(pow(data[i * comp + k] / 255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) + { + for (i = 0; i < x * y; ++i) + { + output[i * comp + n] = data[i * comp + n] / 255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int)(x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i, k, n; + stbi_uc *output; + if (!data) + return NULL; + output = (stbi_uc *)stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) + { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + // compute number of non-alpha components + if (comp & 1) + n = comp; + else + n = comp - 1; + for (i = 0; i < x * y; ++i) + { + for (k = 0; k < n; ++k) + { + float z = (float)pow(data[i * comp + k] * stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) + z = 0; + if (z > 255) + z = 255; + output[i * comp + k] = (stbi_uc)stbi__float2int(z); + } + if (k < comp) + { + float z = data[i * comp + k] * 255 + 0.5f; + if (z < 0) + z = 0; + if (z > 255) + z = 255; + output[i * comp + k] = (stbi_uc)stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + + // sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + + // definition of jpeg image component + struct + { + int id; + int h, v; + int tq; + int hd, ha; + int dc_pred; + + int x, y, w2, h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + + // kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i, j, k = 0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i = 0; i < 16; ++i) + for (j = 0; j < count[i]; ++j) + h->size[k++] = (stbi_uc)(i + 1); + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for (j = 1; j <= 16; ++j) + { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) + { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16)(code++); + if (code - 1 >= (1u << j)) + return stbi__err("bad code lengths", "Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16 - j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i = 0; i < k; ++i) + { + int s = h->size[i]; + if (s <= FAST_BITS) + { + int c = h->code[i] << (FAST_BITS - s); + int m = 1 << (FAST_BITS - s); + for (j = 0; j < m; ++j) + { + h->fast[c + j] = (stbi_uc)i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i = 0; i < (1 << FAST_BITS); ++i) + { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) + { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) + { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) + k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16)((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do + { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) + { + int c = stbi__get8(j->s); + while (c == 0xff) + c = stbi__get8(j->s); // consume fill bytes + if (c != 0) + { + j->marker = (unsigned char)c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17] = {0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c, k; + + if (j->code_bits < 16) + stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); + k = h->fast[c]; + if (k < 255) + { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k = FAST_BITS + 1;; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) + { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) + stbi__grow_buffer_unsafe(j); + + sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB + k = stbi_lrot(j->code_buffer, n); + if (n < 0 || n >= (int)(sizeof(stbi__bmask) / sizeof(*stbi__bmask))) + return 0; + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & ~sgn); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) + stbi__grow_buffer_unsafe(j); + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) + stbi__grow_buffer_unsafe(j); + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64 + 15] = + { + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff, dc, k; + int t; + + if (j->code_bits < 16) + stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0) + return stbi__err("bad huffman code", "Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data, 0, 64 * sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short)(dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do + { + unsigned int zig; + int c, r, s; + if (j->code_bits < 16) + stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); + r = fac[c]; + if (r) + { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short)((r >> 8) * dequant[zig]); + } + else + { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) + return stbi__err("bad huffman code", "Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) + { + if (rs != 0xf0) + break; // end block + k += 16; + } + else + { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short)(stbi__extend_receive(j, s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff, dc; + int t; + if (j->spec_end != 0) + return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) + stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) + { + // first scan for DC coefficient, must be first + memset(data, 0, 64 * sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t == -1) + return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + diff = t ? stbi__extend_receive(j, t) : 0; + + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short)(dc << j->succ_low); + } + else + { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short)(1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) + return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) + { + int shift = j->succ_low; + + if (j->eob_run) + { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do + { + unsigned int zig; + int c, r, s; + if (j->code_bits < 16) + stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS) - 1); + r = fac[c]; + if (r) + { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short)((r >> 8) << shift); + } + else + { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) + return stbi__err("bad huffman code", "Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) + { + if (r < 15) + { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } + else + { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short)(stbi__extend_receive(j, s) << shift); + } + } + } while (k <= j->spec_end); + } + else + { + // refinement scan for these AC coefficients + + short bit = (short)(1 << j->succ_low); + + if (j->eob_run) + { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) + { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit) == 0) + { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } + else + { + k = j->spec_start; + do + { + int r, s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) + return stbi__err("bad huffman code", "Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) + { + if (r < 15) + { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } + else + { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } + else + { + if (s != 1) + return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) + { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) + { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit) == 0) + { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + else + { + if (r == 0) + { + *p = (short)s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int)x > 255) + { + if (x < 0) + return 0; + if (x > 255) + return 255; + } + return (stbi_uc)x; +} + +#define stbi__f2f(x) ((int)(((x)*4096 + 0.5))) +#define stbi__fsh(x) ((x)*4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0, s1, s2, s3, s4, s5, s6, s7) \ + int t0, t1, t2, t3, p1, p2, p3, p4, p5, x0, x1, x2, x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2 + p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3 * stbi__f2f(-1.847759065f); \ + t3 = p1 + p2 * stbi__f2f(0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2 + p3); \ + t1 = stbi__fsh(p2 - p3); \ + x0 = t0 + t3; \ + x3 = t0 - t3; \ + x1 = t1 + t2; \ + x2 = t1 - t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0 + t2; \ + p4 = t1 + t3; \ + p1 = t0 + t3; \ + p2 = t1 + t2; \ + p5 = (p3 + p4) * stbi__f2f(1.175875602f); \ + t0 = t0 * stbi__f2f(0.298631336f); \ + t1 = t1 * stbi__f2f(2.053119869f); \ + t2 = t2 * stbi__f2f(3.072711026f); \ + t3 = t3 * stbi__f2f(1.501321110f); \ + p1 = p5 + p1 * stbi__f2f(-0.899976223f); \ + p2 = p5 + p2 * stbi__f2f(-2.562915447f); \ + p3 = p3 * stbi__f2f(-1.961570560f); \ + p4 = p4 * stbi__f2f(-0.390180644f); \ + t3 += p1 + p4; \ + t2 += p2 + p3; \ + t1 += p2 + p4; \ + t0 += p1 + p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i, val[64], *v = val; + stbi_uc *o; + short *d = data; + + // columns + for (i = 0; i < 8; ++i, ++d, ++v) + { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[8] == 0 && d[16] == 0 && d[24] == 0 && d[32] == 0 && d[40] == 0 && d[48] == 0 && d[56] == 0) + { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0] * 4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } + else + { + STBI__IDCT_1D(d[0], d[8], d[16], d[24], d[32], d[40], d[48], d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; + x1 += 512; + x2 += 512; + x3 += 512; + v[0] = (x0 + t3) >> 10; + v[56] = (x0 - t3) >> 10; + v[8] = (x1 + t2) >> 10; + v[48] = (x1 - t2) >> 10; + v[16] = (x2 + t1) >> 10; + v[40] = (x2 - t1) >> 10; + v[24] = (x3 + t0) >> 10; + v[32] = (x3 - t0) >> 10; + } + } + + for (i = 0, v = val, o = out; i < 8; ++i, v += 8, o += out_stride) + { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128 << 17); + x1 += 65536 + (128 << 17); + x2 += 65536 + (128 << 17); + x3 += 65536 + (128 << 17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0 + t3) >> 17); + o[7] = stbi__clamp((x0 - t3) >> 17); + o[1] = stbi__clamp((x1 + t2) >> 17); + o[6] = stbi__clamp((x1 - t2) >> 17); + o[2] = stbi__clamp((x2 + t1) >> 17); + o[5] = stbi__clamp((x2 - t1) >> 17); + o[3] = stbi__clamp((x3 + t0) >> 17); + o[4] = stbi__clamp((x3 - t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + +// dot product constant: even elems=x, odd elems=y +#define dct_const(x, y) _mm_setr_epi16((x), (y), (x), (y), (x), (y), (x), (y)) + +// out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) +// out(1) = c1[even]*x + c1[odd]*y +#define dct_rot(out0, out1, x, y, c0, c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x), (y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x), (y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + +// out = in << 12 (in 16-bit, out 32-bit) +#define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + +// wide add +#define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + +// butterfly a/b, add bias, then shift by "s" and pack +#define dct_bfly32o(out0, out1, a, b, bias, s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + +// 8-bit interleave step (for transposes) +#define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + +// 16-bit interleave step (for transposes) +#define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + +#define dct_pass(bias, shift) \ + { \ + /* even part */ \ + dct_rot(t2e, t3e, row2, row6, rot0_0, rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o, y2o, row7, row3, rot2_0, rot2_1); \ + dct_rot(y1o, y3o, row5, row1, rot3_0, rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o, y5o, sum17, sum35, rot1_0, rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0, row7, x0, x7, bias, shift); \ + dct_bfly32o(row1, row6, x1, x6, bias, shift); \ + dct_bfly32o(row2, row5, x2, x5, bias, shift); \ + dct_bfly32o(row3, row4, x3, x4, bias, shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f(0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f(0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f(3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f(2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f(1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128 << 17)); + + // load + row0 = _mm_load_si128((const __m128i *)(data + 0 * 8)); + row1 = _mm_load_si128((const __m128i *)(data + 1 * 8)); + row2 = _mm_load_si128((const __m128i *)(data + 2 * 8)); + row3 = _mm_load_si128((const __m128i *)(data + 3 * 8)); + row4 = _mm_load_si128((const __m128i *)(data + 4 * 8)); + row5 = _mm_load_si128((const __m128i *)(data + 5 * 8)); + row6 = _mm_load_si128((const __m128i *)(data + 6 * 8)); + row7 = _mm_load_si128((const __m128i *)(data + 7 * 8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *)out, p0); + out += out_stride; + _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p0, 0x4e)); + out += out_stride; + _mm_storel_epi64((__m128i *)out, p2); + out += out_stride; + _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p2, 0x4e)); + out += out_stride; + _mm_storel_epi64((__m128i *)out, p1); + out += out_stride; + _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p1, 0x4e)); + out += out_stride; + _mm_storel_epi64((__m128i *)out, p3); + out += out_stride; + _mm_storel_epi64((__m128i *)out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f(0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f(1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f(0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f(2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f(3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f(1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0, out1, a, b, shiftop, s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0, row7, x0, x7, shiftop, shift); \ + dct_bfly32o(row1, row6, x1, x6, shiftop, shift); \ + dct_bfly32o(row2, row5, x2, x5, shiftop, shift); \ + dct_bfly32o(row3, row4, x3, x4, shiftop, shift); \ + } + + // load + row0 = vld1q_s16(data + 0 * 8); + row1 = vld1q_s16(data + 1 * 8); + row2 = vld1q_s16(data + 2 * 8); + row3 = vld1q_s16(data + 3 * 8); + row4 = vld1q_s16(data + 4 * 8); + row5 = vld1q_s16(data + 5 * 8); + row6 = vld1q_s16(data + 6 * 8); + row7 = vld1q_s16(data + 7 * 8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) \ + { \ + int16x8x2_t t = vtrnq_s16(x, y); \ + x = t.val[0]; \ + y = t.val[1]; \ + } +#define dct_trn32(x, y) \ + { \ + int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); \ + x = vreinterpretq_s16_s32(t.val[0]); \ + y = vreinterpretq_s16_s32(t.val[1]); \ + } +#define dct_trn64(x, y) \ + { \ + int16x8_t x0 = x; \ + int16x8_t y0 = y; \ + x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); \ + y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); \ + } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) \ + { \ + uint8x8x2_t t = vtrn_u8(x, y); \ + x = t.val[0]; \ + y = t.val[1]; \ + } +#define dct_trn8_16(x, y) \ + { \ + uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); \ + x = vreinterpret_u8_u16(t.val[0]); \ + y = vreinterpret_u8_u16(t.val[1]); \ + } +#define dct_trn8_32(x, y) \ + { \ + uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); \ + x = vreinterpret_u8_u32(t.val[0]); \ + y = vreinterpret_u8_u32(t.val[1]); \ + } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); + out += out_stride; + vst1_u8(out, p1); + out += out_stride; + vst1_u8(out, p2); + out += out_stride; + vst1_u8(out, p3); + out += out_stride; + vst1_u8(out, p4); + out += out_stride; + vst1_u8(out, p5); + out += out_stride; + vst1_u8(out, p6); + out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) + { + x = j->marker; + j->marker = STBI__MARKER_none; + return x; + } + x = stbi__get8(j->s); + if (x != 0xff) + return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) + { + if (z->scan_n == 1) + { + int i, j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x + 7) >> 3; + int h = (z->img_comp[n].y + 7) >> 3; + for (j = 0; j < h; ++j) + { + for (i = 0; i < w; ++i) + { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc + z->img_comp[n].hd, z->huff_ac + ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) + return 0; + z->idct_block_kernel(z->img_comp[n].data + z->img_comp[n].w2 * j * 8 + i * 8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) + { + if (z->code_bits < 24) + stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) + return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + else + { // interleaved + int i, j, k, x, y; + STBI_SIMD_ALIGN(short, data[64]); + for (j = 0; j < z->img_mcu_y; ++j) + { + for (i = 0; i < z->img_mcu_x; ++i) + { + // scan an interleaved mcu... process scan_n components in order + for (k = 0; k < z->scan_n; ++k) + { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y = 0; y < z->img_comp[n].v; ++y) + { + for (x = 0; x < z->img_comp[n].h; ++x) + { + int x2 = (i * z->img_comp[n].h + x) * 8; + int y2 = (j * z->img_comp[n].v + y) * 8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc + z->img_comp[n].hd, z->huff_ac + ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) + return 0; + z->idct_block_kernel(z->img_comp[n].data + z->img_comp[n].w2 * y2 + x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) + { + if (z->code_bits < 24) + stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) + return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } + else + { + if (z->scan_n == 1) + { + int i, j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x + 7) >> 3; + int h = (z->img_comp[n].y + 7) >> 3; + for (j = 0; j < h; ++j) + { + for (i = 0; i < w; ++i) + { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) + { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + else + { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) + { + if (z->code_bits < 24) + stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) + return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + else + { // interleaved + int i, j, k, x, y; + for (j = 0; j < z->img_mcu_y; ++j) + { + for (i = 0; i < z->img_mcu_x; ++i) + { + // scan an interleaved mcu... process scan_n components in order + for (k = 0; k < z->scan_n; ++k) + { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y = 0; y < z->img_comp[n].v; ++y) + { + for (x = 0; x < z->img_comp[n].h; ++x) + { + int x2 = (i * z->img_comp[n].h + x); + int y2 = (j * z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) + { + if (z->code_bits < 24) + stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) + return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i = 0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) + { + // dequantize and idct the data + int i, j, n; + for (n = 0; n < z->s->img_n; ++n) + { + int w = (z->img_comp[n].x + 7) >> 3; + int h = (z->img_comp[n].y + 7) >> 3; + for (j = 0; j < h; ++j) + { + for (i = 0; i < w; ++i) + { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data + z->img_comp[n].w2 * j * 8 + i * 8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) + { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker", "Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) + return stbi__err("bad DRI len", "Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s) - 2; + while (L > 0) + { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15, i; + if (p != 0 && p != 1) + return stbi__err("bad DQT type", "Corrupt JPEG"); + if (t > 3) + return stbi__err("bad DQT table", "Corrupt JPEG"); + + for (i = 0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L == 0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s) - 2; + while (L > 0) + { + stbi_uc *v; + int sizes[16], i, n = 0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) + return stbi__err("bad DHT header", "Corrupt JPEG"); + for (i = 0; i < 16; ++i) + { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + L -= 17; + if (tc == 0) + { + if (!stbi__build_huffman(z->huff_dc + th, sizes)) + return 0; + v = z->huff_dc[th].values; + } + else + { + if (!stbi__build_huffman(z->huff_ac + th, sizes)) + return 0; + v = z->huff_ac[th].values; + } + for (i = 0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L == 0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) + { + L = stbi__get16be(z->s); + if (L < 2) + { + if (m == 0xFE) + return stbi__err("bad COM len", "Corrupt JPEG"); + else + return stbi__err("bad APP len", "Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) + { // JFIF APP0 segment + static const unsigned char tag[5] = {'J', 'F', 'I', 'F', '\0'}; + int ok = 1; + int i; + for (i = 0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } + else if (m == 0xEE && L >= 12) + { // Adobe APP14 segment + static const unsigned char tag[6] = {'A', 'd', 'o', 'b', 'e', '\0'}; + int ok = 1; + int i; + for (i = 0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) + { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker", "Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int)z->s->img_n) + return stbi__err("bad SOS component count", "Corrupt JPEG"); + if (Ls != 6 + 2 * z->scan_n) + return stbi__err("bad SOS len", "Corrupt JPEG"); + for (i = 0; i < z->scan_n; ++i) + { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) + return 0; // no match + z->img_comp[which].hd = q >> 4; + if (z->img_comp[which].hd > 3) + return stbi__err("bad DC huff", "Corrupt JPEG"); + z->img_comp[which].ha = q & 15; + if (z->img_comp[which].ha > 3) + return stbi__err("bad AC huff", "Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) + { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } + else + { + if (z->spec_start != 0) + return stbi__err("bad SOS", "Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) + return stbi__err("bad SOS", "Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i = 0; i < ncomp; ++i) + { + if (z->img_comp[i].raw_data) + { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) + { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) + { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf, p, i, q, h_max = 1, v_max = 1, c; + Lf = stbi__get16be(s); + if (Lf < 11) + return stbi__err("bad SOF len", "Corrupt JPEG"); // JPEG + p = stbi__get8(s); + if (p != 8) + return stbi__err("only 8-bit", "JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); + if (s->img_y == 0) + return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); + if (s->img_x == 0) + return stbi__err("0 width", "Corrupt JPEG"); // JPEG requires + if (s->img_y > STBI_MAX_DIMENSIONS) + return stbi__err("too large", "Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) + return stbi__err("too large", "Very large image (corrupt?)"); + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) + return stbi__err("bad component count", "Corrupt JPEG"); + s->img_n = c; + for (i = 0; i < c; ++i) + { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8 + 3 * s->img_n) + return stbi__err("bad SOF len", "Corrupt JPEG"); + + z->rgb = 0; + for (i = 0; i < s->img_n; ++i) + { + static const unsigned char rgb[3] = {'R', 'G', 'B'}; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); + if (!z->img_comp[i].h || z->img_comp[i].h > 4) + return stbi__err("bad H", "Corrupt JPEG"); + z->img_comp[i].v = q & 15; + if (!z->img_comp[i].v || z->img_comp[i].v > 4) + return stbi__err("bad V", "Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); + if (z->img_comp[i].tq > 3) + return stbi__err("bad TQ", "Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) + return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) + return stbi__err("too large", "Image too large to decode"); + + for (i = 0; i < s->img_n; ++i) + { + if (z->img_comp[i].h > h_max) + h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) + v_max = z->img_comp[i].v; + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w - 1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h - 1) / z->img_mcu_h; + + for (i = 0; i < s->img_n; ++i) + { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max - 1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max - 1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i + 1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc *)(((size_t)z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) + { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i + 1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short *)(((size_t)z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) + return stbi__err("no SOI", "Corrupt JPEG"); + if (scan == STBI__SCAN_type) + return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) + { + if (!stbi__process_marker(z, m)) + return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) + { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) + return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) + return 0; + return 1; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) + { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) + return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) + { + if (stbi__SOS(m)) + { + if (!stbi__process_scan_header(j)) + return 0; + if (!stbi__parse_entropy_coded_data(j)) + return 0; + if (j->marker == STBI__MARKER_none) + { + // handle 0s at the end of image data from IP Kamera 9060 + while (!stbi__at_eof(j->s)) + { + int x = stbi__get8(j->s); + if (x == 255) + { + j->marker = stbi__get8(j->s); + break; + } + } + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + } + else if (stbi__DNL(m)) + { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) + return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) + return stbi__err("bad DNL height", "Corrupt JPEG"); + } + else + { + if (!stbi__process_marker(j, m)) + return 0; + } + m = stbi__get_marker(j); + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc)((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc *stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i = 0; i < w; ++i) + out[i] = stbi__div4(3 * in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc *stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) + { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0] * 3 + input[1] + 2); + for (i = 1; i < w - 1; ++i) + { + int n = 3 * input[i] + 2; + out[i * 2 + 0] = stbi__div4(n + input[i - 1]); + out[i * 2 + 1] = stbi__div4(n + input[i + 1]); + } + out[i * 2 + 0] = stbi__div4(input[w - 2] * 3 + input[w - 1] + 2); + out[i * 2 + 1] = input[w - 1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc)((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i, t0, t1; + if (w == 1) + { + out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3 * in_near[0] + in_far[0]; + out[0] = stbi__div4(t1 + 2); + for (i = 1; i < w; ++i) + { + t0 = t1; + t1 = 3 * in_near[i] + in_far[i]; + out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8); + out[i * 2] = stbi__div16(3 * t1 + t0 + 8); + } + out[w * 2 - 1] = stbi__div4(t1 + 2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i = 0, t0, t1; + + if (w == 1) + { + out[0] = out[1] = stbi__div4(3 * in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3 * in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w - 1) & ~7); i += 8) + { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *)(in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *)(in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3 * in_near[i + 8] + in_far[i + 8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *)(out + i * 2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3 * in_near[i + 8] + in_far[i + 8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i * 2, o); +#endif + + // "previous" value for next iter + t1 = 3 * in_near[i + 7] + in_far[i + 7]; + } + + t0 = t1; + t1 = 3 * in_near[i] + in_far[i]; + out[i * 2] = stbi__div16(3 * t1 + t0 + 8); + + for (++i; i < w; ++i) + { + t0 = t1; + t1 = 3 * in_near[i] + in_far[i]; + out[i * 2 - 1] = stbi__div16(3 * t0 + t1 + 8); + out[i * 2] = stbi__div16(3 * t1 + t0 + 8); + } + out[w * 2 - 1] = stbi__div4(t1 + 2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i, j; + STBI_NOTUSED(in_far); + for (i = 0; i < w; ++i) + for (j = 0; j < hs; ++j) + out[i * hs + j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int)((x)*4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i = 0; i < count; ++i) + { + int y_fixed = (y[i] << 20) + (1 << 19); // rounding + int r, g, b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr * stbi__float2fixed(1.40200f); + g = y_fixed + (cr * -stbi__float2fixed(0.71414f)) + ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb * stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned)r > 255) + { + if (r < 0) + r = 0; + else + r = 255; + } + if ((unsigned)g > 255) + { + if (g < 0) + g = 0; + else + g = 255; + } + if ((unsigned)b > 255) + { + if (b < 0) + b = 0; + else + b = 255; + } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) + { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16((short)(1.40200f * 4096.0f + 0.5f)); + __m128i cr_const1 = _mm_set1_epi16(-(short)(0.71414f * 4096.0f + 0.5f)); + __m128i cb_const0 = _mm_set1_epi16(-(short)(0.34414f * 4096.0f + 0.5f)); + __m128i cb_const1 = _mm_set1_epi16((short)(1.77200f * 4096.0f + 0.5f)); + __m128i y_bias = _mm_set1_epi8((char)(unsigned char)128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i + 7 < count; i += 8) + { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *)(y + i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *)(pcr + i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *)(pcb + i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *)(out + 0), o0); + _mm_storeu_si128((__m128i *)(out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) + { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16((short)(1.40200f * 4096.0f + 0.5f)); + int16x8_t cr_const1 = vdupq_n_s16(-(short)(0.71414f * 4096.0f + 0.5f)); + int16x8_t cb_const0 = vdupq_n_s16(-(short)(0.34414f * 4096.0f + 0.5f)); + int16x8_t cb_const1 = vdupq_n_s16((short)(1.77200f * 4096.0f + 0.5f)); + + for (; i + 7 < count; i += 8) + { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8 * 4; + } + } +#endif + + for (; i < count; ++i) + { + int y_fixed = (y[i] << 20) + (1 << 19); // rounding + int r, g, b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr * stbi__float2fixed(1.40200f); + g = y_fixed + cr * -stbi__float2fixed(0.71414f) + ((cb * -stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb * stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned)r > 255) + { + if (r < 0) + r = 0; + else + r = 255; + } + if ((unsigned)g > 255) + { + if (g < 0) + g = 0; + else + g = 255; + } + if ((unsigned)b > 255) + { + if (b < 0) + b = 0; + else + b = 255; + } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) + { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0, *line1; + int hs, vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x * y + 128; + return (stbi_uc)((t + (t >> 8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) + return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) + { + stbi__cleanup_jpeg(z); + return NULL; + } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // resample and color-convert + { + int k; + unsigned int i, j; + stbi_uc *output; + stbi_uc *coutput[4] = {NULL, NULL, NULL, NULL}; + + stbi__resample res_comp[4]; + + for (k = 0; k < decode_n; ++k) + { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *)stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) + { + stbi__cleanup_jpeg(z); + return stbi__errpuc("outofmem", "Out of memory"); + } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs - 1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) + r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) + r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) + r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) + r->resample = z->resample_row_hv_2_kernel; + else + r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *)stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) + { + stbi__cleanup_jpeg(z); + return stbi__errpuc("outofmem", "Out of memory"); + } + + // now go ahead and resample + for (j = 0; j < z->s->img_y; ++j) + { + stbi_uc *out = output + n * z->s->img_x * j; + for (k = 0; k < decode_n; ++k) + { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) + { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) + { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) + { + if (is_rgb) + { + for (i = 0; i < z->s->img_x; ++i) + { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } + else + { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } + else if (z->s->img_n == 4) + { + if (z->app14_color_transform == 0) + { // CMYK + for (i = 0; i < z->s->img_x; ++i) + { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } + else if (z->app14_color_transform == 2) + { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i = 0; i < z->s->img_x; ++i) + { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } + else + { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } + else + for (i = 0; i < z->s->img_x; ++i) + { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } + else + { + if (is_rgb) + { + if (n == 1) + for (i = 0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else + { + for (i = 0; i < z->s->img_x; ++i, out += 2) + { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } + else if (z->s->img_n == 4 && z->app14_color_transform == 0) + { + for (i = 0; i < z->s->img_x; ++i) + { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } + else if (z->s->img_n == 4 && z->app14_color_transform == 2) + { + for (i = 0; i < z->s->img_x; ++i) + { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } + else + { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i = 0; i < z->s->img_x; ++i) + out[i] = y[i]; + else + for (i = 0; i < z->s->img_x; ++i) + { + *out++ = y[i]; + *out++ = 255; + } + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) + *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char *result; + stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x, y, comp, req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg *j = (stbi__jpeg *)stbi__malloc(sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) + { + stbi__rewind(j->s); + return 0; + } + if (x) + *x = j->s->img_x; + if (y) + *y = j->s->img_y; + if (comp) + *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg *j = (stbi__jpeg *)(stbi__malloc(sizeof(stbi__jpeg))); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[288]; + stbi__uint16 value[288]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16 - bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i, k = 0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i = 0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i = 1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i = 1; i < 16; ++i) + { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16)code; + z->firstsymbol[i] = (stbi__uint16)k; + code = (code + sizes[i]); + if (sizes[i]) + if (code - 1 >= (1 << i)) + return stbi__err("bad codelengths", "Corrupt PNG"); + z->maxcode[i] = code << (16 - i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i = 0; i < num; ++i) + { + int s = sizelist[i]; + if (s) + { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16)((s << 9) | i); + z->size[c] = (stbi_uc)s; + z->value[c] = (stbi__uint16)i; + if (s <= STBI__ZFAST_BITS) + { + int j = stbi__bit_reverse(next_code[s], s); + while (j < (1 << STBI__ZFAST_BITS)) + { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do + { + if (z->code_buffer >= (1U << z->num_bits)) + { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int)stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) + stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b, s, k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s = STBI__ZFAST_BITS + 1;; ++s) + if (k < z->maxcode[s]) + break; + if (s >= 16) + return -1; // invalid code! + // code size is s, so: + b = (k >> (16 - s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= sizeof(z->size)) + return -1; // some data was corrupt somewhere! + if (z->size[b] != s) + return -1; // was originally an assert, but report failure instead. + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b, s; + if (a->num_bits < 16) + { + if (stbi__zeof(a)) + { + return -1; /* report error for unexpected end of data. */ + } + stbi__fill_bits(a); + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) + { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) + return stbi__err("output buffer limit", "Corrupt PNG"); + cur = (unsigned int)(z->zout - z->zout_start); + limit = old_limit = (unsigned)(z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned)n) + return stbi__err("outofmem", "Out of memory"); + while (cur + n > limit) + { + if (limit > UINT_MAX / 2) + return stbi__err("outofmem", "Out of memory"); + limit *= 2; + } + q = (char *)STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) + return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, + 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, + 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + +static const int stbi__zlength_extra[31] = + {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0}; + +static const int stbi__zdist_base[32] = {1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0}; + +static const int stbi__zdist_extra[32] = + {0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for (;;) + { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) + { + if (z < 0) + return stbi__err("bad huffman code", "Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) + { + if (!stbi__zexpand(a, zout, 1)) + return 0; + zout = a->zout; + } + *zout++ = (char)z; + } + else + { + stbi_uc *p; + int len, dist; + if (z == 256) + { + a->zout = zout; + return 1; + } + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) + len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0) + return stbi__err("bad huffman code", "Corrupt PNG"); + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) + dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) + return stbi__err("bad dist", "Corrupt PNG"); + if (zout + len > a->zout_end) + { + if (!stbi__zexpand(a, zout, len)) + return 0; + zout = a->zout; + } + p = (stbi_uc *)(zout - dist); + if (dist == 1) + { // run of one byte; common in images. + stbi_uc v = *p; + if (len) + { + do + *zout++ = v; + while (--len); + } + } + else + { + if (len) + { + do + *zout++ = *p++; + while (--len); + } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286 + 32 + 137]; //padding for maximum single op + stbi_uc codelength_sizes[19]; + int i, n; + + int hlit = stbi__zreceive(a, 5) + 257; + int hdist = stbi__zreceive(a, 5) + 1; + int hclen = stbi__zreceive(a, 4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i = 0; i < hclen; ++i) + { + int s = stbi__zreceive(a, 3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc)s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) + return 0; + + n = 0; + while (n < ntot) + { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) + return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc)c; + else + { + stbi_uc fill = 0; + if (c == 16) + { + c = stbi__zreceive(a, 2) + 3; + if (n == 0) + return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n - 1]; + } + else if (c == 17) + { + c = stbi__zreceive(a, 3) + 3; + } + else if (c == 18) + { + c = stbi__zreceive(a, 7) + 11; + } + else + { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c) + return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes + n, fill, c); + n += c; + } + } + if (n != ntot) + return stbi__err("bad codelengths", "Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) + return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes + hlit, hdist)) + return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len, nlen, k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) + { + header[k++] = (stbi_uc)(a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0) + return stbi__err("zlib corrupt", "Corrupt PNG"); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) + return stbi__err("zlib corrupt", "Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) + return stbi__err("read past buffer", "Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) + return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)) + return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec + if ((cmf * 256 + flg) % 31 != 0) + return stbi__err("bad zlib header", "Corrupt PNG"); // zlib spec + if (flg & 32) + return stbi__err("no preset dict", "Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) + return stbi__err("bad compression", "Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[288] = + { + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8}; +static const stbi_uc stbi__zdefault_distance[32] = + { + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) + return 0; + a->num_bits = 0; + a->code_buffer = 0; + do + { + final = stbi__zreceive(a, 1); + type = stbi__zreceive(a, 2); + if (type == 0) + { + if (!stbi__parse_uncompressed_block(a)) + return 0; + } + else if (type == 3) + { + return 0; + } + else + { + if (type == 1) + { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length, stbi__zdefault_length, 288)) + return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) + return 0; + } + else + { + if (!stbi__compute_huffman_codes(a)) + return 0; + } + if (!stbi__parse_huffman_block(a)) + return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *)stbi__malloc(initial_size); + if (p == NULL) + return NULL; + a.zbuffer = (stbi_uc *)buffer; + a.zbuffer_end = (stbi_uc *)buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) + { + if (outlen) + *outlen = (int)(a.zout - a.zout_start); + return a.zout_start; + } + else + { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *)stbi__malloc(initial_size); + if (p == NULL) + return NULL; + a.zbuffer = (stbi_uc *)buffer; + a.zbuffer_end = (stbi_uc *)buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) + { + if (outlen) + *outlen = (int)(a.zout - a.zout_start); + return a.zout_start; + } + else + { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *)ibuffer; + a.zbuffer_end = (stbi_uc *)ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int)(a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *)stbi__malloc(16384); + if (p == NULL) + return NULL; + a.zbuffer = (stbi_uc *)buffer; + a.zbuffer_end = (stbi_uc *)buffer + len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) + { + if (outlen) + *outlen = (int)(a.zout - a.zout_start); + return a.zout_start; + } + else + { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *)ibuffer; + a.zbuffer_end = (stbi_uc *)ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int)(a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10}; + int i; + for (i = 0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) + return stbi__err("bad png sig", "Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + +enum +{ + STBI__F_none = 0, + STBI__F_sub = 1, + STBI__F_up = 2, + STBI__F_avg = 3, + STBI__F_paeth = 4, + // synthetic filters used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static stbi_uc first_row_filter[5] = + { + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_paeth_first}; + +static int stbi__paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p - a); + int pb = abs(p - b); + int pc = abs(p - c); + if (pa <= pb && pa <= pc) + return a; + if (pb <= pc) + return b; + return c; +} + +static const stbi_uc stbi__depth_scale_table[9] = {0, 0xff, 0x55, 0, 0x11, 0, 0, 0, 0x01}; + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16 ? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i, j, stride = x * out_n * bytes; + stbi__uint32 img_len, img_width_bytes; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n * bytes; + int filter_bytes = img_n * bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n + 1); + a->out = (stbi_uc *)stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) + return stbi__err("outofmem", "Out of memory"); + + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) + return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) + return stbi__err("not enough pixels", "Corrupt PNG"); + + for (j = 0; j < y; ++j) + { + stbi_uc *cur = a->out + stride * j; + stbi_uc *prior; + int filter = *raw++; + + if (filter > 4) + return stbi__err("invalid filter", "Corrupt PNG"); + + if (depth < 8) + { + if (img_width_bytes > x) + return stbi__err("invalid width", "Corrupt PNG"); + cur += x * out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place + filter_bytes = 1; + width = img_width_bytes; + } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above + + // if first row, use special filter that doesn't sample previous row + if (j == 0) + filter = first_row_filter[filter]; + + // handle first byte explicitly + for (k = 0; k < filter_bytes; ++k) + { + switch (filter) + { + case STBI__F_none: + cur[k] = raw[k]; + break; + case STBI__F_sub: + cur[k] = raw[k]; + break; + case STBI__F_up: + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); + break; + case STBI__F_avg: + cur[k] = STBI__BYTECAST(raw[k] + (prior[k] >> 1)); + break; + case STBI__F_paeth: + cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0, prior[k], 0)); + break; + case STBI__F_avg_first: + cur[k] = raw[k]; + break; + case STBI__F_paeth_first: + cur[k] = raw[k]; + break; + } + } + + if (depth == 8) + { + if (img_n != out_n) + cur[img_n] = 255; // first pixel + raw += img_n; + cur += out_n; + prior += out_n; + } + else if (depth == 16) + { + if (img_n != out_n) + { + cur[filter_bytes] = 255; // first pixel top byte + cur[filter_bytes + 1] = 255; // first pixel bottom byte + } + raw += filter_bytes; + cur += output_bytes; + prior += output_bytes; + } + else + { + raw += 1; + cur += 1; + prior += 1; + } + + // this is a little gross, so that we don't switch per-pixel or per-component + if (depth < 8 || img_n == out_n) + { + int nk = (width - 1) * filter_bytes; +#define STBI__CASE(f) \ + case f: \ + for (k = 0; k < nk; ++k) + switch (filter) + { + // "none" filter turns into a memcpy here; make that explicit. + case STBI__F_none: + memcpy(cur, raw, nk); + break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k - filter_bytes]); } + break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } + break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k - filter_bytes]) >> 1)); } + break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k - filter_bytes], prior[k], prior[k - filter_bytes])); } + break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k - filter_bytes] >> 1)); } + break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k - filter_bytes], 0, 0)); } + break; + } +#undef STBI__CASE + raw += nk; + } + else + { + STBI_ASSERT(img_n + 1 == out_n); +#define STBI__CASE(f) \ + case f: \ + for (i = x - 1; i >= 1; --i, cur[filter_bytes] = 255, raw += filter_bytes, cur += output_bytes, prior += output_bytes) \ + for (k = 0; k < filter_bytes; ++k) + switch (filter) + { + STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } + break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k - output_bytes]); } + break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } + break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k - output_bytes]) >> 1)); } + break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k - output_bytes], prior[k], prior[k - output_bytes])); } + break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k - output_bytes] >> 1)); } + break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k - output_bytes], 0, 0)); } + break; + } +#undef STBI__CASE + + // the loop above sets the high byte of the pixels' alpha, but for + // 16 bit png files we also need the low byte set. we'll do that here. + if (depth == 16) + { + cur = a->out + stride * j; // start at the beginning of the row again + for (i = 0; i < x; ++i, cur += output_bytes) + { + cur[filter_bytes + 1] = 255; + } + } + } + } + + // we make a separate pass to expand bits to pixels; for performance, + // this could run two scanlines behind the above code, so it won't + // intefere with filtering but will still be in the cache. + if (depth < 8) + { + for (j = 0; j < y; ++j) + { + stbi_uc *cur = a->out + stride * j; + stbi_uc *in = a->out + stride * j + x * out_n - img_width_bytes; + // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit + // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + + // note that the final byte might overshoot and write more data than desired. + // we can allocate enough data that this never writes out of memory, but it + // could also overwrite the next scanline. can it overwrite non-empty data + // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. + // so we need to explicitly clamp the final ones + + if (depth == 4) + { + for (k = x * img_n; k >= 2; k -= 2, ++in) + { + *cur++ = scale * ((*in >> 4)); + *cur++ = scale * ((*in) & 0x0f); + } + if (k > 0) + *cur++ = scale * ((*in >> 4)); + } + else if (depth == 2) + { + for (k = x * img_n; k >= 4; k -= 4, ++in) + { + *cur++ = scale * ((*in >> 6)); + *cur++ = scale * ((*in >> 4) & 0x03); + *cur++ = scale * ((*in >> 2) & 0x03); + *cur++ = scale * ((*in) & 0x03); + } + if (k > 0) + *cur++ = scale * ((*in >> 6)); + if (k > 1) + *cur++ = scale * ((*in >> 4) & 0x03); + if (k > 2) + *cur++ = scale * ((*in >> 2) & 0x03); + } + else if (depth == 1) + { + for (k = x * img_n; k >= 8; k -= 8, ++in) + { + *cur++ = scale * ((*in >> 7)); + *cur++ = scale * ((*in >> 6) & 0x01); + *cur++ = scale * ((*in >> 5) & 0x01); + *cur++ = scale * ((*in >> 4) & 0x01); + *cur++ = scale * ((*in >> 3) & 0x01); + *cur++ = scale * ((*in >> 2) & 0x01); + *cur++ = scale * ((*in >> 1) & 0x01); + *cur++ = scale * ((*in) & 0x01); + } + if (k > 0) + *cur++ = scale * ((*in >> 7)); + if (k > 1) + *cur++ = scale * ((*in >> 6) & 0x01); + if (k > 2) + *cur++ = scale * ((*in >> 5) & 0x01); + if (k > 3) + *cur++ = scale * ((*in >> 4) & 0x01); + if (k > 4) + *cur++ = scale * ((*in >> 3) & 0x01); + if (k > 5) + *cur++ = scale * ((*in >> 2) & 0x01); + if (k > 6) + *cur++ = scale * ((*in >> 1) & 0x01); + } + if (img_n != out_n) + { + int q; + // insert alpha = 255 + cur = a->out + stride * j; + if (img_n == 1) + { + for (q = x - 1; q >= 0; --q) + { + cur[q * 2 + 1] = 255; + cur[q * 2 + 0] = cur[q]; + } + } + else + { + STBI_ASSERT(img_n == 3); + for (q = x - 1; q >= 0; --q) + { + cur[q * 4 + 3] = 255; + cur[q * 4 + 2] = cur[q * 3 + 2]; + cur[q * 4 + 1] = cur[q * 3 + 1]; + cur[q * 4 + 0] = cur[q * 3 + 0]; + } + } + } + } + } + else if (depth == 16) + { + // force the image data from big-endian to platform-native. + // this is done in a separate pass due to the decoding relying + // on the data being untouched, but could probably be done + // per-line during decode if care is taken. + stbi_uc *cur = a->out; + stbi__uint16 *cur16 = (stbi__uint16 *)cur; + + for (i = 0; i < x * y * out_n; ++i, cur16++, cur += 2) + { + *cur16 = (cur[0] << 8) | cur[1]; + } + } + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *)stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + for (p = 0; p < 7; ++p) + { + int xorig[] = {0, 4, 0, 2, 0, 1, 0}; + int yorig[] = {0, 0, 4, 0, 2, 0, 1}; + int xspc[] = {8, 8, 4, 4, 2, 2, 1}; + int yspc[] = {8, 8, 8, 4, 4, 2, 2}; + int i, j, x, y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p] - 1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p] - 1) / yspc[p]; + if (x && y) + { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) + { + STBI_FREE(final); + return 0; + } + for (j = 0; j < y; ++j) + { + for (i = 0; i < x; ++i) + { + int out_y = j * yspc[p] + yorig[p]; + int out_x = i * xspc[p] + xorig[p]; + memcpy(final + out_y * a->s->img_x * out_bytes + out_x * out_bytes, + a->out + (j * x + i) * out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) + { + for (i = 0; i < pixel_count; ++i) + { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } + else + { + for (i = 0; i < pixel_count; ++i) + { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16 *)z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) + { + for (i = 0; i < pixel_count; ++i) + { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } + else + { + for (i = 0; i < pixel_count; ++i) + { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *)stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) + return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) + { + for (i = 0; i < pixel_count; ++i) + { + int n = orig[i] * 4; + p[0] = palette[n]; + p[1] = palette[n + 1]; + p[2] = palette[n + 2]; + p += 3; + } + } + else + { + for (i = 0; i < pixel_count; ++i) + { + int n = orig[i] * 4; + p[0] = palette[n]; + p[1] = palette[n + 1]; + p[2] = palette[n + 2]; + p[3] = palette[n + 3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load = 0; +static int stbi__de_iphone_flag = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag = flag_true_if_should_convert; +} + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) + { // convert bgr to rgb + for (i = 0; i < pixel_count; ++i) + { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } + else + { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) + { + // convert bgr to rgb and unpremultiply + for (i = 0; i < pixel_count; ++i) + { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) + { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = (t * 255 + half) / a; + } + else + { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } + else + { + // convert bgr to rgb + for (i = 0; i < pixel_count; ++i) + { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a, b, c, d) (((unsigned)(a) << 24) + ((unsigned)(b) << 16) + ((unsigned)(c) << 8) + (unsigned)(d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n = 0; + stbi_uc has_trans = 0, tc[3] = {0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff = 0, idata_limit = 0, i, pal_len = 0; + int first = 1, k, interlace = 0, color = 0, is_iphone = 0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) + return 0; + + if (scan == STBI__SCAN_type) + return 1; + + for (;;) + { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) + { + case STBI__PNG_TYPE('C', 'g', 'B', 'I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I', 'H', 'D', 'R'): + { + int comp, filter; + if (!first) + return stbi__err("multiple IHDR", "Corrupt PNG"); + first = 0; + if (c.length != 13) + return stbi__err("bad IHDR len", "Corrupt PNG"); + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS) + return stbi__err("too large", "Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) + return stbi__err("too large", "Very large image (corrupt?)"); + z->depth = stbi__get8(s); + if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) + return stbi__err("1/2/4/8/16-bit only", "PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); + if (color > 6) + return stbi__err("bad ctype", "Corrupt PNG"); + if (color == 3 && z->depth == 16) + return stbi__err("bad ctype", "Corrupt PNG"); + if (color == 3) + pal_img_n = 3; + else if (color & 1) + return stbi__err("bad ctype", "Corrupt PNG"); + comp = stbi__get8(s); + if (comp) + return stbi__err("bad comp method", "Corrupt PNG"); + filter = stbi__get8(s); + if (filter) + return stbi__err("bad filter method", "Corrupt PNG"); + interlace = stbi__get8(s); + if (interlace > 1) + return stbi__err("bad interlace method", "Corrupt PNG"); + if (!s->img_x || !s->img_y) + return stbi__err("0-pixel image", "Corrupt PNG"); + if (!pal_img_n) + { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) + return stbi__err("too large", "Image too large to decode"); + if (scan == STBI__SCAN_header) + return 1; + } + else + { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) + return stbi__err("too large", "Corrupt PNG"); + // if SCAN_header, have to scan to see if we have a tRNS + } + break; + } + + case STBI__PNG_TYPE('P', 'L', 'T', 'E'): + { + if (first) + return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256 * 3) + return stbi__err("invalid PLTE", "Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) + return stbi__err("invalid PLTE", "Corrupt PNG"); + for (i = 0; i < pal_len; ++i) + { + palette[i * 4 + 0] = stbi__get8(s); + palette[i * 4 + 1] = stbi__get8(s); + palette[i * 4 + 2] = stbi__get8(s); + palette[i * 4 + 3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t', 'R', 'N', 'S'): + { + if (first) + return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) + return stbi__err("tRNS after IDAT", "Corrupt PNG"); + if (pal_img_n) + { + if (scan == STBI__SCAN_header) + { + s->img_n = 4; + return 1; + } + if (pal_len == 0) + return stbi__err("tRNS before PLTE", "Corrupt PNG"); + if (c.length > pal_len) + return stbi__err("bad tRNS len", "Corrupt PNG"); + pal_img_n = 4; + for (i = 0; i < c.length; ++i) + palette[i * 4 + 3] = stbi__get8(s); + } + else + { + if (!(s->img_n & 1)) + return stbi__err("tRNS with alpha", "Corrupt PNG"); + if (c.length != (stbi__uint32)s->img_n * 2) + return stbi__err("bad tRNS len", "Corrupt PNG"); + has_trans = 1; + if (z->depth == 16) + { + for (k = 0; k < s->img_n; ++k) + tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } + else + { + for (k = 0; k < s->img_n; ++k) + tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I', 'D', 'A', 'T'): + { + if (first) + return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) + return stbi__err("no PLTE", "Corrupt PNG"); + if (scan == STBI__SCAN_header) + { + s->img_n = pal_img_n; + return 1; + } + if ((int)(ioff + c.length) < (int)ioff) + return 0; + if (ioff + c.length > idata_limit) + { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) + idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *)STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); + if (p == NULL) + return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata + ioff, c.length)) + return stbi__err("outofdata", "Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I', 'E', 'N', 'D'): + { + stbi__uint32 raw_len, bpl; + if (first) + return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) + return 1; + if (z->idata == NULL) + return stbi__err("no IDAT", "Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *)stbi_zlib_decode_malloc_guesssize_headerflag((char *)z->idata, ioff, raw_len, (int *)&raw_len, !is_iphone); + if (z->expanded == NULL) + return 0; // zlib should set error + STBI_FREE(z->idata); + z->idata = NULL; + if ((req_comp == s->img_n + 1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n + 1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) + return 0; + if (has_trans) + { + if (z->depth == 16) + { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) + return 0; + } + else + { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) + return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) + { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) + s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } + else if (has_trans) + { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); + z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first) + return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) + { +#ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); +#endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result = NULL; + if (req_comp < 0 || req_comp > 4) + return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) + { + if (p->depth <= 8) + ri->bits_per_channel = 8; + else if (p->depth == 16) + ri->bits_per_channel = 16; + else + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) + { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *)result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *)result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) + return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) + *n = p->s->img_n; + } + STBI_FREE(p->out); + p->out = NULL; + STBI_FREE(p->expanded); + p->expanded = NULL; + STBI_FREE(p->idata); + p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x, y, comp, req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) + { + stbi__rewind(p->s); + return 0; + } + if (x) + *x = p->s->img_x; + if (y) + *y = p->s->img_y; + if (comp) + *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) + { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') + return 0; + if (stbi__get8(s) != 'M') + return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n = 0; + if (z == 0) + return -1; + if (z >= 0x10000) + { + n += 16; + z >>= 16; + } + if (z >= 0x00100) + { + n += 8; + z >>= 8; + } + if (z >= 0x00010) + { + n += 4; + z >>= 4; + } + if (z >= 0x00004) + { + n += 2; + z >>= 2; + } + if (z >= 0x00002) + { + n += 1; /* >>= 1;*/ + } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff /*0b11111111*/, + 0x55 /*0b01010101*/, + 0x49 /*0b01001001*/, + 0x11 /*0b00010001*/, + 0x21 /*0b00100001*/, + 0x41 /*0b01000001*/, + 0x81 /*0b10000001*/, + 0x01 /*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, + 0, + 0, + 1, + 0, + 2, + 4, + 6, + 0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v < 256); + v >>= (8 - bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int)((unsigned)v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr, mg, mb, ma, all_a; + int extra_read; +} stbi__bmp_data; + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') + return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0) + return stbi__errpuc("bad BMP", "bad BMP"); + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) + return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) + { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } + else + { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) + return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) + { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) + return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) + { + if (hsz == 56) + { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) + { + if (compress == 0) + { + if (info->bpp == 32) + { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } + else + { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } + } + else if (compress == 3) + { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) + { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } + else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } + else + { + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + stbi__get32le(s); // discard color space + for (i = 0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) + { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *)1; +} + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr = 0, mg = 0, mb = 0, ma = 0, all_a; + stbi_uc pal[256][4]; + int psize = 0, i, j, width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int)s->img_y) > 0; + s->img_y = abs((int)s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) + { + if (info.bpp < 24) + psize = (info.offset - info.extra_read - 24) / 3; + } + else + { + if (info.bpp < 16) + psize = (info.offset - info.extra_read - info.hsz) >> 2; + } + if (psize == 0) + { + STBI_ASSERT(info.offset == s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original)); + if (info.offset != s->callback_already_read + (s->img_buffer - s->buffer_start)) + { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } + } + + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *)stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) + return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) + { + int z = 0; + if (psize == 0 || psize > 256) + { + STBI_FREE(out); + return stbi__errpuc("invalid", "Corrupt BMP"); + } + for (i = 0; i < psize; ++i) + { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) + stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) + width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) + width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) + width = s->img_x; + else + { + STBI_FREE(out); + return stbi__errpuc("bad bpp", "Corrupt BMP"); + } + pad = (-width) & 3; + if (info.bpp == 1) + { + for (j = 0; j < (int)s->img_y; ++j) + { + int bit_offset = 7, v = stbi__get8(s); + for (i = 0; i < (int)s->img_x; ++i) + { + int color = (v >> bit_offset) & 0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4) + out[z++] = 255; + if (i + 1 == (int)s->img_x) + break; + if ((--bit_offset) < 0) + { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } + else + { + for (j = 0; j < (int)s->img_y; ++j) + { + for (i = 0; i < (int)s->img_x; i += 2) + { + int v = stbi__get8(s), v2 = 0; + if (info.bpp == 4) + { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) + out[z++] = 255; + if (i + 1 == (int)s->img_x) + break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) + out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } + else + { + int rshift = 0, gshift = 0, bshift = 0, ashift = 0, rcount = 0, gcount = 0, bcount = 0, acount = 0; + int z = 0; + int easy = 0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24) + width = 3 * s->img_x; + else if (info.bpp == 16) + width = 2 * s->img_x; + else /* bpp = 32 and pad = 0 */ + width = 0; + pad = (-width) & 3; + if (info.bpp == 24) + { + easy = 1; + } + else if (info.bpp == 32) + { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) + { + if (!mr || !mg || !mb) + { + STBI_FREE(out); + return stbi__errpuc("bad masks", "Corrupt BMP"); + } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr) - 7; + rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg) - 7; + gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb) - 7; + bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma) - 7; + acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) + { + STBI_FREE(out); + return stbi__errpuc("bad masks", "Corrupt BMP"); + } + } + for (j = 0; j < (int)s->img_y; ++j) + { + if (easy) + { + for (i = 0; i < (int)s->img_x; ++i) + { + unsigned char a; + out[z + 2] = stbi__get8(s); + out[z + 1] = stbi__get8(s); + out[z + 0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) + out[z++] = a; + } + } + else + { + int bpp = info.bpp; + for (i = 0; i < (int)s->img_x; ++i) + { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32)stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) + out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i = 4 * s->img_x * s->img_y - 1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) + { + stbi_uc t; + for (j = 0; j<(int)s->img_y> > 1; ++j) + { + stbi_uc *p1 = out + j * s->img_x * target; + stbi_uc *p2 = out + (s->img_y - 1 - j) * s->img_x * target; + for (i = 0; i < (int)s->img_x * target; ++i) + { + t = p1[i]; + p1[i] = p2[i]; + p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) + { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) + return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) + *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int *is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) + *is_rgb16 = 0; + switch (bits_per_pixel) + { + case 8: + return STBI_grey; + case 16: + if (is_grey) + return STBI_grey_alpha; + // fallthrough + case 15: + if (is_rgb16) + *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: + return bits_per_pixel / 8; + default: + return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if (tga_colormap_type > 1) + { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if (tga_colormap_type == 1) + { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) + { + stbi__rewind(s); + return 0; + } + stbi__skip(s, 4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) + { + stbi__rewind(s); + return 0; + } + stbi__skip(s, 4); // skip image x and y origin + tga_colormap_bpp = sz; + } + else + { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ((tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11)) + { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s, 9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if (tga_w < 1) + { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if (tga_h < 1) + { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) + { + if ((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) + { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } + else + { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if (!tga_comp) + { + stbi__rewind(s); + return 0; + } + if (x) + *x = tga_w; + if (y) + *y = tga_h; + if (comp) + *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if (tga_color_type > 1) + goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if (tga_color_type == 1) + { // colormapped (paletted) image + if (sz != 1 && sz != 9) + goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s, 4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) + goto errorEnd; + stbi__skip(s, 4); // skip image x and y origin + } + else + { // "normal" image w/o colormap + if ((sz != 2) && (sz != 3) && (sz != 10) && (sz != 11)) + goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s, 9); // skip colormap specification and image x/y origin + } + if (stbi__get16le(s) < 1) + goto errorEnd; // test width + if (stbi__get16le(s) < 1) + goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ((tga_color_type == 1) && (sz != 8) && (sz != 16)) + goto errorEnd; // for colormapped images, bpp is size of an index + if ((sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32)) + goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc *out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255) / 31); + out[1] = (stbi_uc)((g * 255) / 31); + out[2] = (stbi_uc)((b * 255) / 31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16 = 0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + if (tga_width > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + + // do a tiny bit of precessing + if (tga_image_type >= 8) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if (tga_indexed) + tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if (!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) + *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char *)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) + return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset); + + if (!tga_indexed && !tga_is_RLE && !tga_rgb16) + { + for (i = 0; i < tga_height; ++i) + { + int row = tga_inverted ? tga_height - i - 1 : i; + stbi_uc *tga_row = tga_data + row * tga_width * tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } + else + { + // do I need to load a palette? + if (tga_indexed) + { + if (tga_palette_len == 0) + { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start); + // load the palette + tga_palette = (unsigned char *)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) + { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) + { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i = 0; i < tga_palette_len; ++i) + { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } + else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) + { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i = 0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if (tga_is_RLE) + { + if (RLE_count == 0) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } + else if (!RLE_repeating) + { + read_next_pixel = 1; + } + } + else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if (read_next_pixel) + { + // load however much data we did have + if (tga_indexed) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if (pal_idx >= tga_palette_len) + { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) + { + raw_data[j] = tga_palette[pal_idx + j]; + } + } + else if (tga_rgb16) + { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } + else + { + // read in the data raw + for (j = 0; j < tga_comp; ++j) + { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i * tga_comp + j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if (tga_inverted) + { + for (j = 0; j * 2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if (tga_palette != NULL) + { + STBI_FREE(tga_palette); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char *tga_pixel = tga_data; + for (i = 0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) + { + len = stbi__get8(s); + if (len == 128) + { + // No-op. + } + else if (len < 128) + { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) + return 0; // corrupt data + count += len; + while (len) + { + *p = stbi__get8(s); + p += 4; + len--; + } + } + else if (len > 128) + { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) + return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) + { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w, h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + if (w > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s, stbi__get32be(s)); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s)); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s)); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) + { + out = (stbi_uc *)stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } + else + out = (stbi_uc *)stbi__malloc(4 * w * h); + + if (!out) + return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w * h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) + { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) + { + stbi_uc *p; + + p = out + channel; + if (channel >= channelCount) + { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } + else + { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) + { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + } + else + { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) + { + if (channel >= channelCount) + { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) + { + stbi__uint16 *q = ((stbi__uint16 *)out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } + else + { + stbi_uc *p = out + channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } + else + { + if (ri->bits_per_channel == 16) + { // output bpc + stbi__uint16 *q = ((stbi__uint16 *)out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16)stbi__get16be(s); + } + else + { + stbi_uc *p = out + channel; + if (bitdepth == 16) + { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc)(stbi__get16be(s) >> 8); + } + else + { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) + { + if (ri->bits_per_channel == 16) + { + for (i = 0; i < w * h; ++i) + { + stbi__uint16 *pixel = (stbi__uint16 *)out + 4 * i; + if (pixel[3] != 0 && pixel[3] != 65535) + { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16)(pixel[0] * ra + inv_a); + pixel[1] = (stbi__uint16)(pixel[1] * ra + inv_a); + pixel[2] = (stbi__uint16)(pixel[2] * ra + inv_a); + } + } + } + else + { + for (i = 0; i < w * h; ++i) + { + unsigned char *pixel = out + 4 * i; + if (pixel[3] != 0 && pixel[3] != 255) + { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char)(pixel[0] * ra + inv_a); + pixel[1] = (unsigned char)(pixel[1] * ra + inv_a); + pixel[2] = (unsigned char)(pixel[2] * ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) + { + if (ri->bits_per_channel == 16) + out = (stbi_uc *)stbi__convert_format16((stbi__uint16 *)out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) + return out; // stbi__convert_format frees input on failure + } + + if (comp) + *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s, const char *str) +{ + int i; + for (i = 0; i < 4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) + return 0; + + for (i = 0; i < 84; ++i) + stbi__get8(s); + + if (!stbi__pic_is4(s, "PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size, type, channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask = 0x80, i; + + for (i = 0; i < 4; ++i, mask >>= 1) + { + if (channel & mask) + { + if (stbi__at_eof(s)) + return stbi__errpuc("bad file", "PIC file too short"); + dest[i] = stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel, stbi_uc *dest, const stbi_uc *src) +{ + int mask = 0x80, i; + + for (i = 0; i < 4; ++i, mask >>= 1) + if (channel & mask) + dest[i] = src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s, int width, int height, int *comp, stbi_uc *result) +{ + int act_comp = 0, num_packets = 0, y, chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do + { + stbi__pic_packet *packet; + + if (num_packets == sizeof(packets) / sizeof(packets[0])) + return stbi__errpuc("bad format", "too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) + return stbi__errpuc("bad file", "file too short (reading packets)"); + if (packet->size != 8) + return stbi__errpuc("bad format", "packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for (y = 0; y < height; ++y) + { + int packet_idx; + + for (packet_idx = 0; packet_idx < num_packets; ++packet_idx) + { + stbi__pic_packet *packet = &packets[packet_idx]; + stbi_uc *dest = result + y * width * 4; + + switch (packet->type) + { + default: + return stbi__errpuc("bad format", "packet has bad compression type"); + + case 0: + { //uncompressed + int x; + + for (x = 0; x < width; ++x, dest += 4) + if (!stbi__readval(s, packet->channel, dest)) + return 0; + break; + } + + case 1: //Pure RLE + { + int left = width, i; + + while (left > 0) + { + stbi_uc count, value[4]; + + count = stbi__get8(s); + if (stbi__at_eof(s)) + return stbi__errpuc("bad file", "file too short (pure read count)"); + + if (count > left) + count = (stbi_uc)left; + + if (!stbi__readval(s, packet->channel, value)) + return 0; + + for (i = 0; i < count; ++i, dest += 4) + stbi__copyval(packet->channel, dest, value); + left -= count; + } + } + break; + + case 2: + { //Mixed RLE + int left = width; + while (left > 0) + { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) + return stbi__errpuc("bad file", "file too short (mixed read count)"); + + if (count >= 128) + { // Repeated + stbi_uc value[4]; + + if (count == 128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file", "scanline overrun"); + + if (!stbi__readval(s, packet->channel, value)) + return 0; + + for (i = 0; i < count; ++i, dest += 4) + stbi__copyval(packet->channel, dest, value); + } + else + { // Raw + ++count; + if (count > left) + return stbi__errpuc("bad file", "scanline overrun"); + + for (i = 0; i < count; ++i, dest += 4) + if (!stbi__readval(s, packet->channel, dest)) + return 0; + } + left -= count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s, int *px, int *py, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x, y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) + comp = &internal_comp; + + for (i = 0; i < 92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + if (x > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + + if (stbi__at_eof(s)) + return stbi__errpuc("bad file", "file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) + return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *)stbi__malloc_mad3(x, y, 4, 0); + memset(result, 0xff, x * y * 4); + + if (!stbi__pic_load_core(s, x, y, comp, result)) + { + STBI_FREE(result); + result = 0; + } + *px = x; + *py = y; + if (req_comp == 0) + req_comp = *comp; + result = stbi__convert_format(result, 4, req_comp, x, y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w, h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') + return 0; + if (stbi__get8(s) != 'a') + return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i = 0; i < num_entries; ++i) + { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') + return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') + return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS) + return stbi__err("too large", "Very large image (corrupt?)"); + if (g->h > STBI_MAX_DIMENSIONS) + return stbi__err("too large", "Very large image (corrupt?)"); + + if (comp != 0) + *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) + return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s, g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif *g = (stbi__gif *)stbi__malloc(sizeof(stbi__gif)); + if (!stbi__gif_header(s, g, comp, 1)) + { + STBI_FREE(g); + stbi__rewind(s); + return 0; + } + if (x) + *x = g->w; + if (y) + *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) + return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) + { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) + { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) + { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) + return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) + { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc)init_code; + g->codes[init_code].suffix = (stbi_uc)init_code; + } + + // support no starting clear code + avail = clear + 2; + oldcode = -1; + + len = 0; + for (;;) + { + if (valid_bits < codesize) + { + if (len == 0) + { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32)stbi__get8(s) << valid_bits; + valid_bits += 8; + } + else + { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) + { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } + else if (code == clear + 1) + { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s, len); + return g->out; + } + else if (code <= avail) + { + if (first) + { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) + { + p = &g->codes[avail++]; + if (avail > 8192) + { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16)oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } + else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16)code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) + { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } + else + { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) + { + if (!stbi__gif_header(s, g, comp, 0)) + return 0; // stbi__g_failure_reason set by stbi__gif_header + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) + return stbi__errpuc("too large", "GIF image is too large"); + pcount = g->w * g->h; + g->out = (stbi_uc *)stbi__malloc(4 * pcount); + g->background = (stbi_uc *)stbi__malloc(4 * pcount); + g->history = (stbi_uc *)stbi__malloc(pcount); + if (!g->out || !g->background || !g->history) + return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } + else + { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) + { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) + { // use previous graphic + for (pi = 0; pi < pcount; ++pi) + { + if (g->history[pi]) + { + memcpy(&g->out[pi * 4], &two_back[pi * 4], 4); + } + } + } + else if (dispose == 2) + { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) + { + if (g->history[pi]) + { + memcpy(&g->out[pi * 4], &g->background[pi * 4], 4); + } + } + } + else + { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy(g->background, g->out, 4 * g->w * g->h); + } + + // clear my history; + memset(g->history, 0x00, g->w * g->h); // pixels that were affected previous frame + + for (;;) + { + int tag = stbi__get8(s); + switch (tag) + { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0) + g->cur_y = g->max_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) + { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } + else + { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) + { + stbi__gif_parse_colortable(s, g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *)g->lpal; + } + else if (g->flags & 0x80) + { + g->color_table = (stbi_uc *)g->pal; + } + else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (!o) + return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) + { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) + { + if (g->history[pi] == 0) + { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy(&g->out[pi * 4], &g->pal[g->bgindex], 4); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) + { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) + { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) + { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) + { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) + { + g->pal[g->transparent][3] = 0; + } + } + else + { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } + else + { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) + { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *)s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) + { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + memset(&g, 0, sizeof(g)); + if (delays) + { + *delays = 0; + } + + do + { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *)s) + u = 0; // end of animated gif marker + + if (u) + { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) + { + void *tmp = (stbi_uc *)STBI_REALLOC_SIZED(out, out_size, layers * stride); + if (NULL == tmp) + { + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + return stbi__errpuc("outofmem", "Out of memory"); + } + else + { + out = (stbi_uc *)tmp; + out_size = layers * stride; + } + + if (delays) + { + *delays = (int *)STBI_REALLOC_SIZED(*delays, delays_size, sizeof(int) * layers); + delays_size = layers * sizeof(int); + } + } + else + { + out = (stbi_uc *)stbi__malloc(layers * stride); + out_size = layers * stride; + if (delays) + { + *delays = (int *)stbi__malloc(layers * sizeof(int)); + delays_size = layers * sizeof(int); + } + } + memcpy(out + ((layers - 1) * stride), u, stride); + if (layers >= 2) + { + two_back = out - 2 * stride; + } + + if (delays) + { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } + else + { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *)s) + u = 0; // end of animated gif marker + if (u) + { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } + else if (g.out) + { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s, x, y, comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i = 0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context *s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if (!r) + { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len = 0; + char c = '\0'; + + c = (char)stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') + { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN - 1) + { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char)stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if (input[3] != 0) + { + float f1; + // Exponent + f1 = (float)ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else + { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) + output[1] = 1; + if (req_comp == 4) + output[3] = 1; + } + else + { + switch (req_comp) + { + case 4: + output[3] = 1; /* fallthrough */ + case 3: + output[0] = output[1] = output[2] = 0; + break; + case 2: + output[1] = 1; /* fallthrough */ + case 1: + output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1, c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s, buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for (;;) + { + token = stbi__hdr_gettoken(s, buffer); + if (token[0] == 0) + break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) + valid = 1; + } + + if (!valid) + return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s, buffer); + if (strncmp(token, "-Y ", 3)) + return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int)strtol(token, &token, 10); + while (*token == ' ') + ++token; + if (strncmp(token, "+X ", 3)) + return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int)strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS) + return stbi__errpf("too large", "Very large image (corrupt?)"); + if (width > STBI_MAX_DIMENSIONS) + return stbi__errpf("too large", "Very large image (corrupt?)"); + + *x = width; + *y = height; + + if (comp) + *comp = 3; + if (req_comp == 0) + req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *)stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if (width < 8 || width >= 32768) + { + // Read flat data + for (j = 0; j < height; ++j) + { + for (i = 0; i < width; ++i) + { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } + else + { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) + { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) + { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc)c1; + rgbe[1] = (stbi_uc)c2; + rgbe[2] = (stbi_uc)len; + rgbe[3] = (stbi_uc)stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) + { + STBI_FREE(hdr_data); + STBI_FREE(scanline); + return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); + } + if (scanline == NULL) + { + scanline = (stbi_uc *)stbi__malloc_mad2(width, 4, 0); + if (!scanline) + { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) + { + int nleft; + i = 0; + while ((nleft = width - i) > 0) + { + count = stbi__get8(s); + if (count > 128) + { + // Run + value = stbi__get8(s); + count -= 128; + if (count > nleft) + { + STBI_FREE(hdr_data); + STBI_FREE(scanline); + return stbi__errpf("corrupt", "bad RLE data in HDR"); + } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } + else + { + // Dump + if (count > nleft) + { + STBI_FREE(hdr_data); + STBI_FREE(scanline); + return stbi__errpf("corrupt", "bad RLE data in HDR"); + } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i = 0; i < width; ++i) + stbi__hdr_convert(hdr_data + (j * width + i) * req_comp, scanline + i * 4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) + x = &dummy; + if (!y) + y = &dummy; + if (!comp) + comp = &dummy; + + if (stbi__hdr_test(s) == 0) + { + stbi__rewind(s); + return 0; + } + + for (;;) + { + token = stbi__hdr_gettoken(s, buffer); + if (token[0] == 0) + break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) + valid = 1; + } + + if (!valid) + { + stbi__rewind(s); + return 0; + } + token = stbi__hdr_gettoken(s, buffer); + if (strncmp(token, "-Y ", 3)) + { + stbi__rewind(s); + return 0; + } + token += 3; + *y = (int)strtol(token, &token, 10); + while (*token == ' ') + ++token; + if (strncmp(token, "+X ", 3)) + { + stbi__rewind(s); + return 0; + } + token += 3; + *x = (int)strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + stbi__rewind(s); + if (p == NULL) + return 0; + if (x) + *x = s->img_x; + if (y) + *y = s->img_y; + if (comp) + { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) + x = &dummy; + if (!y) + y = &dummy; + if (!comp) + comp = &dummy; + if (stbi__get32be(s) != 0x38425053) + { + stbi__rewind(s); + return 0; + } + if (stbi__get16be(s) != 1) + { + stbi__rewind(s); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + { + stbi__rewind(s); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) + { + stbi__rewind(s); + return 0; + } + if (stbi__get16be(s) != 3) + { + stbi__rewind(s); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) + { + stbi__rewind(s); + return 0; + } + if (stbi__get16be(s) != 1) + { + stbi__rewind(s); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + { + stbi__rewind(s); + return 0; + } + (void)stbi__get32be(s); + (void)stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 16) + { + stbi__rewind(s); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp = 0, num_packets = 0, chained, dummy; + stbi__pic_packet packets[10]; + + if (!x) + x = &dummy; + if (!y) + y = &dummy; + if (!comp) + comp = &dummy; + + if (!stbi__pic_is4(s, "\x53\x80\xF6\x34")) + { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) + { + stbi__rewind(s); + return 0; + } + if ((*x) != 0 && (1 << 28) / (*x) < (*y)) + { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 8); + + do + { + stbi__pic_packet *packet; + + if (num_packets == sizeof(packets) / sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) + { + stbi__rewind(s); + return 0; + } + if (packet->size != 8) + { + stbi__rewind(s); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) +// Does not support 16-bit-per-channel + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char)stbi__get8(s); + t = (char)stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) + { + stbi__rewind(s); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + if (!stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n)) + return 0; + + if (s->img_y > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) + return stbi__errpuc("too large", "Very large image (corrupt?)"); + + *x = s->img_x; + *y = s->img_y; + if (comp) + *comp = s->img_n; + + if (!stbi__mad3sizes_valid(s->img_n, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *)stbi__malloc_mad3(s->img_n, s->img_x, s->img_y, 0); + if (!out) + return stbi__errpuc("outofmem", "Out of memory"); + stbi__getn(s, out, s->img_n * s->img_x * s->img_y); + + if (req_comp && req_comp != s->img_n) + { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + if (out == NULL) + return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) + { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char)stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r') + *c = (char)stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) + { + value = value * 10 + (*c - '0'); + *c = (char)stbi__get8(s); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) + x = &dummy; + if (!y) + y = &dummy; + if (!comp) + comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char)stbi__get8(s); + t = (char)stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) + { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char)stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + + if (maxv > 255) + return stbi__err("max value > 255", "PPM image not 8-bit"); + else + return 1; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ +#ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) + return 1; +#endif + +#ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) + return 1; +#endif + +// test tga last because it's a crappy test! +#ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; +#endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ +#ifndef STBI_NO_PNG + if (stbi__png_is16(s)) + return 1; +#endif + +#ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) + return 1; +#endif + + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) + return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s, x, y, comp); + fseek(f, pos, SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) + return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f, pos, SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s, buffer, len); + return stbi__info_main(&s, x, y, comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user); + return stbi__info_main(&s, x, y, comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s, buffer, len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/ diff --git a/res/textures/sample.jpg b/res/textures/sample.jpg new file mode 100644 index 0000000000000000000000000000000000000000..adb57a882bb216d7e493e5932b400821567306bb GIT binary patch literal 1226836 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%0Akldb|E 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

JbAP^aL^Ee$pFQ8nSGl<(<*nO)#v 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

{$*x@i7Bf0603AI?)KHCvn5Nqey(fT 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

96dCa=4Yi|@j_)X$IDnlwBElWwXu*L4w}v? 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⪚SLmB>*2r+b{=R zz!Ce@FiZ%>wItP_9w>As*t#hC*y=fo%h8-}lE68Bd7a|(lgxCBXF5k5^CR%#NeJ`N zcdu0tGY6htZ^dl28+D)T89!Do_1$MPZ>nm#9c(vkwJ?_fwt38cJy=O|!dm=yjFQhq zqKq)-=v%t*asF|q(J+B-TT8-|q5X!V_@}AqkZ^pAL{{nTom9no^1bjPmiOnM5}HLV zd>Ip^ei@DIiWjzZm*rb+$B(?hMhCMpp8fZ!hC04Ve{HJ}xP94yNtNP`2gq-(T}(!s zi$Be&l#9Rsv{ctfWEz=;K^?kztKwM;iK%oT@V`kQpP;h=XVXsV26`(*#fTMQm~(Pf zjrNxOik=}mSb6ki0)|j0Zl#dV?FchWx<>GRXG`<_!QpVONv{SIjSFnyF(@))W?#6+9}5<@m-g1UA8=C#a-AZ z#vZ4|PB-R01%QvI-MNP0Vp(KSl2{a(`!6%4!Q$RzU#+Q1{cL1D=ieD;jaq2|^9zyF z0A2RyMe7L!K0ceF(<{eRXt(nmmYMI8#vb!#*gQl*tbx-TUH{mBinLmYUYaO!?XNQk z@@>*v)$fpDb|JO7P}3eWC?ThRPDw*Cge><3yY5Fd>mb;Z62j`Mmrw#lRb%I|$QA-W zleM_&H>J=eRoiRjtH}_;T@cb~cl(Rb+N?H+GL0)SMDrCOnXaT9)Brlfj{J5 z7H|3u^r=SK)ng)111@Pp!QFrH>GJcKFcwTV{J1OrFoP+s;&`3ZE9eN@HM1;(lI- zKEat^Ww@W?yA>XU7jH&#Uh(WGVmNchvQ(2$EjBzY92zZQ5n8(VfM=4!vSAN6tBf-B z{oT>V;}cXYzqXH+?8diX{@_naQ>l?EIHfPd4+zXZ1eu)o~E?3;i)T#oQlo}@pzv<_*2_T6UM5cQdTGyj&)hd_5I8^ zhD%Fm8FjBg%IRl|J>Co6(hp6S&#O5%uJUB|i+q-~#xK zKDQamlc%EE3m|tu!gJkDy>28&*14169qRmDD;Rq#SmPxK3KKn<>a?nx7X?nW;>#6? z2e?Y#pGD6W5&uW=0@S`7!YZ{Lk z$abBOk^yE8M>awd%X$_EWA@a#>)x+R(1)(d`gneS2fzM@>z?6C7DHBn`|{phCoyf~ zxEgFrtb&(APoSrk)<;S=o*Sn{JHsB&ps)(3h6*4S^H@gh$zq!}#lsEwXhU2#yFt;& zqaAel({xH!SQOF!vs22%*R9)xx1hO#^J~Cff-pr8x-({%-J8DxLP%PtWDB;;bTil2 z&MhP0m@zdU+RejC)R@SJcNgX-_z^H$6^qn>ZT)hCTX25YXRgf# z>b3jtwr{v?dv{yF8Hx#w1gEL5#&WlTbW|wp)yw{|g0k&0Q@7xDvp7nw7J1A?l+@B( z!c>*NL;#v~5t>~!BkRuE80r1Li`$Kkfl2|Sf$~oFK>I;A0&Yv)nyPbOeBBfo@QbEB z!TkIMd;MzJz8k#@;ZNS5^dT3aCt?{#Rb^o7&_cGB`c&U{GbWjh1!>#+p*)+qokNbb zP(#!V@H6d}yj25@YCiT*Hgu}A8OD8u33ro~aR4j@`nFir?m6cD5c6!Gw_e_iF!a%? zHV}D%10?-D5hW}Qov&lqDAZyAK>dBK^l>fy1!n%@d^diqbxM>OGlXX~UimMuG5v7Z zNihKjAx_dC9SJ3fxCKP(`WMs3$gN7;4^8wrOt(TIJWE!*d{4;A#?%nsV3h#s#} zysxVD(lg>#Wv}6ZKb~-WSN)l^F6LYRTe^c0g~dAP4XO(~XG`0Mtrtr2-Gja0(mP|g zeK=J4i>WpvW9N5X|2cD{U3#MI9P%1F9c<`7@yau4X_hK2*oG2gp;wXDpOe^=-qn$V zsA`D`lOL^}AJ9TEd$2IHng@4VN*2<-J)`fQ_FsTWzn&3S-mVmUIo`Kt=CJMu{JJP+ z_2|--UEZqmSfwRt*1imHnB~ z2*Y6z6I$7`gP^TynP-1+Pa}=2T4gsQN1leDf!j{In%jjm${5`{K-~-3;Erg>6kJ!w zg5%$kZc!E}!?*Gm(%lZoJ2E=)A>2dy_p(>q0DY3CAiQIu@Dx#|R36C%kiPr0?ZLwt zbi5<6lsFr_Fk=62(g@Ex3znHo+KGd6IlBH3Db0#1IwSg2>^}~)%G<*%-c%zI<7=BW zZAtQSyq8mMR;NwR1$oEVSGt;_jGvB7!}1RGwBS{h&l_e3#Pk{D0{)L;piJdCPQ`=R zTFKeQJW9tZ*!!~%5=H`%7`|Q2 z>!o~+KK|y8S+-M?AQ=dBrUSu%E$Xe5p}bQTe(0(P*vhq2@aUJ|AY)7KQMHlk6N$_P zr9#monw}85oJD~W2_NXL*%q@e2(25kS^EA`B}F+X?p<+w)aWJmC1zl+<><-?)%}7u zm#@%Hbayf4+-#Xk6vv|`00N5`as5pe)X8CnJWuji6YKVZ-)~ZWy;sx~G>3cmX)MWH|IF+VBP}YbgA1Wft?(lwSkyT?CDw|^#BL;TTqs(EDqi(lS z8I&xbsuNTvE%*(vFlWD}D2G!ciw0>tGMrAdf+IC0j z7a%fFx>0*GWlUK^9LI37TjxzwP0l?u4_VNJ;*)7|Q%+Zj+`9BUIfB>NnC~X-db#4a z%*cwjX+wr&k>74M|AwP^zKh15ECGB9`b<2* zl$~HD1VQLp;^_sST?-<}dYSB^O@g-)zo#@=Xa+rwJzoI=z>@O|NXHY}@^bZ$dZ1Jd ze5p1+xcId-Z*fk8B`<#SF=Zb>u?#c2Zc^JweXLZM zFwfn@mZh+mErH5Mm#JZQ#i##X%BE<~>pM9%;}{z*4($g$c@IwZdHuEAEgvaut<pUw>MQxKUovVh6^3L8#8>#loJr=&QZw`*TQNJM5hry znZYB1zok1p+%ff?w7ox}q*}UL$N$Ob^_Y#=hcNU;W_rBDvuE*<*{FAS(FvZvBQtIZdS`p-b5Vy4eDYSwvp(L=?xZp#%yCci$bYf?MeC zbbOPN^X%~ttdxiQW3k+Iwxp`jU86hIef)`CP+#DD5Z}4CxMf1gCg8L67=0F6d-9C` zjt}EH8|?KUD%lZpz^yT8~=XJ#gCEI+^6nj>rvS|DJU_bvT#OwA!%`$KJg9`z9~xX=f?4Ts`(T;<`3fDpSd zIaK~PBYP&9#Q)&?o$p`Fq z>(gax5mfm8#nzZW_L=wHF;wmk>PFgP5&r|zelHiZpF&VI1xY>Lol)PdzGA>To&TuA zF}pibR>L;M>aC8pQ&-U*8tfQqQ2P7z_**DJhX{f_bA%BGO7QWiGId?d1ue7_c1dKI zahlZ{f=i!qcTH?{hgSxq`Py?Ivjr;ce`oX;c?j^ORU$#s4Y>AZ$o!|6I4d4@p}1E( z6eD)IYQFGtDv1E-bLS?7Rg{}gtd$r~yGKWV#&bC1g=k;?lGmhf;h8dpF=6vaZbUvm z!kws^6DBB8|MrOUwVFi8>%~F7W24yZI3JpvOnqy7fr_T-^+cZyUDa5{5HTbiWN#zw6_}%5{_C zoFMLIt>|lA_>Yl7#75A2BsVJRL)TUGe7p>T|gNb|@K zjHxd)?r9OIK`h()aH#HfW3umESv8>rC*;m_$M;$J)PJcDQvaDnnQcNABdtIWn6O`o z2;n2Q=nYZzVymE<<^(&vQ3>~;y#7h zKz@dQm%sF9RnWaaBK}dt8D$iyMrb@1>Thz=E3N-gS4-~w+|0pD;Hk{Pb*wB;MX6r$ zDSrvK%C!AX9x<&J-dKnb%o{0z5h=|_#9q^29_9mmFU{zK1G=-EGU=mnq*~B3xAv)( zrb+I>Rd?9g$YRdZd|*bBvv|NqA$tb7`+C~IIhBW|nZ5bg9bfVo!kS2iOrT4Vw#iLg zkCEV&ZVW&**fgV{k5`U!WBT;zVBWMe{z2N~yzd<{qK;Z0K_YC&e%pN_V7aB)*})62 z>{bvAS*sWnDt{_-2oJM59O5@+iySgx>w*!O3%czlj#2#?+g*n9)`ZR-mablYyxbsL z@dM9}&6(AxsfEq4fMHOnf5b|y%=#3zFsI>(oF)}zkX~LDVEEZ?ZKm>stM)6`2&_=G zdxeU~_i9Kdn1xr?k0Nsi2R$&lWgiSmrtSUZ^5ytWe~ZaJXT35dOsrVoIrbOeXT53x z)tyw^+2ZoO8f6Jzi6$W)tCJvVSut>$3AdqF!``l=F@sV86Qj%2FnMVAh0%QEQLe`- zZB^H!F5+;onWqv7thC?HMR`@*8Okbfo%^T~U%vn9RbHVDH;U&Lngg-sn3w!7-rpGx9&8A8m%C?n->ta^fZD7b2wv*2} zK2-Cd-I3P3Dh%UXMB5`nxi$INiTrmA>N~xspUd$_c@Z1C{uRJxy?@fR-26X7=i<-w z_s4POexLjOZZ2bU3rXZo8@bJWZeuASRwR@=v&}VgNlEVa%j7cTepe|;Td7>8i-mCVPai48NwhNt$UM#~RR=b?2iL;<>e;Q!dhBRQcIb@? zL+UnSrV6xTs^-m1w%#v%UdoB|#ALUeUg5eS4$N?<9@SRdDdvvZ4sWws3FIq$-FM&z zSQ8WXWbZE~KhAkm4t4+Ux_m5z8?TiNZ~@O0FEx){zw|BB z!*1$`y2YbWz@7DsPdU>9I0UTCcIzA{u2|hBwfT;5XV)&tq6ki3t?IsE{@k+MJlD(D zPDA!tws!)M5l{}p^O64*XTYu7wJCVVMQ-%aOFwM&A1Csfm`g9}Ox4aUA zhfWOsUFLI}nev9T{k$fIVPbp+SF z>;wO{av7dI+w;y2*I1MvPuksaIB~m?@0hY(9nt^^=zuR@`H-T$2gWcjy3KUbdS~&w zf_5HVL=BwfU4k zHfEhOG%5sgR5~h_VN*K?4tq24*7jL2Uy=M3>q&Qopufd6gB`|h%=`u0TN>8j*P@LP znyT%tDO$Z;*A!<|<=!Z$e6YkQ&N{J;UA@63fnkpuyhNyRyVjI5te#wqIQQZ9LOAaW z1Vo$CoxQ;1+fWD(Kd}2v+PYq?`U9`!2sA=Oy1$aVZ8pybs4^*$#r?Qk@v3}sMOmy> zoqs+5Czq>Vu&_eZZo{3CVbOMHqrmn?#Fc53EwbL{4=E>sxN85C5f48qs?6-pt|oEB zIcZIl|KpSw@ZD-vk24iiyAb8R%tJqyZIV&HuW{fZ#CPCPiAJMKzDO%f#g{<#j^Fgx zKS6I!J{*gfFLq-~;~cou6;$mEB^^iM86jT)20^7?n+$az*Yi(G{*B{`mbkx zQ?@=73>P}AgDYs=xEeDg2A?q&^U&@-k>IF8JY~d&i{0PHbmQeRr8MT#?5C3h#P;>RxYuj+jF^izA!<##=OVICZ0Hc1` z;=#VL7mE*Tvu16Q3{pcDH*SpXLQ>QLIneVcn{=Lh2|aai-U7V^GxO%Gzwg)YJ`Wwa-Y92o;Z8Zi3P4$rhZY=l;Oza>unmg0?Tf#pwSx8%v>R&=jA18IRYyndtY6aAz~T{szIQpM%&>>Z1H!d~AfyLES}P%XTg1wwYQc?i zSB%CzARPT4@V}AD_D+`0e3WKq3;xPfz-e$ci40b`48!lf;7I+x2mCMflCn!;anGlU z&F9#v14uxh2l2vVw3kBk&Kn+oIFwVjd8lw7t!k&3=#z zUfhn^JrUR?)ENL)%Krhj+%3T3qys2o2xOj}c@VJ7KY;*{xg(>6_N7_^djM1C(S=Lb zDoBb2w~LAFzYKo!zNf|hv(Y-%{&|{qb>fl(^c7-Gv}cq@K#e5tzo)bx1pKrHaj_%_ zdP=q5c`FsRP9MaV=T6O9z%m3+(JzG_B&-FAY4sS^GM~uQ7aP&w)NSyg*QfmcimFJ# zP6oB#cZ(mP)<^p`liZ;HQ`)!8GfI?lkR4{|?!FgF-S)Rmh6t|&_8B7lGVZnWtu$UE z8gfODT4m6>uJtqJ#P!bVsAg&vmd8jL*^*zh1+fY9Z=6r8 z{Vf8Psst)FDHELsvj~pg+3ImCfW@NBs)^RzHOyj%_twS*GcY>Rn$sxmHdy0_sDg}A zt2GB!gx)E3^#{rKE!zAHv?P4NyICQ5H(&VP6Js6`tI~R#^w$Z&*^il~bk}Xw5!SaQ zKdrv$bP?{8?E~4|aO;^ekh~+-Obq~==}H#(Yu!*qerT|Dzsr!^4{S!YGZ}?@6aPs} zPoj?mMAeC4X0QsEYflWA89myH5y;5onJ~WlG4z*se&GOlP+qY=(Jl`ZO7;$5!nh)< znK6YkD&&wERIRthMZ|Z7^8MMM%P~^bheJGrMblteN=)j7BGOk~*E9eGmigXZ;zM0n z5kUOCMBef!S_hoF1K+y===-pe%mG+YyZaXbH7f|Af5k$aR-3PeHTO-M=OIh<`G{#B{C%I+1Z*^dD%G z5hV2?^KeyAnxV_)c=rN#59#*310WGwZ4tdM(I0;;d35nYktesvA&@F#w6zr&^lJWT zEAYkvTM`Pjx1l!PWj3}4f(6PF!ch~tXGOnTU7ebN;pX^6#pWnHvw`3T`?Bt?_d!y| z`L7;cg2&@>7=y{O`v4d9ug1Vos|LIcJg&s~+W3 z!P8ivH7EC5H3$AWad5QQpY#rb43ru^-sw38WNk{ijLLg*hP_@wN-I0$%z1tKybGAztfGeYv*3=KI1Z zHxfBnTf-H8D#yS=l$NLk_lwu3#&&p(PDE0Q8Y47`$ zm6fUBL9x9XS_W92V~*N6im^Ig8r|uWZ4>7s)E2|7Y+6kztSg%I5I>js0{IM2b+iTe z!z!xB3*=%!PMCHEV3HnnNY!zJQ=z^c;=8eIR zE50H@7Qh>HGrPt}QPC~#k0sCX@4KlPB`9u<;tSMt71AwEKH#TPHv@zwhKRl;%xh|D~aynV6)5Cks$H4 z^h5Bf1q)$#wuHOKlvCGcovQlI z;9raHA7EF5o)7FxhUK&zgFzE{9p2$}u>mk=&#v|9tf)F+k8Q)Oy#Y_V=4IVK#d?WU zOsVshaY9e7V0|K)gwB1Zjf*g(MT1gS786)2zVsAku2<^2+U$_1E7%0CZNVos%VV$e z1*l;(dr#8p3!HCo+kss1rQB&N<{y{B{y7XG_On}f{#n~Rn-D6)JXS8IdmpqWYk0)m zI_J=a)Yw9UhdW_(%j(9M9(7)YGc;ulH*EB`edZla64S_vd&84h^Cnr>X0&qFWl|UIsC)pzR7T!#ry?bBR(oi}r)W7Cw2_kummoA@7|GsqjN$78`>y)!iC)B02 z*#*?U4bR}ioX5(4iI1N+^pUMV+j_oBesnjj`kW z-~%W(PyT^KZvBDujv-^2&TR+0)iV6?_!*;!q0x|=F^}==HI|z?1EAGdgO8D`&C#Dw zQ#y4%7^RqVim_JfoYHF=KD160^_8p6k+jp(v3IU-E2Cn zKHwCl6+fl#7bf?O>^b0C$G@U!4}P~$mhE{S$-JGW7T>rG#Y>t^BlvuoPVaPz^KAinX9vy)xkYjlI!oLbh&IJg zWJUljr~}d+XyZiNm)> zaidrz{LKB)U+1rsk~JM3zKRktf2=qn+W<}H_sl(lgaq3)^arGclKdE~)A$fsiMn9kSb8LWh|DiRN*F1)L8P|3B z(Y+4vw2JI{yntCk0a9s|_xs`L8jrS)q3((N{H>v|iY zY@hCjo-Sro&b*+mITjWqiGOXF?*8F$2~zKs-Dw@v8RPW>mBVomPWi;EJ-d2;p`&T{ zzOaB1hb^DV~Spk+BL0QQN0VZ}fKZ`+Ey}N4%J`$Z?j; zEJB>OgN&2V@;C*L3=ag5urHGU;4qSqGV zoubMh5*V{pZ}pIYiW%aUU(*e%KTL-&a@)O6S@CpRgW%m^@u;EfYT?AxMuOGKU+d}o zpRTnF*(_V0Tvnk`-q-S;bz}VXJQsN27AyZ0bUXzW=ihL2jhd(I@ntEI6To8XyGaTa zRUKwln0F=wmpwKpNy1MjVmDa5x#U6p)e9wLLC!X~s$eWwH5N%Cvo)2(P3QM{OjLQ7 z3om-Gwu=hA7|bHy2!0CnM9mg1&SRc%IfQztU+Lj4tjwIM~|VA z%61u_{e8+l*>jEqk00W)VnxRRs->B2twIxH{pRRu-qyx~U^nFsy`W--Tzn~-`i3Qa zj3(H%vO3XBMTdk(YD8AiPfU~YCu9|}1T_=0Z-cpf%%SG;oJxYu-2>TeBY!&I9&7p8 z;@+}yu4TAis5*!67%6&5b^#@(NV;8(liFn@SN|P5;0$>lE6(Pfk*6kkN8M{Pb!H`xg(Wa>%Ta4=nV)NwGZjoUIN0%ILyvL{c zCxk@|fOps`~4Wq*_NvBQ@S@+w%@sWrzFEh22|aD{gAq`MVr{E$=bzNT-~K zxze6z|I38(DkXmbFN51iwYCMc8QG0sm8W zertrK6!{7J=Fb=3Q8Vj6NU+eE#i0L~pY%v%pVCK*awR~u$VsF>lcY`JHwMFM2r5Krkr;wr-}y81B2RG+ zbRR}tYILm@2AQW6K(NSmk-P1CDx`1D82LQRL%A_zK5GY0CmTW%zRP>@ZgS+2N44^! zmTb2`i`u=5+#!9v4H^BXsUK3DD$Dl8n&wc-#syn7f#NY*9(4vmoqTV9%^Sk^57-RC ztm-KvZ#%{G{f@CI~16z5Fmk|b3ZAgIvC<-d`_AE@E9$mhNdtb8WB1jWNfT>}*$~f7k^Q(-=XGOmt^CL4gfES^o7nf?n(%`PY12<^m{PL57*x1y(V}E0-%%++Z%IbVc{Zmn zZH)CHZJm7871bgj;^0+?^@#@e^OQcgd5(70gOwf*+J>kXKWROV2e2)-N$dR=XTbRT ztEbk!aa|%hLrM`-Ea94j_(@Ql2;WlO3iaJl0PbmO*+JO1jXCV(O?0p8;tX#iJ;PfV zeYf>@)?sqiE8` zKgb>CcJ9kb6Eejof^#^}tnBbecI#?VhTgQEjHKK706|1eRWD2LjIO8Hfapg;=VX9l z8TM*-x&ZygM47ypoQMg_vitp76mpPaLsuZ!){xnBL3RA8f;KYzL+Y zHj(KO(($cJ4}x2;T$xzDe!MCIq+cX9M3uJgg~NisF!Lr8S8ga~Z3<}q>x7&Yx00&w zoPuCOg-Ej|2NA$# zX7z3-9c{5=7Ha{8d5VI*TB7E&&ggbgm!t^|LVt$xwR{Vzqqpd_hdT22&(-k?77yUX zg_Om7mwG9GK^9#iC&Z+Kt5RYTqs+WXgy%zRl6C9gwF?Xxe^jr2H(S&M?Ls5sT`wdc z-?8r;qhWVLt!xzT12V^^kUfPPIx?xpS*Z-Mvy1Vg3ZL~!4?u_k=GN?PeeEl?j;ISIDWUXm83jNPU zcGr$#H>6kF;gqizNf@&sINF7|Cls|)F=U6AB^T;UOA#1jUA!B85ecl~!quN}EJ=TB zT#^{RFRez7^3CD(`tVSr$Wn1jZ%a13V@J0!L9(iD9(-e^vOZ^V9dM$Km6pN>z1@qr zwi}hR)U)k6(*xfD+SC1T8g>=JP%)n!(gEW9l&Et*Hig5No}j0(OH?PjSvT}dgqZN) zGP~&8gU63?VRCz{3Ah8!03S0UQHJ-KLTM^Pl5eK%*16r+c z-v_)*KABSMSj}{0N?OfDsUPcFj#ttb2#%iE+@2nVVJ^$S6dS>(k`66%J|HL8M>|## zBVy+?9wFEwbv!|n_}*a5r;-V!D)a>WinT`G@hoXjY9#&8kZ{?1 zi&LG_@OyZM&2y;{>(>(~7T%+#2o(#2VJUeJmVz{jmbYCgr!(h(n1_ie|6>wt^5%YC zW4bJe!%Igev&RU1Pi^(G2I>6{iuaN~dvvpl;h3)S9sZY?tl{(6jE_`f>D6En{j}Js z%swkM0iebxkxW91`fvHm@?S?wwx<@p5f=~HmKhEnnjZ*AWAh&9k%86DMP8Toy)wnuWt5x zMcV)6^PC%$Dj)70`?@+`XXU^?wh@q4KdO;|E^bj4ar8err0o~H;y;06^o9K78V0D5<}5x z9W0z%{L{Yad>Z&ST{ovi)v^AVgfco-%Ft)k?Of081!gi^a>b^=Y)uE#sLQj&oHJq& zvoDuT0C`DUPcs_+h_}jQwF4inOIj#+{mP+O1vGTSgso{`^RB54+X7sR>le6^Oll}q zt-mrS_jRuF^XT(jfq)7~k=p^(;rR~T<=c{8ETTShXq<1{02`2)P!_O8Cr9ef%1sY3 zC)~OiaAaL{*LSxd3!jLq{dfnkI=QMh`(p=IvI^Z4l@dEKg{#5hzM=msiIM&_u2BSz z$|BW~MjT;Y7i$2q4 zZw@gJ7VR85OFPC>%_-7f;o(d=`Bjwd#(}b?>)SVj`j(EL=xb;?k7%Fz**NT%I+pj6 zM26*a;|WD{B9>OAV1`#L5=YpUf(EGM~R{=v6jx`b(wvhe`M@+gdP@_?(WNa z%}~XL_Zi3K%gi%{r2{z<&wwrhr@Jm!UuK0FFfW+^2g}#%=9B)6duq;t#k*<#rk1{# zL7`LSHT27hK@F|c=btUoSaqW?-#fb`UWfQ9jLz8X5b_w`QViMGxr4BJUqqdX7#}grrnM=AJ&C~e#I`a|$yU<@S)8|>7RQ9s1T$35RwK&aU z&0~%D>CX*n_RJ^1gSjHL*A{m^w)mhdo@qRsNS5+$hHrG$-av_EW3R0w@<7>=_d%#I z@mqBi)7sDG*&%k=W*ShE6%zxCYr}=0hNN{v>IcPEC4VJI_aUTXNhn&(?m`j5nA2CRV!Wro!3WpOMl_wAIzrRp;5%=2 zVtsE#s?3%1Z1LO8c4L;zp0L)_ge%|zlI#~R`WXSHIsZ(F9bypvu#y6=3PU$=d`@U` z1qJzo)iZr%X9;{0_q&2L(Zkv@EJBg!2^mAyL>g&>dRg&NHAJR5p?YMFalQqGU>xn+ zS2bs}8JUnl!qcJQ-9;51XBLlB{C33GP(Qy;aeTK)57Voiod|qI_*fow|JZ#sT0*yW z1`!DqpR_nFeFyN8N{ct|QL0@;4H`C>q{}%c77%nu8@3?xa}622-TGQpZy-O?_V@W> zg1-+2wppJRaqiWohD{hp>6buz!5?NoA(l?pnFSB9K6(rb!{2ddDFaq@F`5vsv)2AY z&?yV*rHUM+fM>iv!QLWFh2jvc{U8;O(_v} zn0Re)j7ii(FqG9jgS(`rA){OoHBZsTLxWbS!j~B-?GEU>E-s2v{T8N54Mho*^Y%fS z?%}et2WijEI+XXMHXm$Pib}K0*e?8!30q`f-NE}Kk6^8K zHZNb!GBL`4JZq1*>3mLn+B)_3g4I8#X!QJURBL&@HEZ92DG%MUs{9c);%`ws)%87h zI_tU*+PHH{w`x#smRRo&lUkSL zwie6g(SD+Oc&A+FGUb5pZJ<{Ny-Cw4-*pQ3OX&-{SL*UaYSmS{Ss)utU}=z&`g^GZ z3RS8dln6o}k)s08=cc~x`Hxo!=cBYbABn4js$EO7j(9~b0=(86WU^l8bAnj-%_s4 zXqb^|Chjhp7fM|^x=D0w_h+9ctZ9zToZhV%ID|Y_?!@ps7Q86v?p>~HLLy!kkQFN5 z+mv<8S+}lteSG_b$@`N{Wpjq$VU(zUtv!zqu`-Et2D2?q^`Aq=HQw&h9_tyQTf1;1 za}f;YrcVR)MUFem->+2jnQiNOqiO|6#Xm(Am5cWbqUc{`$Y>ZfeOW@fLp&5z{I%?( zrptbujp#hUmCaYHxKBec)_h*hMp@}*8n$KjuG8tGha)fOh_w>AA$GtE+<1KkBrRac zvPnw&joz{<^87eT?#mvKcJ(af87(O0LJCBWe`>86$|F15K1-@XbfnJ3R#PuyKVtSS z=FY#G02m%<+KC$d#)WMesVkVQFXcTX_cEhj>^^lU!<1vWI!qetRJJ~ z1i0sSvDCn-F5tV zQQg;9)1oI3V`fyF7Rx6cOlJvB&x3kF5>m2tZkXyG;BfXlL;wIBUM=Q*)_4Y+7OAwV znkq1}tpA>ETT2rGTIJV`G9T{A!~%G4Zd)#z7C%k78R*PEma20v%xJ?`T95684WW)# zqJgysh;yMAU02mU4_n#xf4WXC;*(`gWep zm{IWO$lJV!oEUGOOo7g^k05!*I>=*pX1ZpDhC$}A#&;*@afO_SKGQO8NvT-XTMw2d z6ogJCZKd+#o_OJN^a{Um-R+8eLJN*T#n=T5ma%aqc?gpqAbSOW}!h(RM`E)@A zLCCJCI>8>;9d3aE?CB)K<##(PJy^vjSm65|EiO5ePn;MjBnHn++?N(*zdL;ZMT819 zrmd)wi^9QG=1lTl_DxvViQ1vUqdp)i%E5`&LE2>O9M-~Yz1j?dRL$(I&vv%DN`zo) zv~RZCN+8umf8-G)#KaOO5&IsqK5@u}La~OPCDR#5230^&8LQ{kom%So%=wq!0!yk? zf0J{gQzFBh|GNr_Mb?-V7_{@Spyy#>UR|H#RPzULh;vEnwN&p82nQK|sbyv0Snx{h z`x8-v@+q$`jg}EnL^Vn9>!FP+Acv-$IRQhTkg9v>&S=n=(_~JclBAuSx6lue2DVd6 zpGxp-cGRggIr8W!bj>_lZ%_suGPc3t^;U!I(0BOqSgB*t6)rK>m<#0~+kE`^jTVMP zRjYa)=vdG{q$F(62X`8Wz!d3+x+c<%agO)qz4QAc6T z?ibP3jHa&rjPOgNo~!ibum59`lNW7u@?7)T_2)iZ-ATIm4M&s>?-5_4&nc*UKHa@L zTXHUF(Nkb{E==wCa(E<_l#gu+^xJm$HP>&A#+;|OQ*GxC*DEJ=vZb?dhgzxxs<-&d zXb27CH$JKNI_jG9RD6St<=32K$)}iXpR;0}7|Olcud<-XCOIZsFIdnjHq+npR4dea zja7^+@7QOl4Vm{Bd9XCg}@b&Bw!gi>Lq zn&dYbcMlN!4fC(SvW_sBjLZe^QMPFeaWyVry69gkQDQbsC|!aH$*yAPisWXSGn+gk zD)2{|i&s=9s5BWzFJms*W4vrhe$l5z`-X4*$Y&`sg<|t*fOY+>M!RDh{?#Vg#xMpo z%KL`dfk9pjFv^mBm+4W_AzEXQ95w)UJ6GBTe1Fu(cf&DgSF%Q(CkEUqxQMAM@5lp-3npPbAK-W+hU8UFSEK->r5{_s0)t+34a!ixKL%p>p$7&x6 zeJmbzJecxX9h%n;@+;1r`h?3V*$4ew%}A4aRQyr08EfM)KQ>~K!g-tiIk_LF${ORA za_#{rSY|JV%cc3jQcG%W#)R}mdKKFJuGp5=0`K=@;nB|B3Z^d%X+JKj5YT~G@cIS( zcqNXN|_pv2=H`oQU zSXyK*-4z^ZS5QL8O+9Qr@c9*^SljKT<2~m5Zp1^-;vR7jH`$dpy>tkiS+UWM#bMkin(^Zhv8~WO+9gcwg^Bydc{R8E2WI9b%&>TWh~W!G0#~ zBACas7qDvXVT36nu;z8H;j`LcKcxGBqMlNUGg#Zj7oa-cJ903~HK8U^x0T628mY7# z%=H)J@ ze|j6weq<>gFcZ`#=K+v(ox@pB%H>$iF_BZ8@SHIt=ZgaAt1uIeb=TEwUr^QhRHnvm zf}WYjf!5z*ik99_ftoHMy@F9@f9Xt>gK2Er(>m14c}4ukUpoasRF7>|IWCJSo-HN) z0#iqiYtY*@Ec>B9vd+SU?_T0bA!+To-K;_)!CsgoAD4Yei%)O06$G8^zo{6ny=dpt zzig_^p2P&2^bUY$HO<~uAlzj*plF(T9pbRsQ0esQ5gAkjpUqEz6`t~03lR5};J41Um7RVN=kj8`~9LTkh zd^1Y+#mX;HL&HM2&+xAv&J!_(MU8#ncfi0R_M7J&V|Apsg2jG93@`2p>o^N|+gYxa zv5Z?Hhr~ytQ$uA^ZMmIG@9ny7%%}vKJ@vaGo8X)&nz2I;KmQU`con^us;1jVvx+Hu+)lZZ6b1@KKlTN}a*)XID1^us&mGdboUYk~6CjQ$r6AA% zvhMaRGX?NC)im{HGB{*tqAr$K9H%RmO;yw~*;e8U2!2v2f%_H*ml!|DS=@V_=B1=& z#j5aQRq5`tIU?A=d5BOaK@?JWK6*_Ee>xUNp2i5ub=cO4fw@5$omX0QN-num!=grprD8V0Dyn9q)^0Osu;f(ATQ?JBq zLxj%q{33`z{-joD0(sJBRs4-KtQzhZsUE@bOzU(RdF zcKtkIQ_*%I7AagjHK-J4ELc6g=jI7sI5xF7#Z6TU?iC$*;?wT!B;*u+6Ni)o8FQov z+}u1PlJuyTXm-@H>qN*3b;-l$Etv}SKe zdI<;lzWWb4Vm~mao6DS{3!H`MD|*EV(u2Vv`fa% z7M9TAQ`|H88Ndr0^7r#Na4iu3#f4k0Y@{!9{TJ8op{%ntgE8+|edunlA3vI9cg{=#5t~-dKwr`dtMnh~O<3s!jvIEtu)%3NFH<$;t^5|_N z7IkxuMn+J6S^*cXm_T{Z7QpOWCm42fS`UWG(sDX?}E2frM zYrII{wi&=M8?z)BvyGfdDZhjQ*Rg!Hi4c1D+0Iwuz2*{3;DN)dhyPw&kK`ZM{*k9F z_$2yLP%Q9BAra?(y&))A{tP?Lvnp7hK?5TPvohiiU`rc32lvJE&o@eGJL@)W>DS-( zoZIcdL8K_(!~#hjzZJMa2wQ5NIB5;wUeKE9_s{pSQtCL3BC3z-!t1z4B8%(BXNs(w>}xJf}{pO)LI_(#>(|wj9*=R`57_KGE2M zb$+gNV#g&_S7rxqFp0=wU4GEm1CMN_79J+t<28Z5 zg1?{&S;B}O+K@QI4-p=pDcKQy|1LAQi`Cmuk;;_(=$ zC|B$RF4hBniVsb}ua{SBMohTxskCdE!sZ_`)M+1gKABVfnTwAcXJR3}>^vc`9WAtz z%m0|9SA+HED_Fc8_~PvU$CPINQFBM*x`vHTR--Q=l-WiC<2h z>j#<_3h1ccS!i=l6id!a+%p@wTDy0`w=Ghjy`Xz2299&ap6t*uj~V9EtB$NW5QS?FKzwJnlW7H$b3+I3)oqIO7<8iY(!qk%ZE_g zuiyG4X+)Je*TCFfNOT>m+jcRhcH75DBd!(9$kq)_Oj`bTvhFWYtF@`i(9RS&9`%E7 zt1j;Sk7?w4ZfT9!7tjTC2jEcyHw3F!Ms+yS@UNq6<#opzQW%1VLjo@2+d}e_b zj;)^nb&?Br#o4t>RWt6-2WbWLXtp2~ES4*Y1v$7iAeUjjEo(FD6^Tlz@)08u3MX?) z>OM!Sn*DEu?_5_~#}qr1e{j7DGt_*jcc6|Aeb|%mgQG9U)?1=v@sKUL_^3fRePuUeYrEQ%X-NrHknr*P+>9YYj-7HYxzWBrVtU#c)tfJ( z8{;hC0=p{Af28h7Zylh+nF;D8V=9rG)s~IF`;Zdw;bQ@0UQOdIQDT9}Y$VBmEu(;n zkll5qR^}??G|%#s-{+9*W>+$kvr({4)oH`#7AoCB1C)b-1g(cUpmENE_J~}q?IVuS zM#2ol!BE%oclvli=F9mWP0UAf;4_Uh(L*AS{e*I~jh5MKY?98Bv(o*zXDOWH8x055 z32Xivlyb0s%NMaD1C3jS{+O=iDf@j5F-z1{# zaL>f2GqKke@G^D+OE2jsa{(Y)qo@1Gw}6s_-LVM)ZE6(Lr2R8_Q!sVRY#1OmbhM#L2k)|_~VjeGt4R^00g6~AXKM0T5Lita2 z^hg!Z|4vUgZW(RDXhRDa%1Yqb*z`pN!En1r=E`XfXeaL5nhDM{}8_EF@gfSGvj|Cm}nN*^HI$>oZbQ*GKI{Vv{a2SLl?ry1-p zM9G@eKR%oPyk9uN^2GlYCjHEgj#7DK78@Mk@W-IGcn<^ zDqlGHA_od#*8*h}QiHCQh+G2wclG1yK$;F3@VdN7Y^ydO^mx2{7|`Q7x09c)&Pb>R zhnQI0a=(V(QY}am_h%NZEL{f{_T+=X8nX^C$=dm%A%FI`M&~<||Ki^5V%Dc{A9oBi z+W8uZno|>@f|A~b{!5+Fpg8SUV@9h3sVQ1S!R+vo6>i1o#{BCWgwJo47^i$ss^gT^ zU4Wayqqs%hixuA*qxCksCDx>MS+7&xQHtQ#8?B^bML<)%?4?QSxs$IKN3!>TSR8Ln zazYOx{E7vUVWqMYFbOI(WZhm{vDKkGiw6js^u(W6bxxt5cw(| z6{7YmxE`-2z|wu7M~z{v3xpGHPw1lQ0flE%8V-YL7QM$}1?gc7^C8cC4lJ3-cOq)e z*>qJ>p2p%z2=_sbisnr9=#iYu7$R+66aKL;Df2~*MZWi7+MFx*tx?GCh5MRla}W$W zLKA)U-EB`%6d9O8iRJsqm<_Vx&Lml%;@D!AW}dxc_4vIU?dx}jV~(EZkAG|;iaFv{ zyZt09y-rnQIu)&<&3k98@Wmncns758T;tJb_(UX?4g4p}NTVypb>@ie zP|xs#Bxm3khF)TT-4JX5-SfhP3345=dT3yXMCaDDP)Je7UuJfk1OM4-M0Aje>=MDoQW_`utGe6HmLAryxo)3cW8#4fJ z8O1Nl0jE-apJ+)Jb$6)~&z@ZEF!={nO9|rsPw9b^@;~+}Gr8GQ>!uw|*zCLiF{vb$ zH;CMOr6!1D5Pmtsl&;M6Q7=7+3`KzjJ!FcNOm&LVXKEyTMKvJgTh(Kd9fn-FA!r{# zQMy)d6G)1itCoBK5Sx#9RKF zx?HY7F45jm3gB(YXWw%?FO^NS_0iKocMAxUEo0@pTxf{eDAAAGq-4S2X z6dbk$-xK@629-w^4?nOD<_s6#4(M7TwP$gP>ShXawH2m?{#k+Yoe*oDJ?pJNz}*gF zM31&kHDo)jKi;1*ZU;@67kJb-9=Lf}i_+GHDa;sjY@~;?ji*eym$F9#^TMrw8IIX& z4?dprgVmq6m~DEJn)J7hwS{&FE@Q}oQQxRH@#&;D&`7xJ^p5+NXhF#$wa`l)vpr&aNK1FskNmXrs%_?Gk7139>=VgCZt8hZEUD= zw@H@gx>(UKN40k*g*KEM^2$$1W@CixUg|Xo(A0Ngok>mMUsR`f(_AjP$TmEplyDf6 ziAzf|gEEOYihSWq>|BQMYSzo#pXz<1S?zL)W08r6A|i2mUOx5CS@fEg!<}c5Jb@#G zI$;{gpnFfDxuSNgTFP-s_viEAt?JM7+$BoqC0&+XY5%9_EaRGd+%8Uc4j3ivfDITS zp>)SajqaWZA}L5o_lD#)Fpy@1q`*)bMyd#c4n%1KCjv_Si2t+a-QM5(T=#vQ>zwa7 zRTl|6wxjcPe@++F#s9FvQ9OBz1-}rcw1v!kkm9d~@UzEog(VSuv!X!xJ^sZ8+ zM@YBiuF_)(3z{Qgg_|&v+MDM-%Y|t>=V{l*hCXyw4UB`|aW6E5s(xU&hF99$x?R+b zGdttFuSEM<7+vLda;)PRKm#O9mNZj@E=QID{h=K6-NogZ&iu=6AHKdw$5bdeQSUnU- zp%BvQ@kEj>1RfvQ^v4&@{oKE~TF^=8)PmWfYF`NM ztvBvfe)<6Yr%sT|HUO(*2RZEy3sUX~~SOyBq|E$nGDnF86U zd1H+KLjk=@G3x?})erTZItkj44e%rLBHOrNHrF@J?uSTvT|Td-Z~he*`Z}dE=+G(- zPi4$+1-Xiix4h@6;2gYIXZ3mx0K-NJS^9#i@OwN1C3phc8Ss01uFjz*+HH#lwJqr( zte!dS`<0lPL_~Iy6lRjF(pEQ24DGtni`O48DuSt_On^HE_u&!__XrFMukt3xf^bnj zDdKgKs{x^PuwVxp(XFTwGHfk4Lkf%g1(!r(Y8|H;C#Q?!ojN{IW z$l4G|HTQjN1lYrsxw;6`!TB)dUf>~5ne;1okV{dIhoZ2mcZY^uq5iYNZSzQ-!|SFD z`aHyAN0a#o|J?ly%l3TAWEt{K*yOUU`XmvYod^EtDDv8Y{F%;H&s4itxUjM-QfZb`ZAMbg zZRg=aK0Fb+^OGyml|#8X^r3CeywsBZTH1&h-+wsDK>txy*D2wD8Mjc?=(5` zC*^-se4$3$zkPH&2n@Pi63`v@-V&|d?8}wmc?7okuxfNrAcJzn^7q}*JC@A7r&6c5??_a~!Q0hgLZy8S7gFD1U9bllCdt zcRGd<)t+P0d!>TO{*(frxI>P%1=54w$oDx?AKQ}^=(tkqMjFK3Nhgzn=jwIC63gVv zyz!O8N_^*cXTHw5*sDtSLg_MOG~&QOIPf*WOo-*~++$_Rbv5nRc$i z^9-j!CMADo@F&tts$!y=iD9d*71HX?e%!L%dv+1z4WG$DrcY_g2c(yQShunr8!s^p zmAX+~YS+~eXm!$C?|shYJ&!mAZz|6dVV6AIPtJhQt?}E1_-b-yabsZk`j>Yy3^ItpckE45T;rz$>AP;ljna_fa1CE zq>+Sl>lp`i=>+8LK5%${k4r$}A}eepV3TeAGJjEvXV^rhrFuztwvgu4v7LvXthuxJ z7i%N$fG|&d+R~ypj0->C{p4hi$@V<6u0L;{ruE7oNLXN1m*OaTqj8Y#6GSjBn+>M% zaQ$IO@%({*X_2`PxX* zY0r-|{6FA{eH1F50?3^Ku)7{l9ufZcJhe=$(kEa%ce74qpI7kLM6|Z#!^I&swcHKO zF-0KUuA6t`QtELsQ((t#UBv0YY|5+h_eh%f_mB6*D?+R@>Ru7tt5F%C7nq(AAw-8} zY^MC4^aOW$tZ`^{FZhns{%B13AFV;tm0_}>y=aw6=k%bu9ZOj}JbIOW93wZnL>I@Z zA`*?&7l_x^+P9%!)kR#`{;^ont}^jR8f2ZF9eavq__+D1Y2jgnn$U%eRM$)2w2169QX`ak9oM-& zbgZfnxOOu#EK?|YnjUxS%7M5MgNYM91?tO-wCCXVNivuNc`0# zOz`)_?`)&bpQepj4Y@~t$bfcW%CWFJ!F*XTUbd=~^hZhUp?&U=e z3uO<5=VS-(V=G4Ft3n<)Fva}v;{F=~OJ7pbm;J@=CFNkpm7>mrKXy|PaX-=JslPI? zJ~gcl8QpZ8i}T6VNAl_#zUnx>F0UDxV9vPgcOi2G{`e4AyvLxch@_wDks3fnEz-Qe zYO`#bfF_x9*I6i=pnM|3cq6H2TVOR*Hnaz1RQwYgmgTO_>v^(Bu$t#8S@i6)L>e3+ z@*G^EroijCTs=q(7gspy?euF-(YlgPSpM+)Ps_nbDNW4QqI{yKkqdFgB4To}AKTR9 zWtm+Rrp=_L zh#VHig?P_N-&iHcVRB+0Y*SG?a$d|oxgfKC@<4@-nuvMjMm3cyE{<+`zRvu!W%bXB zk9nb6e!k`Pt@aOWxh%NNI#{ZgY@bi)%tP_3Gg3o(PN3}&@LAWYJbt2P`>wjg3zWJJ zJ3gx*Dx_vljZ(7v$44>Pi_0Oe`3BM^7alRLz#m-AQ~L{;nkZpO8*fcCJ?DvDr|Jh=|02sEljCu$YbT0HRZgpt3^c(j!=UsFgy|s5g zSX1&bA)PrW%Z(ledhOy9gkEoS)4%^a0fks6Ghyzn@=J?YZ)|Gc4D>|g`|nCcer1DC zcx*-aIV`L`g!>yj)V4getA!Y`FiEy9?Ma_wsIo0Ai}Bx#;BM(-fKQSTk-YULfwz+a zR$g_#k~B%LpN_HvGZQ8GEuUePBiGi$Xy`JxCjjqN6kB`)DZL(uUEbLcft|4*#^-s> z$Iw`dpo_WDn*rMP^r-Y)-!oODJ_d3t6(Xugw5A68u%z*M)v&8QsbRSxDcN4j*myQe ziOLsE7S-ZKSywUq+q$zjh8;0U>wxI&ys+Zseba}q_GMFr3!I#{ar1hS0}bEqj>r3$ z&FZn^yY;O+ZQKyr0B(r~f{D|x>CjVat>c8pacoN3hS!f1-|F_apLl)a9Z-AedE!=^455$;_b{? zD`m!Edpb)=*`PF&Pjvmy4BZ7fto!7A>r~L`A(!$3k5jxez9}{2J{a9c>fRPWKFJ#( z=2f4f?>ImTCs>4kje2aAxPn9ddfOyNOq;YH^*dQ_F-zElkJq;J=HDGwX}Q|*jpbzQ z2-+ICWy#>_ArdIcifFV|%LUH^?u(hk+=IV+ zC&ozsvB%lq5_vVEU=3AjH1p$+z^R?G@h5wIAm$Y{J6VM-)v8IEaLDw^#4lxDHkA&c(5jpgJ< zWOmM@zvt!2h>0MLjv~}qNQV)MBS=asSO}humB}|aLOaG-f~py0b-Ek-9AS zOY!H*QMu;oiM=dn9;N&EqgxwjHjbsF6+-C_bbaIhar1)PnMor2a{j+c5rO7y2L{IC zjfgRmISHLQqs<9$2l%Cl1dn66P){cyi7uG?9`90g=F@ElA^dw9`$hzjP9J)i_J~cf zGvjKEX6E59&H75w^$B2Q^0MD^sli{%!LN``uS2MIlnMexS<;KPhq%*aqRbnmgpd*${>G;UHiajfTN`ZlXow*W?s)LGYld4YmAq+^*+P$bhF&b?v|FDJ$Q#^%**JIU{sR76PkF4cRNI ztQSq^`L}B;1$;GF7|LJFzs_@!eY83-h3QeOl7~=zK-?|u3WjO$Jz*$%nvu}>BTHcM zBfBvWcr1swH+851hT)&ke20S`cI66n-h7SC(Gt#3o5h`R&}+qoAJkf4AVft??1PRT zwGaz?Lr1h-Z$qYpeSnr0lMM@E(1!AWq-<{IJsMS4%kVOh9M~q5NBjh{%bqUV+fE6Y zPBEs0$}{h>Dx7l|SeU?475tiI-U?2+^IXB-ql47Km@Vs0*a9wYU%t$mUnBR@ANje> zj=&RW0+IkjlHAv~Yz-hx4+Ze%^ah>zu|kRZhP&##xgC19f!~K9p>8d4H}j+~Y;zqj zToitaEi>+ci8T~mtX zi`i~-7SzpUrWoa~^vj~JbB8T{y0WjxH^=H&K8Y3O`-yDwz`Vo!s_suB1xh#G z+Yxf2wl5ev^e?}pn7ihoO00O&r6iZ3(f;= z5$STBLl;#k0bGIjAbT1QRp?o+Lij7+{lBR$qa>4s!V?iA?3K7y!io)AavBLw(Wwn&uA2RyCFW%y0GvFih9b!lK~DdBk6d%MaXJ=pJachC9gURmr8YwsUPlxWM0or_oHdpLyIZnsUN7) zP7xE{^F!fXX13XKD)>3iSy~KN6yFiu1L7|&A@8Y2U*4)vZ=d8W#)_IOMwquh7+w|w z>4W2E4w5{iezLRXqwZy@Z-TB=KK8KeF`Bxle3qnP4&|`&X%2N;S%lO3(~<%q)K?uW z|5-vLz3BDpy5?h;8TcpwSyQNTeotJ5E|Mek= zuXs7F;2Xo3VAv-ARP-WbIK7$a?NFdyOu&hQ?NG-(hc_=XuBG3{u(s%(QQ4`;1bcny z4lh9aJ1vyu1v!kqq^6$s7fupwU^?n7J7s~gCdd^^WHOz@H7y-y(VnO6x%#i>GQ?NW zIluTcGiR5N5drs)IGYlgpWvkgCMH;OTI}j3sKZaxRZT_#D6%E!@$8hwk4(OHGXkez zVBde^%BW!XqPR1~sULxC!F8&qbpNBOeFb+s&%ao{-@CcXlp7tS1}16r3Qg%!j-S^} za(PV*%WOg4;na4|2ytK|y=RiZ$$H7_?sboYhmQ*oqz$Mr7coc4(bmFN39d+i4Y~Xi z=J_|Wp`_cWt#FIty!1{KJkNk9x$ganeiK3vVhLxawNy{rAW@CVoO zYC<0wgD6Fg_yhw-0kk<$biJGs*YdQF4EpYl@YON}dd=eC&v&4e_R`?m8&eB8%S7Yc^DeGl9ob<3%JIfJHnRY>Jp z{2hL$%i;Ss{!KXzEP_lhj4r}_MAn|e${*Znk5b?Zts|l2z02HJI)JS%!Qf;Hf1BDO zD8#!&FyieqjCVKd((3=H@|Sx_#?WUbo~0cMchQZCzYE7LLNs zyJ|EUTVPZ^D3%S^VFqgIoaJLcE`_DNVSNOQ5D4uLf$p4HgIe9G67*spf=Fu-Ux|a# zRf#le>PD8gJ@&K$Yxl0M_Xo*!CuH{^v?70SX(aGjO@|um%oL@TV0!>g2|FG`IghKQ z$v$ekpe910o!wYT=!|14^+)@Xvky{VHtPUk#iQR_j!^M|3P$QWPad1d9xOR=>3=Ft z%}fF`MMcg@u-=A{psS)mO0P%`ycMewcMX+YynEZ6j3?TRqp11`FJ4{xeLNX`#l_b` zH-$;vEZ8R-u)52}(jTq6l`DI8R?eYyQ4Do~m$4!m+fkH)c1_YX^DQ3lbC+!+8F=w^Ua0C%hpd-7M`Z4Yflezwr9#zy zmSURgut5o><5j@llNYS(tu$51Tz)-*xSre*T33-25TuuHJs$1u_&3z!a@q2JKla6l zgR(--xmL=vloO_^-H`le`x^8sD^m-ipCg~(TQ4AXvKNL<`k{W6`E-a#p7t7l$HALV z;XGvmhZ;P?IF5kPCUhjOW*5gJq@tgmq|)CG?eccp@ES#h*SxQa?)c^ zLiY{Qkj7+em}fKG`Df?I;vY0yqbvA$2Qt`YxQ}j*is4PwHu1z$O8#sjQ2-sS=rb=z z=NiR$*W!NR>Fl8OabN_qRuLpgYF&kpIHV=#kI_%QHCUd4|$m1BU+!o*)^` zn;v~z6+cwjRQ49fYGb&9^q78yts8O7O1}Igxjo0$c&0OFo9N+GKe4;KAoJO;&+>VILz@%CZ zrTO;B=TNJEsG^EBW)scZmzqD64xQQnu!Q)0E)f_m;AH6&%3CtjoFwJ}L%Kb>M_;9% zLwBx++@hx#Vudo%_j){-Ezjs-j#q}6L&g8n+pRDZj%-K9Pqpa@mSn;3n4}_d0s}aw z^=th8te;MPvtK<-Y!KZ1e1R>YsAfXoG6TYGTRPingTCV5Jap$D17k~&+q=e4XH?Sv zTOS;1ko@Ny#7wKS{K?|K6?8)^Fx;B%1rk=ei2t5>tmeISN5)t&``B(d^57^}F;OfD z>SUS8&*bZ5N_YSD{-LNG5r$EB&N_4(ky&q}fzi~Yywo^W67#`E(ws0s6(Yc>Fi{h? z{p}w&YkeNbY{-Yu78X!~nR;yiA{_KbypW%D#gCA=Gyw)PRbvt@VcJF``?-fZg7Ehw_TjYC>Qi|KQSCKBLPwDTLuNC zu(tt?l^h=MTQT&;$Rj_9e8k!P$54p#Oyh4cXSoiJjEB|?c3;M!Rr~SjffGXdE&4CT zf3SckC^!bFUg=Jk7=`S-9N~t2f8yik=V9)eq;vYRYtanJ0C)%ETC-Km{)l&t+ganWt|{?zGIctf!na*KW)|2Iz$Ro#3+>A;HB5iK#JS3I^A*r0 zvR$|E(v#X2IzXUbm77={1TmiYt$6fBJW&xN<*~oTS8J{IjvmU%A4HPcT{?H(%&~j; zRrI?WC^Qfk{dS1RSzmWAihv%4w8|;L3vtiG3C_B?k$yO+yW+4njpBMRL;+)Adhd>y z41MYE2`j1ph$!b@QTa+rU3Z2R$w)QEs4IjscLKMQ=Xu^u2LbQeJKoEu%C(D*l3BZv z`eTa5FJD1q&Lj#W6VRb{&BKP{xw4|OQ>W2B|D$T;))F20eH?x@_o3*=a#85bikX@8 zy9JybTI9JeeLmnio5jJ`pZ^+mbpU1iAH2K$O@PNqakK6B_rwq4au`Lxnmb0!f9Ch&I0sOVK2-x+;C$F@;X;9pfN_OXe_4Q6_kTL__w?(*hd8@rFcO;%CEEunIv zojZd&BhQSR(EP^{z*~(8eO2AXpBq2=&opD5+O|jkOpoN-<+t!Q*1wj|-rhR&0CE|1 z(XUol#`kfthN1{DLq*sALtbNFxbdTLyq5LecJSxrDy~e)D%<*^ZU-G~jd9^C4{`KH^wj|I`-FoDpCxB7fiy*;U?u zs}>$&3@eD-tW3yXaQac2zRq#|;e-Y-tzQ8j>5YhSKNKks`HVSVFV~#)x3A|;25rf< z&giRDk(L#ay~0*)z|zK|1Iv$Z0~^Cp>a9p(Am2_V{2+OQ^-yi$LKqp6cnz<-Ul{lr zxADa8SXY?hphnl;B@Vs0m@;6%Kpoqsk8{t&Dq;TIe)6$3MR*4 z2B%?A#8z~9r{d_shr?W;Vmh$2rix)7BKt}b7zd#DCOvMwFCZV~&tZ54+cV&eBEzfM z+n-1N5>j@==TFEJUh^j^+{8t$lcT#NHU-&uz_iei4mRJ7vVy|TE9r1(UYW=gTik21 z7RLuI7e102_k@RSq=qd(gjxUbjLt*MYvh7&%gAdwMOj=6Mu`NgJij(Tg_JAq1vnrU zkNEQru1ijxQ5E>;^4{`l%xYfgL&SufDCqa-&X3t_o8NC-RPvO$L5i=w&x~y8DKZ4I zR>3hYPeFt4@xD3@8;Q)zeVW0Vk;rAnaVqakz3tLf@FWilbHPwbhO!)faaEl|*p8U3 zJhbU*D9s+}vd8T5VZ=%EabXqko_Kd=E}-U0V+^`8*6w#yc)7_3XC;dTotU|)%temt zStRq#Bbv+2a2lO9(ZZ;`%u1r-{mv-fZ{vuasnKCoG^9xb%=LlXUYFNt_k}$`)B|X zQMKto`)GVi@IHyCV7)9zX6ouO`Ujd({%1`+RVi&CUzW z8X}zJ$L4-mcz;wg0t+v-?29*L#5M!URLG4J*E`h>+x&xAf%=j&-~FKRs6nlg)s_P^ zjP-fqC&8lhK`%4cKf|9MDT|(R((B_}`oQ1U_=WaaoMirFIwn`ZykZxni3eUrNN&|a zQ_=CX>rH`zUW($aN)kc$uxAQ(<#u%eEf^{s{gbU)CZX+{0k@+{y}6FjOQ4dE5&oLh z6(khh^XoTpK3AS#NOap zT$T=1A)D1XLLq(OOrb};9DVXZhf4VlLz(m326^$5mM=gpvC-K>^EV@u{zxW7{Px}k z3+tL1nTn#-7Tl{|{luMfk(FY!ieB!z>aF+Cl#3vuc#N1#6pyKQZOiwS>XrH~%&>#H z;lDS;jqes`+~wbc(*aEvBY9mZ+M@a;o;D1^$GY9AoTI+&u=W68esZ>V^9*fs8DY{* zDU`vHRD16qgv^jV%WMPjz2V0DVr75E18DJ2s0riQC^+m1ek=ksuTy$D#BbT>1oJ>* zV}(*xC?jr849bh@b~XN}Tj%V$ez2#pj$z#;mD)s}ZzZzzH{lR9^Z3ynuG$!x5pfLb zX|>yTFGEIoQ`^f*=i8T$&aqm2$He_XntpHPb&YVfq@Di2*1w%cuZZ6%0*4u>>!Wmh ztj~?eeyywo(;TY|HL}Go!8Zs!zfzk3>vu487bA{m10euIU6cug#11jj1T?>!mFE)F zvH@Y?o^2_9*dbv-`!?#x0zS^`zE87VRSspg*_3kErQeH76u-@n!;&(stBQAeboMFG zt1W>+9;rQPL(ImywLXtXUTt6~5cp--b3@pyTPPKovkrRcTy#&j+9HmQGYs^xb%MRI z(S6H*D%aG3N`-e@*0{aRmVer0T&cLBm!?loHU=T*=c;uHDEVd2Ua-9)?;7HLWz-?Y z=B~c}mY}lhZXCDnn+YJ6DeE1S{*S6Eil4{7$G}-#mZhoe#?@OI+Qpa~i{yzq-Bg~H zNb!vhhsBG(N4;Zu5+OB( zhvI%8g{KK6+$2`Wb>=Y}HZej)y%)`8-o^F}atyz1+xK|LRFcsX&2%oH^(}*tO?aiL@USUZaZ>9hV!_QJELgu8Z-k zfF=dDzrl21zE#N)lVU|TrTF=PUV2Oy)jK;?xpsAM6YOQ4mfc*DamtLbyfM9zQrbQ4 z(Qxyb0jtu!C2}A@+)QZMok3gp*TirqbrrQ%Z_zwftRwKFEsHwvCmR1{2BRe>CD8J! zX8mKxF8~SlOp8-ybyt$BkHh3nE-OzWCxbQO&);rM+_B3%a}C4iA7$I}32GLjtZV40 zwn7sbkfb4ZtV$mYb6yRhyrcyu_jA2i{azA2wY=ipo5?zT*V(=&`W?^~7~mVpznnhS zS4=x8a;g_W$QDFKt`hn#qF}~g_sKgKLinSd2Ut0Cw;L;q@#`orntC))`vwHbd zzq`UdUKVA2VFoa?=H=_wU$8IZDj3M1;OpMBp$r#0I|nn<5dx(*I~`+vNeDrs*Z#&G zEi(V3`gF`^CWpl2+;V%XztnDvYP&O=NXIJS9@$&e43n4+dLYzj*EIc8-1Qx` zR7FM01z(rv3Fh0JCv>eQ+)5I*@SQF=N1jgq>TGbS&@`;FOh zMEWAM$quE_mbS|3IQbiq^;S2*ykYHOkCVUhP4mg4vt*Y&UtIq~1^a zih-&(g@pL@NVddybf=8J@P$I#Q$29+gO=^SF8{t#`+|xX*OoTTJ_nowI}o8teF!#z zN5da%sq&0{mgHk5oJO_^W$=JH7=gZ*QS4fJF$Gf&73JToR=02++=88+=n#8HIAXyU zC_yh3M#7Rln!!G@M=fp&G^3n>J-i1)^x0KhfHhM)zw#Sw)b^L2(@a&a>P47c2%R&# zGT(m{!P%G%sng%?%PKw{TlMbnw6>T_tzwwl^~#OPUvQA zrIF+PBathvva#Af9U(4lq|tXfO}gxJ5e0c@1al1|bZX$ml{Kwwjc^LPj*06wjewZw zCi8Esn~*gpV{wCGyBC^bJv3B0rxr7^+J@4qZvy{!w3wVqd+Jzq9(rG;H$A>zHaWCh{S zFRdKZ&YAM8S?SaIE4aDk2OT2dUuxcPNqU8V^^KEreonR@UuKvRI_#OzcDHho8MRiX zuDU_vm>uI$>YstRL{#xsN_k87>L=+*3I!)9iUmaMyL}|^`dr;sWO+}X^oo-?e1L5L zYv!Ug9ff>AoEJtq%wIm@S*(ucN7Ivk6*bP$UF1TkI))gJx%Y27!2bF}3QudbTIgOO zp9E(1j;@ld>nx$P^XplZm9n!dF^{b!*v^VDm&C-n{zs~|Hb%9>U-MEVsWqC4OI4dq06(^zGjU6j)c zm<0g{N7xzp+>O?+v*Y<4d8i_!-LX#Iva_gJR}wU}8D1J9l%OJj$fir~64LQRhmeD{bQjcvwaFRLbXX5ZXSlNd`h1`zSq zt6}-F5!ICqzxj`$UX1N259gZVEsw?X`lyzbg<4morwLePcY=p*&J(DkwU9a=gzKNb zo)juz--X6sKy=QsKGOi9cSh5zS6iQYQn&!i$*_;+HfWd3ja3EV#sSiNjBjq`8yi^M z2dstM2ZH6kh}FU03mXEjT!U5gsxEVO&yEvqsU zu=t66a6R^1F35h*D?WDov`vHiSo{`!eBP-5A~A2LaB#zudn7^St(ICaC`LW@o^Za6 zElMm-J;x@Brv-27oLBHf@L@T%FSA{xeku*a=@p=bfKHUfC^C6}&)c!97b#sU)E}Y? z^%s4&H1XmfN^$h|cI?|Nen{C?2c=Mt^eH8kj#H?hZF|;3Eix-v^(A>f0SNM?@v*tz zi8*$moY$+`ePVR{aO*Lyq8=aCPdnW5%XMa^h6cqL>P|I@Y$>ab93=~aA9XLR47QIk zgTg5j{Kp()?K`Is)NI=G7JJr;EnC-hKO7{6;WcziIBid?(FU;SJ8rz_((x=8%9k)z zA?PlGkvAOKOYniQ`}}*Vk)dA{!q3?G)%&%N*VBrwicOKZ;-8Wms(t4)HL56!<7ls_ z4k*_?0--Ift<_eXC)m-x`olw#g2use^}bD{foJYBznsG+>fA)DR7me`$M zU|@u$O-h*-HNY8U-1jM^R%UF)c{=}>!8H?NcIrKo-V0>u$^+K25Guk3|Mk{I59Vkt zFSB#`+>bt_k>*jAi5H3Pi=jJQhk$M?LacEA z%CJXhL8T`8A3>`$(bVKuC0Xb`4iw(F-Y)vvsP}w16q#R{Ky^)-yDWZ}Q(p}ZL!CwpLSvXmb@9*HLd|QoKWvSz4B z{43|GU8pG+*G2gn&a2^y>Ql*`*-Y^tUF2&+xtkz2gENljg6!lJb-L|cWh~P*lx(Py z#2wzTt-GXf8AkHCy12qE&1Spn4)s5@1s|})r$+Ny82pDRVSN-QHpi?)bcd(6rzZvl zv^wWt@ND>Z{kbo1Q`#ot-!MDqk07(w7ywHc7a4Z(g`?~)}q}vcWyw}ce zW6Lx-D!}$-%2(umR{v9Zlx@5#!WQ%*$uvC}^&;6tzwQDX&zkZwqY@J-|JjEqKf(M( zz5TH)Eus_O9JXAmBxR_Mt2ho^yZQ;dhr#a=$)C9(Tilqy=+n>>VIX~S9+Zq6&L|9; zb}y9z3&}+|DWF@(uHj@G#k?FZ7>Hl?z*PNtT>=w{>v#bb$!P6G$^Gx(&ON`T)Ad4B?M=aN6hW}qa3wzV=aSC zW5Z<}E!D!kAE_YGXc3fXJ(9tD_DAc$)trcNhhqP>$&GXU#>yr}=0#q zU)TaFS1^=+&jG9XEs$sdYs3+7$?uV`xxgm|uX{UX#z)0&fB~*#`XVx+h4ona03-FsP&l z_x@c5aD@9o>12&IkK)&hbxGh0G{r}YZYhW8~X8P{hel2Q^Z_)f^M zW6@$amIY}QNqviYf+$GmLU{-qMoe}ywnxsYm!{MS$NZE+yQYb!;tyT8gNsKx=3j3y zCoGql?m1sd;LVG2#!F{1hto*0699VPd1Az!$WE6*s5@)o^wCIWbe1RM)XKcB%AaEq zKGxKB-MJ21@U+|Xv#S_aynu%X<9{%pGTQAzg2}$9=>|J5s5q@nFf495R=}qj`yv6) z&rSavUGOUTC*KMs4E4~ZYyVR)@B5CA^*wGs-oZ1^^YWTzv;>}|t;{O#aU9-=gW$?V z5lQr-;9P+gCk?x*z9Rj%Mx>m7b9=I#-+wA@JkU8!fY9MJ8k398;IJN$ae8x_-}>*q zNa}SP8kPqYisWCk$s=vWUsb21Xo+qiWCwBhRGSySkj|dAW@hpZteo+^jAnAhx9dqt zna{)vC>RRBVUiK?vvPnq7g>CKYPEL^dcn5oY1pJ~+S~U)kTzy2wVmR_hU=9ih;mPe zU|m%uzY-CFxF&v{;RP*}O|ilC|3<>{));DdkbrR-jSa?Z;+QY}=sF+oILpD3@ecMLWHN@!opk8_#05JD4X1dc-_ zXf1m{KcsCed9oZP2DGR@w>;0~Hi==Y9>Axr=nxym|B#pvR<0^vLLLrDwVrtj``xhd z1I(MXQHxlI>R=ku<6s{1yMhQ3w>wl*3aUj@^+1cA7D`0^-w78Jm)Zja^PAtvk1-sl+(6_Ebp?dk3O>r) zb*#1_bD5pFwB6km=)zw?1L$W=bO8C3wb@;jlto_?yCaQ~)>reR{!MdTt}-da_NQm* zyy@1#-9Ob-EXSQXz;h%>koKCR%cRF@W0%g1sj_xp9u7Lkh)Rzz5Fio@_Po60MlYbQ z&`K;EO9US{41Y8jh!dR*+t9mR?=NfQcjf<2@E~EBe&0FR$gz zh%5C!XwTq2_Dx_{l!%8|aZg=oeJt!>;jE^$0irI|&pCrC;JUR| z2A}+v;+-wDl8!?wRlO^ySnuCsI!t`&e>j+*K|E?LXWRgSZop(-qRuHT8sViUG%W19 zl4E0*oW(`qFU2@8Tv>O}@YFh2O6-VXd_Ta#7OI3Oed^b|(KIEizkE99kdNT&Wfy`$ zz5U0U%;G)x9V1@4Y9$mTLcW+`zDqIwkII|5y|j3R5D_8}N#CAUkYzTu`IWk`i>M5O zEFcRIXbM5hZw*+%JDv_=dnvvno5(sixA4HW;WQx@c+tCALwew6DsOq<#qCAayByf( zXitc=Lml$@3%cb#@fUcTVr`;6Fy7SSn2w9#k&SiaJ61grh=A%+r>%;RjK|T_n~E9x zw}}-E5)6vj#IVN+E2thW_t*O_X>L_9?TGGFY7B#?0iLFj!l<6MLG2G81|niJ4c0q^ z{rpz@YU@O;x)yp=Ox#~Qz5bcNXnS?~lfiH2%)AeAMES;499{f3v03Z-DU)eDe>8+8 z28g#8Dxm!FNVZW)vl|bLW!*a^Mr)u0A^J2f+X>&EUcq~A3MSvyQa=~!S%yibqS-no z7}FMmRSp(S8+3tv4E66bnJw=LhUDiVgngPEgoU_HQ_|GBvI1sYi*9W`Hh59q-f2gu z;1UzI1>PJKt-g^x!%dcp5sq5i#AsAd`>*~(-*nNIZ1tylNzr`Q^4F-wFR-PnV84*y z=c50k8Z|^{k`0+qgo5-r(A}*>ZL?0SnC*Mg(;U2wUOMTha`Uv(afY~-xSyH2D+{lorA7pk7(|-KtFr?0o*mcaDJd#?yS$Xk4 zD)Ix9(W(*03tR#ds5g$1Z;mxSQT-i2NVX3G8-K9t`p@c|)&Sg*dt>yJ%|DR?9=X#G zbRWG?OwEA0LpRp*Boc$wjJQ-o#wf=)4gdQ)As(2;HLsdVp0C84vG*U1qf;SpGyhE=Sc$FIMfF#o3yJA@^nmb?d%T*$b&W z_G9PyuhnJg*nUz{lSl(<+cs=Og>LFKqXQ~GddPI73NO$&svBn%bU)uD)fuv#3TEB_ zo$_6yzkbsg-MiiJ9%+?XaUf`%sZKQ{O)P^Ibd_-~$G7LHPQ$n$91sc0q%3y~e^+^& zuygK1cmigUO^afbvCXmO`Qj0%$=O(>0yYN4iSVnfG9CaMuGi`>y{lC4uz;+OpyUy6 za-adK8q2?mpE4U#7bF$72r|yk<~lE@Zq4XTMKegV)xGOSppVT~y#;k*Z>^`&By7a; z3Drm%dzd});nL67zNKsTmf#Rmk9J{yx1ZS%8sElyDim8?qrE?%T^Uei{*fZ~07#}U zAX*Q%WG!){v+00_dH%FW6$RReU>!dVmXS4P4pUvR2+=u&@IJ*96WJiXOoCj3-;_3$gH{_>W}Pl@Lpyeo>m#8*csiwXdz4Q3@L<5QSW%VAl_Ol*jgc79lAQV z4IO-$b8m=srQEWf!~J_!n_5F!PcFuJPoX<1xWeYnJOCxxG}-R+u1-5Z^mkh32Jq8Z zlHA@y5+S78Qwa&?2H_xEF-6P~-;rw2>Bvs5L;z`V!q&0F?%-*u4b?=QpnxNJ0xZ<{ zGdDYHy58F`2&(X5^IW0S{099=3ERdcs`Jz4G4ynsJENP3DLxb<#WIqHU(U!K--0ab zPpq%R1{$iz;$s!*S(~btY6D~@M#&7ET{Oh*jVzmt@F1izLNEa844->Yypk`)7})azB$ z>eHUk?;mRV1jm&836mt7s(@qdP`mcCAe+ZK-(1T9x>699>1X_ye$ zXOcQPXwA*IIliS!4h>*0Hm?!++@%+uQZ7YH31&?@uw;By99rCVrkn-<#!zIn(g9y8 z1CpjP)V_Y%$gK)0dpW>BTW8K)cwS^*Ur*U_`}m zSm4vchNyhcZq2b|1N2^aNMe8}&odTi50#7MOmuIGel~4=FWFP%0IFnIj;k;M=;x>U zAD54m*&jc`vy+5gqG{WH;zY;{QL96!qqa^a;z3~Iu6mx+!-cZyafNBr3uCVArhx!2 zclkVrqHZ31%O!?#&H@lIyJMYiIm+{%ZGOi@D zG)HIUzf`US$87Tuodp{i8~!_b_r-UFsYc+cK^m~0SDazZyt2LlGz)-SS?-=t=voQFyP z@unTcBV@?W@cKv10AzNNop@6yMag&k^lrHLQ%eGlr*QGE)4MZK_ol&Ws(97yhw%pw~yFbj`;7V(ri(zzF#v8?NCu!1^y!R>Z)U` zf&5kMd+`Uim%rOL4p-XJR)wc$NYdBiRF?}PImVOmftLWyx}>j9ib5%^B$)ogA)zFO zKI7e5kErsF#_il41+`0SPi8%kWytj$z>B%RVFSD}8+ZGl_-pHhti^wJ_! zNqQO(g5T(@0Ai9@HO}LP;ebH8}zIEUXcIp80Q%Om$FGxN`Na- zOA4Apa9-y~K%(sRDNdhBb%r_NR&jjRHSUBM}KF(>XzESEVjw z$R&)h!I(F2TbZLgVZV6r5+)Kyd2>VAU@`@M^anpCEf12T6{1Pkq1CcYP;g8*ZlF(DHENn%ut z!1yIJn+tfg9hEs~3*A1M(B>7aZ}t_D&Rgcq1QX#tGese>cPfueE^GxNlE3b&x%`h~ zL}r_AeuBUl3JP~fY73>??HB=B5jkN}Krb6MktIy(c8vJEh7$d8EmwQoM2|RHid!rG zT%xi!@55p__LAb55oZ+he&sE3>T)XCLKtzk^0``MI7LWGNM`ohAR^-H^q4PwwBBX; zxmpf%&$P&jRfu&H+aum0qf0*y{|?nte}Jy6b8`q8PqOm7hW3V^ySLBujhL=0G1Xmk zIh-na0bMm`$^}~2$V1OItSl6$G(5s#Nz$=(h85UdE>+9bnKEA40|wAgupp^0JXr^( zzX%ynwrJ3}N#s}FQ&h$AEXzMNX97bhXf2?fuL?9T8WZgML5s>SoBkHO z%Zz=Sn+em@3DQ=U+Ld)TusNr$x7!-lN1pp;--j%4C_Dg#XfeYu;4>6c@tcTqr+#5XJdHb znr^4~2JQd5xvS-l`f=`e;Ah}KeiJF8rhF)Y8I(ZWz?oF{4{)zCuJ0pK@`fB!x{`Tx4zt7c~ zJ#5@~ofKDv)Dnb~6s#;k*`+-zUydND2P6hCX?=#y}O86`Md} zJ*hj%K?LisDJops(Uy&@o*Vuj$H(ix@qvTW#FJ}(#vq8iKACqVh8TO=xM`+FNFvB2 zo57#8t=qI**v=(uDZDujYi? zWLpzbdJ<~gJ4)X-I?&z`p*1D8$;DFre5t##(i?1Y;^Oiq1#Rz5; z(A1g6z%298RUYLDX`25n<}DpG`@`O0LYkFAAERt&MWb{o`3rQf=lq~Saij1N7IY3v z8_%YyyDbJS?YIPq;_+~-WY%>2ryZZ(&$uj?OLi*HBdDq;Y!Cgd#%`H1FHYkG!_%%R zZ7*pY=IkJ_^I5a@YXezcRJS`hSHchA&7Q^27hV`~EmxjymjzyX-@B1IZ>yd7u%q%^ zSy8BSQLR^v#8WfQHb{kg5!4HXA!x+WQ&FMO+kNgD8Pc!;natliGew?Jje&Zviz08` zD^=C7@m{XGW|_^4UoI&kA#FP0*Q?%GJ10M+UYp(`S3JELUcHu8=#WXV>QtPU9$DHS zfbQ2W=?`E{GX;qZ(#B+GUa%>oLqTt z;he9sHX6xUyzYqlWSy(MPOMO6U^F?zMM>#TU=Rqs~kBobf%sydi ztF@Q$Y7sG8f=wU34u8wqN~djsh56tiJYF0u4c{}?y{`ydV{_mEPy6s7PaQSc*hL<{ ztRDRVQGDe9R$^j|+ANx-@3vw#atCc zyliyH$UOu9EMJE{N$bipXGuS}66o}mZ{xfdb9;opA(b! zPe@;4T@JoeeJiQG$9uk2Z?1qLg`sob7$ldLBmk{!s>vb(tj3& z8lo5+M;6twVp)h`Bk+@?!k~%jLW`S-0JU@R7d9P%DtFYFou2C36Y3wjx!0dco2}+A zSy+ngcF6Y|OSK>8N?qUa@!(N~OfvmAu%JUi2El|Bq0-BcBG8t^QH}%o_5b6bA=qG` zfeayMZ_xa&xzvwaX}6SxFFT>ZqgvEIG<(mhbut~H)H2>1C+CGv-i@}8Rp z-4si^kjwcQy8pQyINe;8dFxqOkCeCBl=XY*B(q=Xb=Gp(hj=L>AeLP@FHBS{?cotl z@63EgCx{b0fdt^Tm9U>$A3{gd#ztnxU~_q+7OsOE6&y*xpARiL8gI}2(NQICC%f$a zC&kgz*#rg&JCrargG2Wlsj$;HaJfK=Stc$bl;b(q{+j0ln|FXHsQUOg23krt}iFH zZKAYn;3_P4`pN3x^p_MN-DbSye01Q{Q=(LRykTty;E61H{ecz{{BmX#9ij@2SX z{yO9Adn&ia1uJNnr0n=Y{0kqQSHzy9~f7UigYjit<-)>rT0gq1$e~0yOy;9ZAohWwY zw&B}9v`25sUXz8+owWmV+gW#*_%8ANP7-gHLHcjaMiVN<%`}q3p=|vqdn`20HFX2* zkMZNLb1RZ6o0p+ivci1^UlX+iygBO$e>84$oU;bA*X!Ni#`iX-)1Q|Z>e`5vA#i_S z1El_YQu{zCGCxs&?e0D0Bd_9jhv}z36Iu%Ng7chM?;6+7K3}b~%lLCLTyost6B+RG zm!;xWjHqZ-`;*gENtobEUDU4J5A-(5>+lb(e%U9Ml3TS)1Ue@`9=0h$iyGUvjMwMr zxlr+ZzuM``C6=p&6BGeA*bJbf>*6n_yfQ5}09^yyg!vXR!7b#jUg&kNHuCbs=l6q) z1(dgcp_We9;xACKm+j;^<0{}GP?V;G;;oE72gP&sNB2DFI1k4S)n+J{&bu?!GqOl~ z+TXm`en+lD1ERubHxh?`s=ksVGEll%FX+j`95#CSG`mBBqD-7|+>+Pys{}8a)eL%Q z{kiD#dOHP-Bz7hXn+gAlzqO-Y@}EPSZ0za`ZlBlAd>DqQ+B0yc{o7O1RcvSCY}F}3 zJp>&VsJK~|4||Nwc|3&$+jYq6m-JTe#wj_oNT3OHXnGE=qGRcm?q$D0phKb?lhqfl zL^riFuN$}58BKxJ+h<~A^@N*TFOH|n&T@B}%GClEX7Wl*L(>AdfR7(ZddxulsRWsW z>2mGdeY$wP{s8#$8~YASllO9U6itc2#rX%4_~;ZeVJrw9JYA5iU(bSH+>U+_oes=O zrCZXjSl6o8pX`GxMmw?-v<+kek4`6IyC}Na8Obg>$-B$35?7_c7b}lsV^?17MBXX9 z{Us;RK2JvI%9+o~AU2gi^&exJmZ>GA2%vLZ`r^g!;o4ofXX9%Mic%Vl$0VQ&OL?&% zDBbTsZ^bJkDi%A?n=AjmI4B{R?{xX!nTxLjJcAoETXn=|a&9P2tkyF7qBxgHdXV~J z*u%65cFCV^rLyuJiyU_>>j%HPvvtmzcpF@^R=S=Zll4Q~XU<^=+?P^!3hP%f?A51G zEMGPjdu9cG_EULI##2kry_o#`p6M(h7!MoyC#R=LQ@C1M7dzaX;k0AeIrj(bveaOT zA+H>sXZiPahGBTSDME@FpRwR8dxEEAPG4g2Sbv>CdZP@cY;p%*?x^bcpPRFJX!xC6 zc0r94Q*oicZzMG+;(!y$`q-TL@zlQYQSLRvU|qAB?oTJNXRe9S#W(-QaUiIWS%<38 zb(v|s3Upe__U&(F{_9__KZtvhU3uE31u54M=r(u9`hOfn`>_744Gc{TaDd2n&-N?a zGFW=Hjl+VazgMhU1vslJj{oE2jG;m^1F6vJ_wsn20#5IXqgG))~!hM$|SM(tg5p`B~2tQVAnTGXBoJC|d`pYJY6u-vS$ zx|s{AN94S3q!{K6u2%OLEIxf{kBI2|o$Nrwy<1bv&--~lE&$_&0YvER}9 zN(J@bxZqB-?l<@6=HfjcO(9;C$Fw&J1cz9zj!AkG#Zs#41%)bC68EHk+t-2d*P9>2 z_?;l_S(#l=ZE_Z+zJY9-m4Nc5;SLdr4}x2|i#e~cI_-u+_bdTQ?qWct-x9y%Cx&D; zS@Y4s>*C`Eln>8rpZ?DM2UIX|0cs-f&V&1Y63kY9>cjhj&EyQkk8$)&=HO(fUV$Am z2$jxXis{yhs-2>9VWn{(u_3yqi|ikCNQ^IG-v|sM)UW12UKGrf+rIt1_P=8h zV78n*pY)QwS-lSYCDt={1+M` zJ41&WI&Mw=>G+^v#65YrJqLE`#T5Q;ZoWznQ7F{z9`f&=W`7oE3|wWdLCjLr!c#a% zPj2p-bV2mns08&Qb9+dQPY z+#18>Bb@E%wfs8=`bilMf`LXW$!>`dv6+1b7Vwi=^eHEFnKcj0|8Cj)7nt7e%yW~U z0?*02Y#A79iK0vV+JU_{V7TT+$(v>Dzh0fPX0f?&GPmJ%FZula~OA`fn6+(A2M+m4R#W4$6v zF78G5%_V7*i)0b4PuP#7S+?+pegqw`R{JHk=}~z9d%($^vlFK%VN$v+lWKU_wFZREB_mL*#g7h^Vgc$(oP{>}1iAQm&vMecg; zCSQ*53*fBf0_V~ka1CM_81a1qdeN0f%EXmdj=AByb0ht&U{!b(F%W#@$W!=l-j(ov z*$k(Tz@)zF2U_LNMVDiGXv%T^gYWfso|NYcg*->$5`c5xBfX5#D}|B$+TnL35Rtwt zrZ$k`>b`j~^If^+zW^2^Nz>Ja+GPxE@st81-3k@Oe-S0yT8a`BXzS76AhlJGQg=Y~ z64qY6+o@~?o{xH4K@t=Dq|$1?B47PFiIJORga88bk`OE^Toe3-xmf8ZbapN<5h5NF z{lHEc`_xuF2RP=Uc(QLq|FYmtFS)EE8}QWc6cKD5>HDfFMI_!ccJ;XsMH%ZEb-;H+ zwv8}k8i$(a8|={a*49oi;LSIlReC3dkPtU>vopxMc))?LKXpV5$lJOf0nVHv5bor zm20BX63M#ToeKt;qCl)9mCg=-Rl+Jf(Umu6lBh zXL;YtoU8^NmNoiAmT$;b`QODCuzvv%zUul>{(zMTg*_<@ROa_*g1%gi)xWG&wMQ5Cj)Jwt^!Cj(VVBciufgv?8 z7j!kEC{XF{liTt+c8xxS+Yn3N*FCx*{W^<&p8mq=dr~@q3%cFHIOn;fsdb5}ko{+Q zfK~zwB+a{0F39wLfg@&9?Jphh{r3pmljM*FQzRsi=PiSd@&EYDm-;ZK0>ZU&oqb1o zT~XX>wfLq0B)NunaLp$R_$X8Q3oQ-tM`wO0ntPYu{#ttN^ZL_QM|y%VV{ciA!1vrg zH+d_2Jdd)6|14{Zs*10FqIlcW4X0;MhTq!#WP(lQ%M~OGl8p?tFnt?RODC^MmOU4@ zry>wN+|Y0VdX~MN!{9#2+&^52af`on6w~m$R@GKD)@dJH9JV zA<*}#VGRq+25HSCIA!!+d#T;A()y*#mybvJ+(q0qGtuQJ#|guXVx|I9*Y26`^Q$di zXLcTeJO;j8y4+mxaz4gzn;WppSAG+Ztva>Fb)cRj<1tE z(sf)uE58^{PQB&QHJWdd>p|@S81t|r*N+`=_^Oy|h@HQYFA!~|wWYT& z8xxFBx>dNl+~^zXKawBFFa&8Pd!~5q%FSv{L6Q=j3aYs7* z02Ruo(Uau5?V-mwshmsaL->bbx>a0t;i072gQW+Xst0cR^WCTIqybiIX$$JCz$SyK z#VXRoiZpfN*JPW)Am8*OXGQ7Kady>d*n&5jspbcV!e*vIX0A@$rOzl+w{9=jENR2| zG=Z%(cHXW+(4h&NzUXXv$L#)1h>EaG-`_;a^0~?Hzcdm z_H?Ei)9Gc2&qp=mPMlo1Wp83;Dpw)eP0>T-3D|7u%)|W@Xvpl{vb{W>%KHn5jAGA^ z28oGXadR3P=W>#b(0M%dKVMM@r(!)d3-@GFoUTD3u`)(vmdyoHqKU>Hri`U`Asz4s zSdv?v9zlp>2x|9v3g=vOFmNe*RAw%S>{JQ&N^}4B3h#w@53JNR%WiXV0n5c5kJ6H% zj{kAwG)*dZBc9!8x441{duVVE$RY!eplPBA?b{O`aG^{44^$4}3XlDvHv(+y?Y)kf z^7~Dxs~jtSmpw#$I)BG&Tpgp5Y+i*B#Zi=bHloj_+-T?G%7^>~@z%3q^FNLw5|ah> zk9H&jiKhv+X%*0LwxL90so9VZlqp};4TmSf_PjfGQm8N~kr%HD?-Y(ogv_JyL2x&$ zlbm%qCCm#nc0(tXarxQUXwAzqq>1r}On;MoTk-oFs50@oXYE^2UO0NZIm*d-?R^tR8!}@cfx~p(W-13t1s+G0s-HqORY}6|KZsdLDou zbi?xw|1qI&HnGZuzcacFEv}OqKZCziKD}`N%nL-MqLmBk2y40kca+abEg3DN_JSiU zm$w@d1p_>G&T7*utACoa-|V@<(I#9m1y3>??&i?HcEomk(k$*z5D!1|`62SlghAS) z_zOMJ*{BSbXo{uho0%^-V~_kH&K_X$^`&J*h=Q+BU`dt?^k~b*G((Pf@wIRwB`lZ} zOj;b`v~+sqUJE;8S9#HffnFy5H)>D!J%4VflLZJ#>~i8fow!`_M*Q6(IY>4<@aJ?o z#Aa;~QjqoQ9?USfhs_}4)>^1QrR@@1tC=2MHZm_V+V7U&iEz)DAVD~m^3l~8q12I< z$>p*Tn&``$Z=pDnFDUi(6=kLFw`lfIJGrA=`u&!j+eM*PCh4BUhLZXk}d8i&$+LoN;@&8$RiODED8*0?>mC( zUZcwV8D7@Ao7<n1KO^7t?p9W5WQk_s~{)ZV1 zDH-5MWYL+CP-*9uiq=MtD~6|7jx?c$T2#sLXrOl|e@Ie^$6z~;jH19kT<8p0!5BPnk!B&((HHK@If1Qdrgx0P-t zv+7YW;nzd!rTJ0o5-QqvcR?BxwJ-Zz`LLRAHSFJz_j;5P`?=Zi2d`F8xpO?=lZQH+ zZB`Srp&4g8*Zo@7%e1HV{rf!(Z-DWg30Tv7(O+WMR*;B^SPOv5yZ=`%kAc30#mX^$Y0F^u{6no%3X-PnD^ZVSTKLi2VgT>+tNt1sQL0`(<)hRPk*t zgR>G}9%z-G5q0^?u253->9Htk*o%*ELiOFpm_*0bq?vmCafHEOPd=AVjRXgNj>- zmd^_wkh`!Ou>$E9J5iY>g>}UR>1mDp=^^^{&_uZ-IBAi;0u+HKYA8D<rAR@=MzXz4V8+rJ1KdJfjW>D{mtIk?sz<1qTU1#tXj1*B+fGxqswec zLYQBO3Puc8GKONSJQ-j;1EppNQh2e~c{PT3XOv<*Sjj@{3PNj9_Dlg9hNT!R%?>mF z)}T686iy99S(KK~Bw6Z+DL24v7d*$7YPV_KxA^v9 z0~x1a49I?yFW0u71iE*{VakQsn0!94l(=*YtQSky`m;0yww@xyBpbm(65IIGMGS;9 z+s@~oS3wqv1+ulqgcJW#yI;e@zm8ybiU3Xjx&EC``?4<|7*>?b2ZyGBEdOVc+@8UbXT~7bX+Ymj+p+1f03tv-bDLlyDa~#eE(Etp-r$- zM+rfXdEz)YQ+A-;bYoEjs$a9z+WoK$n0YTTxwkwXEn`R}x!Z-A!@ni@DsW zT!HSUhYmcLiA3vclm5m5HoswkNtLu;kLl2dqKZ$S#a^;J6mu8aItof@y_?sV_n&}9 zf<2MH9*eqX)6g|M>);)JbGjVs7J)k|7-)0JeO!)*2L-`oDp!M>D&Zlw&)e)=o4Gp5 zYni{<=BYQU)|sV43)>#!5x2$3b;P0 z4X$b#9A&%S+yjr7kqt2<3z9waV}PrIvcwgecgf{*#+vQG#1U*TNW6p<+H|)}5Vi!z zdup~T(rb>=xMXAkMbQOlmAsABZY`f4AugNE7h}Rp0arh>wEGy1#Y0MkUt(HvWDKd2 zu{9TF--S7fE+|GtRnZ=4CASmNMXgEnzuX#N6TXR&ZP3?__2EeI_TQfwRDVIyv|5{cq zZ^F(X3kU2JU!BU^GS*++PXcRs#;`oPrNKH`TS-eu_{D6}1VDw}zr1G#h@v*1H{n}d zBUtC8nG;GWhmPm+&uFZ zd2m3saPvTimw!hbh&vFSOlun-_$Z`MER?-uH5^djt*}j2p{ zfo{B8Vg&-(m_;Z9{p5iQL5Z>`5-Fo)VOZtx&bP)~n|dls%tLgC8tcMHQ7I_na>Q6Wz!*#o^Je@Ri=JTv>rN5w&qu>t zPRPoVU$-8?7L6ccz&8_Ec8Htn*RdMmJ}5A&rMw_Bj@FvEPSZixDgSo!t@jx@Evy1; zU*F-Dm#cc>;5uIKew?i({!zl&;gY;$K)ZFEQ3D19=6?z$FDqrcr~84B8-U5MAk0sU zy9_<#1X&AII*gigX2UjoIaw)C+MJeuf*G`#cUrEdJlCz?x}SiaG4o2dc@71#qL1)A zs}=(ohL8(WBjomLQ_K}b^T*>%)ZC3+Jz#^|U7V2H`zaSleZmpJo3xy*%D`XiS!z+y zOETl3NVf%DZFOKdSz}UjmnaKPJiT7ioZ%kki8Ji^M@L~Hask_aDvEN*c?QdMd=>k_ zvvRrSs%s&^((E0;){|Q0VN0HL-~r;4JYGW(bd>*Pzp0BiXpS5{WSe(sj1LMbn-h3G zy=kA$bt>Ix2Dt4EO|f!Dug6S1`CRwgcCMnz^O8&rZGM((7G;nbEXNe4TN{L*Dx1ER zVWH39v0eBlxRF$0apOW2Oxi(?4O$;tZ3IU^FImEl z0(-03@AnJ~>Pp_%`cb~yJEXx6BIJeNUH2&lEu=K!+5dMBgo( z0nE_J$r6+e9W9!&6H~U(j?;kb$FDl4%v{>lOl_w%|9A({-FjvPW!@?m##q*rF7mo( zcoAi8llUofnq;kxP=Iw-ugu>00(Y1z8&rdWxjC8uw_a~=@aas&;>%v=y6@ZMLlxkz zs=RVR&ZJ_wld+A+#iK$O^qwN9|6>Ti3P1`TMH|p=mU(UP>abom(iHxkloF*Pm7m$C zjOR8rjGpTVQXgAg0Ct`r{+U$eXddJ0CZyJ)c&)pUe4wVFO>pFanA{;qX))T3oe_`+ zKKhzXj=_AJwh!}k1G10Essc%={KxqR1(GgAHmDe^ejEVe<7lexEx9)IH=kRLuMgB5 zI@0m0OM72ZQL|&2Ik0ulp3S6HG>PfYOdZzL^xmOX3(Sdh)Q1)^g^5$qw_!DC0wefE zWmAk7zIX}lw z-65kdUU{a=-b!GfM&zC<^NW}NkK^Z+(22N^k)n_38TPx;pQl=isdH|bKH>tZIb2ud zUc`bKeDb+?7srRE~|FMVlR3OR%GQ%3b#xI<{=}!_r#1p0BH5`AAo0W9NI5_%eJ$bKs zYI31{>_*=Wdw;PMq`mZlL1163$6?>q1-H4a4YTp6`)xe90l@y%|8b;K+6BHIaB+=w zs_$8a(ZuAdKZ@UNx>K*xKH;*-iET7!bb-OI#2Wbn>gF+8QV zcm(_gIXYeuFMtM2OY4KAVxt-ld^voeABwAsaRu@XJaO=5F}?@eV!5swbPRt(lyM&7 z$2*uRtA35(n1;hT#YGxcmcojQnjgfkM2jr!@|2Nt_mj2R&sD1$A*ukms=(24#6L#S z-(fQ_v*B>9uI|Tr_|wQO?R$63bYNO7Od*j2Ia0AwT%!K+K+Ygv$a9D|T*zd3bVY;s zXL*6O;j8W4KszmPL*dulY}_ z`oI?Sk93i{%mbUk-hf^P=KNOoVo|wnp`emRJK11`z}3_&*sDFv-BX>0Hj&sEK0E0~7M)f)6Kj>qpCG(DN}UKJmAa=Q7`wqI*mKH9%y&VpX?* z8@kU2Qkk#Qf^jf?QWj4OfN@fPn)fl z!F_Y+*K}I%b(&+|%Z~9U? z*==NI{-F(hudKJUsy1Q4x=C0PImvXJ^oM}|#fJ~cpWr;1VM&BRu^xL$o0_FF+HYSs z1McPf2H7DrP(JR$bABWqn+(RHNUsIUsNvn1jymG@5%d^MB4x##-H%COTMsj;=-6?V#1>tjzGT+p! z-&*PlC!U3#ds(H-{a$(1F+)tdyJP1T{nnhEcdBA-JH92v(PU0O)S;-|FJrT29;IXl z5fw=M7gR_sTMegyk4IuOHd5}8bTuTTJkLLf#0VQ})Jqj0|1151D7QtRW=o7N2a)c` z&9H)W)5j9tahycfznSOKh43Ya9;C@`Xcu_=w5f>+)9UV>^5jgLl(B6p1_EhXwhrXA8OP)XXd)YVha#{SCr`}kMyzqVm+VEbZFNl2wmr$B38|QhW_y*Pd zAy|ym+NN&RTyUn^K)#ACXS2cl7AwSd3{jWbdoS90SVu0>?h5+gz9Fo{apj5)T6Ab8 z{k2o2&;K|$Z2OltRgHMIFufCuQ_f`rxeK%pY!=Y~Z>G>d{=PSu$3xXpaOsv4u6wCD z|2VfVPIx9BOKFHb6Qpny~O| z7{B#mD_KYt>z=hQ5Sh8IJ2FO&0t3=k$q!Tj1o_0 zRb_Kxz^m=>$l4NXm1{~Ff{G)%TBd+!J2mK1FgTp>uzWk*NfO3^G zzq7l?huDy>aRfQCQG(CtR zBU%DnOG_psh*)Hw*0q|BWHSMiI+l7)Mwipe%OhSdT<44gwmwQoh%UVQ5vs>zay=qI zIzfQ!6Ke}rtqP!}H3DTJ(7&{nk$LM;bQh(D%h|f~$XHXR#6_Iodbb_N9pVidz@gQN zH+`|*o)^V)U8MoJ_LlRQQHO>vDtz%DBZaf4%xcyNXEtw?Pf>J-ke+lz(Kc-yB z{_ic$Tk5xe03+g+M{L}!LoJf9^3QgHNV}1T5xVH#baSC^qrY}mHCAuH)ZPgf(NXCo zzc2K0G5>$Zgm5-}z^Uzj z9HG~XxK^LkyH5Q4P{l4&8aoR&tG(5gi8X3%h-`m1o*RC^Zc!XdG1~r%aL+zi^3%yj zuMUSekWBcniX$1NuPV^`Kd64fc-u|u0$ua@$bFXc7R8#rXU1v2pUf{vxvb6L>(Jf*p)w7E*Pk)hI{$j3!NfX%+pzxUz`Y;CWzRGt6b;9Zc>?VJ2)f2r zpVMbdL~P=sju(QR5i%11-gm_OFke+;|MwRl)Qy z0Rpd?HAeJg^m(~`78!}Hftxfrm?^TX1?QuBp^u$1IlS^Gszv5wyV8&Izh*Dg@~fzf zmMXM$^L^cp-{#0$uKAvAj}eq{LYDEMYdsE8a8C92x45z_xOzBp|I9@UmUfmO5(Bst ze$HAIyY3U4Nm40G;9+=I_V~rNAY5-k6f;qGy+Z5rzKn^0;JGWyW%*j@X$YxU`Lx3bj{V{XpH=xL9|j<{w6;j@=h+CuNJO{PU^bur3h z_JtJ7+u!m#I~VEBg;6x8GpwLB75$g#70hw#QFTy)Z6s*$RoT>*(NWQR$OP&a$N=SJ z`}0arvFn{s<+s0C5TEwmzCG@Li##bjH5vyz{P7o6IOONN*vawmqjGmckpmE75o~)X zb@5&e-F2L{Pg!=GJOB>Pnfp*i&u33mDFJkGdPK0^s1SCD4~sI6UDJODgs&_^$<=tC znS8&HM{x^(?rXM(gb(U%gz;W^gYm){WYGiigpx6zihR#o%!1ikEV;aBKj9z-eBOhi zjnsP!U#{c^i;OLt$_Py#QlV0Vq(|iNZ~@c-rkUtldzl+Nzn107 zgxX(OW}`SWcq^32uaPT;89Jl&qu3yF5oJI5Ob^IIsX#eORq%o}=iTl6Gg2M)vy((WB zrdL*emzVX@=C^0|*R7gsE0arP;^rbXvtPTD#d+&kN24V)^0}Vu!u?xm+3~T<*^DK9b!yyAbd7WLlUR zq+SFK8E1PbfNfj*t=rDBz6h`KE%EyH%w1p(v|RzpGRT_2A^TDfby~fz;(0vuAH+n6 zIj}(*=VxQzu4Pc!2_r!bUrsIwCp{iP({ei}(gP{;KO)WGUBV{=SO;dO^J~wT|<)2yHsTfX`@w-EPSML6jGa^erGO zpF&RgIi$XdmW|9m_?RDc3yyQ| zKj_lhH5cCnzP$24$P8#p)53+%z5@tRO2&2U2S-J3RH<|=TQ=|1HrNU$5#%|p2Cg3E z^&C@P{>^)jGx@iv=oejV!luH8_kSF{ymYyM)?2S80y%t#Q+Ad6)=;%gnyn)Oq&XOIOw|YsU z6qU}sB62vYD70}jUVk8FD;AUq=TWq%QKuluYbO&82dO2MWJh>#b-LoU**=SZPaH+! zm~wX>>3rt-=MvpBO&QS7B@Fth$ZOG^m;*<=U}LvLpL)QYmBQ5fawyQbh+rUPFT95_ z?|Py?V5-V)3WKfB-vm~*MmzR{U`FXGRhj92#ES|A ze40<;aA$dSsH4875lAX0ua{VC@kUJRg~r8n=n94@26ch)mo}1K2Tu4}LcWiL0RhQ? zz^6gsec^o(mR!MozlO(()s+M$A8xhYmN{4%P81qYl4Z9d_OE9vFBQ0F?&tqaFMeXb zs0BC8kxg386;qy}ckN>n;Q1tKq_}mD(QTc%7x>K>u%~2G%!8#YrvnGM9Fp*Kwjb_; z^Pawx%coGU_tCuCqrCoEj)mifDw@#Bg}n8SznAu>%Yg&5xQ$ae?FaX%DPzKHjsc=I z=iab>bvQ_0*m``BDsGV4snRw@Q$KUQ@|5jVzSB{m0RZuBCf9dHtpDDFk^;CUiy@yZ zj8reUl&t1V5Sh@Pu5~@Ex|^O--}xzf9RksAE_?mp?4(_D8!RQ0HxFPV>v@@Kju~xa zn5@gG8;iMm^Kb~!+7A^~HYHU*Mx^LBf9}?*nnJHC`7+|9z>L^?KZ>Im8#2zU8A(P{ z(1#frzL&us8T@+ygIha_4c~YHcfXBX?Kio{wW}^oYavy6MvyH8fm)4mxH(UA?3I(P+l%dXdTWY{9oO(I|lryW(gaqFR}Nzi>7RTXYz8>IpRN_gP)m25Xgq# z(REVS6rb$ZLu`XWV|yJ#|KbmRG*<_gN0zMsJI?6C(1{HW9<(uRj1AZ>|zscQ3I90xqLmf<-WP(p-Z=z!qe?!#`>73i&F5{(oZ&FN<=HVufU`*u}<> zg1xX6BQU^thz<>OLutbkO#sf6Um4H$k8*ffjKdWuM8ESEOAJ^B-EHS3W5 z?Ia=6d5}4OG*+@hvN}lb$WLd3iUg}s%Thv*L;f52Xj-}2D>$Dmb&DtHd~SQJey%6@ zL-}Cs{nmH2N;e$pr>|m~6>YYc);SB*o@Roz^}S(6Xtbb{;m(s2g|FCyPbpEaG^013l z$+N;>iI0*oUJX!jO>QZN-1XCXsjbE^?@YdQX>Ywk4XJSR>10Ss znpXr<$5_|?vWskeh+jKE*9M=_`biaDzmpLU1E;3`yEalAhguPLGG6ut4o);?l?a51 zJKGadmCL2$a`%#o#B7I4bf;Wk?rG%&KI*+#qe}JjRi{qWNsv+P3}W2@$Fl9MywA02 zIi(DFQxS-4#BD!0l~_i05QE5XB98T#ja~hxSd?tV(*OXbYor$^0wkK|0E%=)rcCfN zkmL~d@q!AcYw@b+o~qwbLFPp5dXGf#4~5i zpR-1w#cl{XtNQIV!kN>&>+xtWaO`8eH}x9rzji!1E(gOH?h z;Zymu9nTxQZysiwSpr)fbP`uik;i$g75TSG~$*QtS1A?2^qq=7ijfRd3)vKh8OMc<$Lm8(y8o* zV)mF5MtN$@x?HErx33$peBy=I$YuJsgig@0UM{XH>YJFnHEkR1e-rf~w=YcSa2new z=DXX537D+XF}BwH>M9d@!^RWyzxmZw^@BP zHh_bZ>Y#VEUkiAIP6|&o8Y;TdPaxVF$)N75zTz zEEgk5XbP)tBV==9F%C)*mAvtRE-P{1sx^KhHjwI}vn;`8;X{Ctu1>hgW@2^aj+5HU z>I<4;f$)%=-RB!gD^P{#90*rSL}elbXl*y^!PB&8whI%a%jMwthd*ReyKh>JLf}a0 zDOsB|@B=R$qBVYMMNYZj#C3v~&EK2bxNdPTkV{RBUwUgr%pAR%IbD4U z`YgJ~>N}sf#JF^8cq}O{`%uE0_q@hn4>awYKbx`)`op}@btU2m$pepco=g4G#=ayU zTSF$6Xw5_qFZ+28zFe03KHLlTA4Ozf2l5veMK&rrev$VLLPu0FsOPog9B==xKijjjn}zxy%^ z`%!s8A=8}`cU590C*iw+T4azvEXjB-MUyebdHTQdoBHz)iA*B6-en_chwts_W=_tq z(}L}#pYi(ELWl)(ZP^vM5^Q-0D%5dw;ID{O^yDdPB=7Sp2%pO+v4(Y<-iI_B6yeOK z=y}Kg(VzCQ=Go`=YDoy3k3^pJ9BW!1wL#=*im4bUhBxd=OXV-9b1EI5{}CC=yd;o=j?|tkKAWpGRLKC(_=w7TSk#r>rfk9QwVnfeCw|Cr z3Ps)55d)|TN+pDWTzq$NZ#C{uZd%>oxP2&K2mOUijI&*E#>Rgnm-chpS8=wXh&eUw ze{+z1B-z*4d-~pP8`ChwU&Yu-WMAd4nYDvr?{QE5jo&w?n4!UwJXi5XKqFMM|8()} zS#3>SVDX!81x+WRD}P_82oG`-O9~1ZE;J-`ETGg>&flXa|8afj@y%Z#+n^jM3iz~n zlG#jdv6JQYjt}Ggv=WuoA2Y|;pAp zHJk7i(4K7}81UT~9g?hbsH8h+=WwU2eNQm6=H#DhV=h>8EW}%`vNHY!u`L}IUh2)- zNC)3v;ORDGAJtSGJ^#U@l`?WPGGrFDo}(2SB9~!(?KE%IDhjxO?@K!HUpkQ6)!mgd z2iypDimKpRiRT)S0032qU|}Ia*@}wT(iqQt#dI#^O{8yTg`xYhfy_5hU@?#x-zS@U zAE*GrL*-CT`}pWWQJ3a~l7(y^5f#7u)@M07;wq~#pYlcS(L+TdmCkx)>qV%3(nM|6 zk3HagMqU_I{W-}x;v^vX9Sph-74Ztnle#W>CJA+{hIjN42wiC^1x2PlAsU+}q+?-EF9BYHi_$3zN|6Ekdm`tI$@3M!ciWcDqD;_BJ-w+H z=}X%tLL-a3JwQp}DXG$vUfX#@;yy5la4zo%ggf!%-}_CBQ^l0OYglC0vl#)1!h_f( z?DISzV*oKB89xkz{yuL4Zr=s)*QY@4{zf!sgT5ApWf zYK8FP$(isUHIU7KRrmD$>G#<=Gt+J5g%Jg@-dh zPA%!EsqY6+9k>-qV`qWeZgb1_;MO(nvi};QuGVGE;o?K>cY&(>{tR;u5boBa-H+Lx zNv5Se?Jd$hL9}HKS2g<1Pjo$s*A9fr2~3SID24AU0#n8eMC#^-99|vkMeZ+Bp z4$!k;aN$j2i^tFtf-2@Mo5JZ1;q=tLiiB6brOl^BrT$9<#6B_mVIkVJD(YhL>4q9b z_p)aAqZa_`8Cw?Z1FMLauc5lf0IpshJf*J#n}hx~At@vXFu84((Cs z5H2>M%&s=X*+{rllA*Bf*+ttPVXhWl^^arbIL0(-&{qtrG_v#sNk$Ay#yM!$?}++( zeqgf5D(SL_1H3JN(Xkr41^2yE6a`s=o~)_~@tG*nTvNwv$h2(Hm$0baX+5Of+`DfF zC1PIFg}uFOelCwsGAsTOq%ZzDQ3E_d=$tImb;sF7kkp)61uB zW0#F!_#Y)wtK)o4Tg6{P2HPUJ5@*xu-XO~l@l{5KU7K<;-4?ZMyC5^8>G9R|(I=5l zs!m~>x0-c>MiK5)arI$_&7;E~gNrGgGYL;xV7DX8G|%u7H%~6OvgV?$Jici`Ym-|5SjzWTEdeVUj9 z=Cgg2S5FekAsG^$x=tj;qYW5}-Gn)YG9*YAGjn|0z5OWq>~Ii9{A10HrUdxx?ZO7`^9<9~<2VOQTTJazLy{G$1X^?SDW$5` zLx-Yz+76Ei(~_;X7rF+W%V`h%CW0!@fTUhdgpe#ub4#6KylHtl+z#`-pS=|JVhs_&@har!yp>)Y5?eiUwW zznJHrG);zE6D1PDWEqBuWLQnaN3^BXx}`p^!6|4(#7)=m@l|`WbhI%zEBl zdnsS7Bh$58wE_3wvl?&tj5I1i-gL#Qmfy_{pI+H#Bb zi?GC@@9s>tUjs?+M5-H6?%qpQsf?(Y)T~^XE=&4U`{{18ezrWld0O`uPsIp_T0^lb z^x8=B{vN=NZfw&7ZA))?seR#?6*K?r!%(SbH3`4#Cg{g=SbQ7?B>e~+w&HTOU$Z-} zx_w|DF{7Q(=Ag7^E$wpo1Enx6v!N8fb;N)Hkfn4@Zbls|-69+)2@JPr^eOh< zDzt#rQ24y_Mo8S%7u_nMt=#uxWDMnD;?vzTLmZI4l0g0=Uu*SL9`x; z_KdvxZutrRh32q^&gf2)=K?D~eGT!}6mj=Y;rD%c`^Gtw&&4%}u3JdiWX)Z*n#_Jr z!|5YOpTTI?>iSmp1F9@Br?1P{TI+5rbo5*o_4Qh{VST8r||ri zOMAaZjPvCC|aSn&C@cls!9EUzWLR zyiNeKvc*);%c{tfmd=rDUQePajSo*w&h$l>dxYoZ+)5Wwfj7t)@VVzd%$;`R;~pF5 zJ<5NcE@0uUhKI!)IW67Cao+rCkkY1c6d(B9jFn0#40PYqI8nj$5u14nLO+P{`JD~f z6`kh2%q`VX`ed`)!Z%;w9D=H98JHyz30HL?&qdM#;R&O#WYzqt(x|tRm8u86Vda8m zCST~?J!7`xZ(radP_C~Kir_+uZosM7{xR{`PE_gok!)rvSf* z2$CY7DnY%Geiz3i(;mmMYGQS|tJ@Nu5gg>2(wsU@7w9}=|1W?z)Fir<&=mC+vFOSB zH4eiub!$>=R7QfT%VK=4+jfdNBlzFXg2QmTd`h{Fn8fn_V(H}%d5MBMalDKYYr-=(7M>?Hod z*|vd{;zkd!@z{Q=;Irc&_`Qm7UGIG>EInw9S61VaUx8y)SCfqkQ?TG`M;`nqAnB0| zAr-!MD_WEKCcS4nUvNDxk1cC5xP}hyCti070NYJ3YrcFo+;exMXUwJ%re1QR0Ws`Q z|Dmk)GGjEt71g~{^`@Idw5gI-uXG9P;hxP>o8GwnBT1v6E%7g?RC}`Q`g_;0YLf!L z#{pQW>fTQBr0n>xx#+PrA6LfBkJ;~SM0(T}*MLFI(|;$ghdLCf6*USamd$E8q>YKU z%?f+TOv~WgT~Ng(*W%`q_Kw*7rU&AUHA^&d7))DsZ6^n-w;KD3dd#6pP+4`<;hu%R zRe{L0vVeDdPb<}~ACm+$zOJOv;j1yU3?7RyS55ZRQcl@{f6yh!d+_Q&As>j! zAQ;Wk+1&Fj-w2z1hnOK3h8VYJL)aMY${$|!I~;8(T8@w}^bVn(wK5*lq3SDeuQV^D zd(x~ryv=>j$X9Cfty^C3w7GI14dbnzbYd@a6n+^!p@v7Vg;lZ92V$P$%vdWbNrn08 zP~z{F6;zCf#7Kn>z>#)f`W^!fQV8WXkJzxvfgl;Tv%?0PB}>fGVp)B%aemj1fwbZW z?v6r2m|&M17kSof>BKo&C2p+OER3Ju2l#ib=LOM9oZ5oLtIu2Vsx!V=8KNtTORTF} z{Zrw|3ytdZCvSpxkK~h1MD%9sq7#b4BU`Momjr9sii50@_~&|;#rX(aEl=DuCY4QF zETK^L2>I0G(nAmyUjk?)Q%j}7M0OS(u;DBsZDrRpBy@ylCJnZfF}puD{rwvIeU7(v zPU$P>eheqrP+xRe#*%P_Sd2vYEuj6dN z{iatj+gFV{<#5g0-iR)`HCaUtxVRBY3V((6b6)8-FGKcRMEM-aiM8|WIwRV|?YvsX z5q;_46lM~8f|)=%t~oAWclbKtf#R4PRFh5n_1<^JE|6<~T^SUhv?Lu*8~WERTidvk za}cb+ExTcm3;$1G)f*AveXXkcwMSMG)Ry`zvqY+IG(+*(%Nn^UBxFjeoL$p;P%y7Q zs@AT{pU+`Wr6~Y8VfDEY&+sXHhBnmzOMM-JGh*tv6u3vY07J)hggg=nqNUGE`;Tv< z`;_&gIZykEW!o##CM5DggUB`IIu&Zuvw40dnh07m0uqo!i=~%kA$w7CUgtZG3eWX< zOgW5Yvi=hgTAxa|4#qKra>W%q%IT$^5oaXbk8PVRMvY^)1q2(1NI<=~I%Yn?-Mby&M1-U|urC|va$>>9Cm`BS(LOD{jZ&*S%*E2{jc zH7x&lTyp=$y?rZ> zn!Nz}8n1(T%}p3VR1jopBF|wuViRN06)sGCxSMvYx)v}|E^!aNz|VR5*o=-AcY>7L zvZN5)ezNxhHM$K&t^?fyX$D&Oi}Yo|t;vTL2Cc5o6&gG&renZRVV!L~4^-jcl& zYKf?ypq5PxT9_^V$z9QDqSrw&TVLmP7I=2K(nST~u!~k$C%V}|Aj}j;jR?oCS5LWi z0+oA0LeX&yaa=`4yp27wbTy66#AOq*Tz-i4eCjdy3-6gU00ruZ)R{OgY}B} z>xAK-CC0J!1LgdYKs3haN?miO9|1}wIX)>WKQHoW>{o6qLQ(O`v+C#hx49?vtqNR8 z&QHX3Q>?3phZ5*1lq(gblF{re-Fhch3COH&JY;6+YQhG|7 P0T`^GE$lG-mqxa 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 +#include "GL/glew.h" +#include "GLFW/glfw3.h" +#include "stb_image.h" +class Texture +{ +private: + unsigned int m_RendererID; + std::string m_FilePath; + unsigned char *m_LocalBuffer; + int m_Width, m_Height, m_BPP; + +public: + Texture(const std::string &filePath); + ~Texture(); + + void Bind(unsigned int slot = 0) const; + void Unbind() const; + + inline int GetWidth() const { return m_Width; } + inline int GetHeight() const { return m_Height; } +}; + +Texture::Texture(const std::string &filePath) + : m_RendererID(0), m_FilePath(filePath), m_LocalBuffer(nullptr), m_Width(0), m_Height(0), m_BPP(0) +{ + stbi_set_flip_vertically_on_load(1); + m_LocalBuffer = stbi_load(filePath.c_str(), &m_Width, &m_Height, &m_BPP, 4); + glGenTextures(1, &m_RendererID); + glBindTexture(GL_TEXTURE_2D, m_RendererID); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, m_Width, m_Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_LocalBuffer); + glBindTexture(GL_TEXTURE_2D, 0); + if (m_LocalBuffer) + stbi_image_free(m_LocalBuffer); + else + std::cout << "Failed to load image" << std::endl; +} + +Texture::~Texture() +{ + glDeleteTextures(1, &m_RendererID); +} +void Texture::Bind(unsigned int slot) const +{ + glActiveTexture(GL_TEXTURE0 + slot); + glBindTexture(GL_TEXTURE_2D, m_RendererID); +} + +void Texture::Unbind() const +{ + glBindTexture(GL_TEXTURE_2D, 0); +} \ No newline at end of file diff --git a/src/a.out b/src/a.out index 2193bb2e5ab9f647fb2bf61935aa572ad8e68557..fac2fd7810faeafe9a6bdedc78b6f0db57a6624b 100755 GIT binary patch literal 303324 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 diff --git a/src/main.cpp b/src/main.cpp index 0b2b269..6ac9375 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,12 +2,15 @@ #include #include #include - #include "Renderer.h" #include "VertexBuffer.h" #include "IndexBuffer.h" #include "VertexArray.h" #include "Shader.h" +#include "Texture.h" + +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" static void GLClearError() { @@ -56,11 +59,11 @@ int main() std::cout << glGetString(GL_VERSION) << std::endl; - float points[12] = { - -0.5f, -0.5f, 0.0f, // 0 - -0.5f, 0.5f, 0.0f, // 1 - 0.5f, 0.5f, 0.0f, // 2 - 0.5f, -0.5f, 0.0f // 3 + float points[] = { + -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, // 0 + 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, // 1 + 0.5f, 0.5f, 0.0f, 1.0f, 1.0f, // 2 + -0.5f, 0.5f, 0.0f, 0.0f, 1.0f // 3 }; unsigned int indices[6] = { @@ -72,9 +75,10 @@ int main() glBindVertexArray(vao); VertexArray va; - VertexBuffer vb(points, 12 * sizeof(float)); + VertexBuffer vb(points, 20 * sizeof(float)); VertexBufferLayout layout; layout.Push(3); + layout.Push(2); va.AddBuffer(vb, layout); // glEnableVertexAttribArray(0); @@ -84,7 +88,11 @@ int main() Shader shader("Basic.shader"); shader.Bind(); - shader.SetUniform4f("u_Color", 0.0f, 0.7f, 0.5f, 1.0f); + // shader.SetUniform4f("u_Color", 0.0f, 0.7f, 0.5f, 1.0f); + + Texture texture("../res/textures/sample.jpg"); + texture.Bind(); + shader.SetUniform1i("u_Texture", 0); va.Unbind(); vb.Unbind(); @@ -100,7 +108,7 @@ int main() renderer.Clear(); shader.Bind(); - shader.SetUniform4f("u_Color", r, 0.7f, 0.5f, 1.0f); + // shader.SetUniform4f("u_Color", r, 0.7f, 0.5f, 1.0f); renderer.Draw(va, ib, shader); if (r > 1.0f) diff --git a/src/stb_image.h b/src/stb_image.h new file mode 100644 index 0000000..accef48 --- /dev/null +++ b/src/stb_image.h @@ -0,0 +1,7762 @@ +/* stb_image - v2.26 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko [reserved] + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data) +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// By default we convert iphone-formatted PNGs back to RGB, even though +// they are internally encoded differently. You can disable this conversion +// by calling stbi_convert_iphone_png_to_rgb(0), in which case +// you will always just get the native iphone "format" through (which +// is BGR stored in RGB). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + + #ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); + #endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS + #if defined(__cplusplus) && __cplusplus >= 201103L + #define STBI_THREAD_LOCAL thread_local + #elif defined(__GNUC__) && __GNUC__ < 5 + #define STBI_THREAD_LOCAL __thread + #elif defined(_MSC_VER) + #define STBI_THREAD_LOCAL __declspec(thread) + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) + #define STBI_THREAD_LOCAL _Thread_local + #endif + + #ifndef STBI_THREAD_LOCAL + #if defined(__GNUC__) + #define STBI_THREAD_LOCAL __thread + #endif + #endif +#endif + +#ifdef _MSC_VER +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (32 - (y)))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +// assume GCC or Clang on ARM targets +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE*) user, n, SEEK_CUR); + ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) { + ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user) || ferror((FILE *) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +static +#ifdef STBI_THREAD_LOCAL +STBI_THREAD_LOCAL +#endif +const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0) return 0; + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0) return 0; + if (b == 0) return 1; // mul-by-0 is always safe + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)) return NULL; + return stbi__malloc(a*b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; + return stbi__malloc(a*b*c*d + add); +} +#endif + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNG + if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); + #else + STBI_NOTUSED(bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)) + return stbi__tga_load(s,x,y,comp,req_comp, ri); + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + + for (i = 0; i < img_len; ++i) + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) { + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL) + return NULL; + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) { + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename))) + return 0; + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode))) + return 0; + +#if _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)) + f = 0; +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)) + f=0; +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data) + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data) + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f) return stbi__errpf("can't fopen", "Unable to open file"); + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end) + return *s->img_buffer++; + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)) return 0; + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0) return 1; + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0) return; // already there! + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else + return 0; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + return z + (stbi__get16le(s) << 16); +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n) return data; + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data) return NULL; + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) { + for (i=0; i < x*y; ++i) { + output[i*comp + n] = data[i*comp + n]/255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data) return NULL; + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1) n = comp; else n = comp-1; + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0) z = 0; + if (z > 255) z = 255; + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) + for (j=0; j < count[i]; ++j) + h->size[k++] = (stbi_uc) (i+1); + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j) + h->code[k++] = (stbi__uint16) (code++); + if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m) k += (~0U << magbits) + 1; + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127) + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits) + return -1; + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k) + if (temp < h->maxcode[k]) + break; + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits) + return -1; + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); + + sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB + k = stbi_lrot(j->code_buffer, n); + if (n < 0 || n >= (int) (sizeof(stbi__bmask)/sizeof(*stbi__bmask))) return 0; + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & ~sgn); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n) stbi__grow_buffer_unsafe(j); + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0) break; // end block + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t == -1) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + diff = t ? stbi__extend_receive(j, t) : 0; + + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc << j->succ_low); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)) + data[0] += (short) (1 << j->succ_low); + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) << shift); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) << shift); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0) + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r) + j->eob_run += stbi__jpeg_get_bits(j, r); + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); + // sign bit + if (stbi__jpeg_get_bit(j)) + s = bit; + else + s = -bit; + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)) + if ((*p & bit)==0) { + if (*p > 0) + *p += bit; + else + *p -= bit; + } + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0) return 0; + if (x > 255) return 255; + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff) return STBI__MARKER_none; + while (x == 0xff) + x = stbi__get8(j->s); // consume repeated 0xff fill bytes + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) + return 0; + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) + return 0; + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); + if (!STBI__RESTART(z->marker)) return 1; + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i) + data[i] *= dequant[i]; +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); + if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); + + for (i=0; i < 64; ++i) + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i) + v[i] = stbi__get8(z->s); + if (tc != 0) + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE) + return stbi__err("bad COM len","Corrupt JPEG"); + else + return stbi__err("bad APP len","Corrupt JPEG"); + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 5; + if (ok) + z->jfif = 1; + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i) + if (stbi__get8(z->s) != tag[i]) + ok = 0; + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); + if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which) + if (z->img_comp[which].id == id) + break; + if (which == z->s->img_n) return 0; // no match + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) + return stbi__err("bad SOS", "Corrupt JPEG"); + } else { + if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); + if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG + p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline + s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG + s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) + ++z->rgb; + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); + } + + if (scan != STBI__SCAN_load) return 1; + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; + if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL) + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); + if (scan == STBI__SCAN_type) return 1; + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)) return 0; + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)) return 0; + return 1; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)) return 0; + if (!stbi__parse_entropy_coded_data(j)) return 0; + if (j->marker == STBI__MARKER_none ) { + // handle 0s at the end of image data from IP Kamera 9060 + while (!stbi__at_eof(j->s)) { + int x = stbi__get8(j->s); + if (x == 255) { + j->marker = stbi__get8(j->s); + break; + } + } + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); + if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); + } else { + if (!stbi__process_marker(j, m)) return 0; + } + m = stbi__get_marker(j); + } + if (j->progressive) + stbi__jpeg_finish(j); + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i) + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i) + for (j=0; j < hs; ++j) + out[i*hs+j] = in_near[i]; + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } + if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } + if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb) + decode_n = 1; + else + decode_n = z->s->img_n; + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; + else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; + else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; + else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; + else r->resample = stbi__resample_row_generic; + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y) + r->line1 += z->img_comp[k].w2; + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } + } else { + if (is_rgb) { + if (n == 1) + for (i=0; i < z->s->img_x; ++i) + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1) + for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; + else + for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x) *x = j->s->img_x; + if (y) *y = j->s->img_y; + if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[288]; + stbi__uint16 value[288]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i) + ++sizes[sizelist[i]]; + sizes[0] = 0; + for (i=1; i < 16; ++i) + if (sizes[i] > (1 << i)) + return stbi__err("bad sizes", "Corrupt PNG"); + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]) + if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + if (z->code_buffer >= (1U << z->num_bits)) { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n) stbi__fill_bits(z); + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s) + if (k < z->maxcode[s]) + break; + if (s >= 16) return -1; // invalid code! + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= sizeof (z->size)) return -1; // some data was corrupt somewhere! + if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) { + if (stbi__zeof(a)) { + return -1; /* report error for unexpected end of data. */ + } + stbi__fill_bits(a); + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (unsigned int) (z->zout - z->zout_start); + limit = old_limit = (unsigned) (z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); + while (cur + n > limit) { + if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); + limit *= 2; + } + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL) return stbi__err("outofmem", "Out of memory"); + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)) return 0; + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + return 1; + } + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); + if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); + if (zout + len > a->zout_end) { + if (!stbi__zexpand(a, zout, len)) return 0; + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do *zout++ = v; while (--len); } + } else { + if (len) { do *zout++ = *p++; while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); + if (c < 16) + lencodes[n++] = (stbi_uc) c; + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); + fill = lencodes[n-1]; + } else if (c == 17) { + c = stbi__zreceive(a,3)+3; + } else if (c == 18) { + c = stbi__zreceive(a,7)+11; + } else { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7) + stbi__zreceive(a, a->num_bits & 7); // discard + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); + // now fill header the normal way + while (k < 4) + header[k++] = stbi__zget8(a); + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); + if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); + if (a->zout + len > a->zout_end) + if (!stbi__zexpand(a, a->zout, len)) return 0; + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec + if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png + if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[288] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header) + if (!stbi__parse_zlib_header(a)) return 0; + a->num_bits = 0; + a->code_buffer = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)) return 0; + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , 288)) return 0; + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; + } else { + if (!stbi__compute_huffman_codes(a)) return 0; + } + if (!stbi__parse_huffman_block(a)) return 0; + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) + return (int) (a.zout - a.zout_start); + else + return -1; +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL) return NULL; + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen) *outlen = (int) (a.zout - a.zout_start); + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) + return (int) (a.zout - a.zout_start); + else + return -1; +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i) + if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filters used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static int stbi__paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p-a); + int pb = abs(p-b); + int pc = abs(p-c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out) return stbi__err("outofmem", "Out of memory"); + + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); + + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *prior; + int filter = *raw++; + + if (filter > 4) + return stbi__err("invalid filter","Corrupt PNG"); + + if (depth < 8) { + if (img_width_bytes > x) return stbi__err("invalid width","Corrupt PNG"); + cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place + filter_bytes = 1; + width = img_width_bytes; + } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // handle first byte explicitly + for (k=0; k < filter_bytes; ++k) { + switch (filter) { + case STBI__F_none : cur[k] = raw[k]; break; + case STBI__F_sub : cur[k] = raw[k]; break; + case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; + case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break; + case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break; + case STBI__F_avg_first : cur[k] = raw[k]; break; + case STBI__F_paeth_first: cur[k] = raw[k]; break; + } + } + + if (depth == 8) { + if (img_n != out_n) + cur[img_n] = 255; // first pixel + raw += img_n; + cur += out_n; + prior += out_n; + } else if (depth == 16) { + if (img_n != out_n) { + cur[filter_bytes] = 255; // first pixel top byte + cur[filter_bytes+1] = 255; // first pixel bottom byte + } + raw += filter_bytes; + cur += output_bytes; + prior += output_bytes; + } else { + raw += 1; + cur += 1; + prior += 1; + } + + // this is a little gross, so that we don't switch per-pixel or per-component + if (depth < 8 || img_n == out_n) { + int nk = (width - 1)*filter_bytes; + #define STBI__CASE(f) \ + case f: \ + for (k=0; k < nk; ++k) + switch (filter) { + // "none" filter turns into a memcpy here; make that explicit. + case STBI__F_none: memcpy(cur, raw, nk); break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; + } + #undef STBI__CASE + raw += nk; + } else { + STBI_ASSERT(img_n+1 == out_n); + #define STBI__CASE(f) \ + case f: \ + for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \ + for (k=0; k < filter_bytes; ++k) + switch (filter) { + STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break; + } + #undef STBI__CASE + + // the loop above sets the high byte of the pixels' alpha, but for + // 16 bit png files we also need the low byte set. we'll do that here. + if (depth == 16) { + cur = a->out + stride*j; // start at the beginning of the row again + for (i=0; i < x; ++i,cur+=output_bytes) { + cur[filter_bytes+1] = 255; + } + } + } + } + + // we make a separate pass to expand bits to pixels; for performance, + // this could run two scanlines behind the above code, so it won't + // intefere with filtering but will still be in the cache. + if (depth < 8) { + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes; + // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit + // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + + // note that the final byte might overshoot and write more data than desired. + // we can allocate enough data that this never writes out of memory, but it + // could also overwrite the next scanline. can it overwrite non-empty data + // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. + // so we need to explicitly clamp the final ones + + if (depth == 4) { + for (k=x*img_n; k >= 2; k-=2, ++in) { + *cur++ = scale * ((*in >> 4) ); + *cur++ = scale * ((*in ) & 0x0f); + } + if (k > 0) *cur++ = scale * ((*in >> 4) ); + } else if (depth == 2) { + for (k=x*img_n; k >= 4; k-=4, ++in) { + *cur++ = scale * ((*in >> 6) ); + *cur++ = scale * ((*in >> 4) & 0x03); + *cur++ = scale * ((*in >> 2) & 0x03); + *cur++ = scale * ((*in ) & 0x03); + } + if (k > 0) *cur++ = scale * ((*in >> 6) ); + if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03); + if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03); + } else if (depth == 1) { + for (k=x*img_n; k >= 8; k-=8, ++in) { + *cur++ = scale * ((*in >> 7) ); + *cur++ = scale * ((*in >> 6) & 0x01); + *cur++ = scale * ((*in >> 5) & 0x01); + *cur++ = scale * ((*in >> 4) & 0x01); + *cur++ = scale * ((*in >> 3) & 0x01); + *cur++ = scale * ((*in >> 2) & 0x01); + *cur++ = scale * ((*in >> 1) & 0x01); + *cur++ = scale * ((*in ) & 0x01); + } + if (k > 0) *cur++ = scale * ((*in >> 7) ); + if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01); + if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01); + if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01); + if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01); + if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01); + if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01); + } + if (img_n != out_n) { + int q; + // insert alpha = 255 + cur = a->out + stride*j; + if (img_n == 1) { + for (q=x-1; q >= 0; --q) { + cur[q*2+1] = 255; + cur[q*2+0] = cur[q]; + } + } else { + STBI_ASSERT(img_n == 3); + for (q=x-1; q >= 0; --q) { + cur[q*4+3] = 255; + cur[q*4+2] = cur[q*3+2]; + cur[q*4+1] = cur[q*3+1]; + cur[q*4+0] = cur[q*3+0]; + } + } + } + } + } else if (depth == 16) { + // force the image data from big-endian to platform-native. + // this is done in a separate pass due to the decoding relying + // on the data being untouched, but could probably be done + // per-line during decode if care is taken. + stbi_uc *cur = a->out; + stbi__uint16 *cur16 = (stbi__uint16*)cur; + + for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) { + *cur16 = (cur[0] << 8) | cur[1]; + } + } + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced) + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) + p[3] = 0; + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL) return stbi__err("outofmem", "Out of memory"); + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load = 0; +static int stbi__de_iphone_flag = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag = flag_true_if_should_convert; +} + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]={0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)) return 0; + + if (scan == STBI__SCAN_type) return 1; + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); + first = 0; + if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); + color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); + if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); + comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); + filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); + interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); + if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); + if (scan == STBI__SCAN_header) return 1; + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); + // if SCAN_header, have to scan to see if we have a tRNS + } + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); + pal_len = c.length / 3; + if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); + if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); + pal_img_n = 4; + for (i=0; i < c.length; ++i) + palette[i*4+3] = stbi__get8(s); + } else { + if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); + if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); + has_trans = 1; + if (z->depth == 16) { + for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); + if (scan == STBI__SCAN_header) { s->img_n = pal_img_n; return 1; } + if ((int)(ioff + c.length) < (int)ioff) return 0; + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; + while (ioff + c.length > idata_limit) + idata_limit *= 2; + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if (scan != STBI__SCAN_load) return 1; + if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL) return 0; // zlib should set error + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) + s->img_out_n = s->img_n+1; + else + s->img_out_n = s->img_n; + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) + stbi__de_iphone(z); + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3) s->img_out_n = req_comp; + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) + return 0; + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first) return stbi__err("first not IHDR", "Corrupt PNG"); + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth <= 8) + ri->bits_per_channel = 8; + else if (p->depth == 16) + ri->bits_per_channel = 16; + else + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8) + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + else + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); + p->s->img_out_n = req_comp; + if (result == NULL) return result; + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n) *n = p->s->img_n; + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x) *x = p->s->img_x; + if (y) *y = p->s->img_y; + if (comp) *comp = p->s->img_n; + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) + return 0; + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B') return 0; + if (stbi__get8(s) != 'M') return 0; + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0) return -1; + if (z >= 0x10000) { n += 16; z >>= 16; } + if (z >= 0x00100) { n += 8; z >>= 8; } + if (z >= 0x00010) { n += 4; z >>= 4; } + if (z >= 0x00004) { n += 2; z >>= 2; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0) + v <<= -shift; + else + v >>= shift; + STBI_ASSERT(v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; + int extra_read; +} stbi__bmp_data; + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else { + int i; + if (hsz != 108 && hsz != 124) + return stbi__errpuc("bad BMP", "bad BMP"); + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i) + stbi__get32le(s); // discard color space parameters + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL) + return NULL; // error code already set + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24) + psize = (info.offset - info.extra_read - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - info.extra_read - info.hsz) >> 2; + } + if (psize == 0) { + STBI_ASSERT(info.offset == s->callback_already_read + (int) (s->img_buffer - s->img_buffer_original)); + if (info.offset != s->callback_already_read + (s->img_buffer - s->buffer_start)) { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } + } + + if (info.bpp == 24 && ma == 0xff000000) + s->img_n = 3; + else + s->img_n = ma ? 4 : 3; + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 + target = req_comp; + else + target = s->img_n; // if they want monochrome, we'll post-convert + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "Corrupt BMP"); + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12) stbi__get8(s); + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1) width = (s->img_x + 7) >> 3; + else if (info.bpp == 4) width = (s->img_x + 1) >> 1; + else if (info.bpp == 8) width = s->img_x; + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + if (i+1 == (int) s->img_x) break; + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4) out[z++] = 255; + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24) width = 3 * s->img_x; + else if (info.bpp == 16) width = 2*s->img_x; + else /* bpp = 32 and pad = 0 */ width=0; + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) + easy = 2; + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4) out[z++] = a; + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4) out[z++] = STBI__BYTECAST(a); + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0) + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) + out[i] = 255; + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i]; p1[i] = p2[i]; p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16) *is_rgb16 = 0; + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey) return STBI_grey_alpha; + // fallthrough + case 15: if(is_rgb16) *is_rgb16 = 1; + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x) *x = tga_w; + if (y) *y = tga_h; + if (comp) *comp = tga_comp; + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width + if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); + else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); + + // tga info + *x = tga_width; + *y = tga_height; + if (comp) *comp = tga_comp; + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) + return stbi__errpuc("too large", "Corrupt TGA"); + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + if (tga_palette_len == 0) { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j) + tga_data[i*tga_comp+j] = raw_data[j]; + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp) + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft) return 0; // corrupt data + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft) return 0; // corrupt data + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" + return stbi__errpuc("not PSD", "Corrupt PSD image"); + + // Check file type version. + if (stbi__get16be(s) != 1) + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16) + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3) + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1) + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)) + return stbi__errpuc("too large", "Corrupt PSD"); + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else + out = (stbi_uc *) stbi__malloc(4 * w*h); + + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4) + *p = (channel == 3 ? 255 : 0); + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4) + *q = val; + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4) + *p = val; + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4) + *q = (stbi__uint16) stbi__get16be(s); + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4) + *p = (stbi_uc) (stbi__get16be(s) >> 8); + } else { + for (i = 0; i < pixelCount; i++, p += 4) + *p = stbi__get8(s); + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16) + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); + else + out = stbi__convert_format(out, 4, req_comp, w, h); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + + if (comp) *comp = 4; + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i) + if (stbi__get8(s) != (stbi_uc)str[i]) + return 0; + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) + return 0; + + for(i=0;i<84;++i) + stbi__get8(s); + + if (!stbi__pic_is4(s,"PICT")) + return 0; + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1) + if (channel&mask) + dest[i]=src[i]; +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return stbi__errpuc("bad format","too many packets"); + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); + if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)) + return 0; + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); + + if (count > left) + count = (stbi_uc) left; + + if (!stbi__readval(s,packet->channel,value)) return 0; + + for(i=0; ichannel,dest,value); + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128) + count = stbi__get16be(s); + else + count -= 127; + if (count > left) + return stbi__errpuc("bad file","scanline overrun"); + + if (!stbi__readval(s,packet->channel,value)) + return 0; + + for(i=0;ichannel,dest,value); + } else { // Raw + ++count; + if (count>left) return stbi__errpuc("bad file","scanline overrun"); + + for(i=0;ichannel,dest)) + return 0; + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp) comp = &internal_comp; + + for (i=0; i<92; ++i) + stbi__get8(s); + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); + if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0) req_comp = *comp; + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; + sz = stbi__get8(s); + if (sz != '9' && sz != '7') return 0; + if (stbi__get8(s) != 'a') return 0; + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') + return stbi__err("not GIF", "Corrupt GIF"); + + version = stbi__get8(s); + if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); + if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); + + if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments + + if (is_info) return 1; + + if (g->flags & 0x80) + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x) *x = g->w; + if (y) *y = g->h; + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0) + stbi__out_gif_code(g, g->codes[code].prefix); + + if (g->cur_y >= g->max_y) return; + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12) return NULL; + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0) + return g->out; + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0) + stbi__skip(s,len); + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail) + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) + return stbi__errpuc("too large", "GIF image is too large"); + pcount = g->w * g->h; + g->out = (stbi_uc *) stbi__malloc(4 * pcount); + g->background = (stbi_uc *) stbi__malloc(4 * pcount); + g->history = (stbi_uc *) stbi__malloc(pcount); + if (!g->out || !g->background || !g->history) + return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))) + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0) + g->cur_y = g->max_y; + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else + return stbi__errpuc("missing color table", "Corrupt GIF"); + + o = stbi__process_gif_raster(s, g); + if (!o) return NULL; + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); + if (NULL == tmp) { + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + return stbi__errpuc("outofmem", "Out of memory"); + } + else { + out = (stbi_uc*) tmp; + out_size = layers * stride; + } + + if (delays) { + *delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); + delays_size = layers * sizeof(int); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + out_size = layers * stride; + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + delays_size = layers * sizeof(int); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4) + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s) u = 0; // end of animated gif marker + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4) + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); + } else if (g.out) { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i) + if (stbi__get8(s) != signature[i]) + return 0; + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2) + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2) output[1] = 1; + if (req_comp == 4) output[3] = 1; + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) + return stbi__errpf("not HDR", "Corrupt HDR image"); + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); + token += 3; + width = (int) strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); + + *x = width; + *y = height; + + if (comp) *comp = 3; + if (req_comp == 0) req_comp = 3; + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) + return stbi__errpf("too large", "HDR image is too large"); + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data) + return stbi__errpf("outofmem", "Out of memory"); + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = value; + } else { + // Dump + if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z) + scanline[i++ * 4 + k] = stbi__get8(s); + } + } + } + for (i=0; i < width; ++i) + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); + } + if (scanline) + STBI_FREE(scanline); + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0) break; + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' ') ++token; + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + stbi__rewind( s ); + if (p == NULL) + return 0; + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000) + *comp = 3; + else + *comp = info.ma ? 4 : 3; + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + (void) stbi__get32be(s); + (void) stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])) + return 0; + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) +// Does not support 16-bit-per-channel + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + if (!stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n)) + return 0; + + if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad3sizes_valid(s->img_n, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad3(s->img_n, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + stbi__getn(s, out, s->img_n * s->img_x * s->img_y); + + if (req_comp && req_comp != s->img_n) { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + if (out == NULL) return out; // stbi__convert_format frees input on failure + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) + *c = (char) stbi__get8(s); + + if (stbi__at_eof(s) || *c != '#') + break; + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) + *c = (char) stbi__get8(s); + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x) x = &dummy; + if (!y) y = &dummy; + if (!comp) comp = &dummy; + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + + if (maxv > 255) + return stbi__err("max value > 255", "PPM image not 8-bit"); + else + return 1; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)) return 1; + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)) return 1; + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)) + return 1; + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)) return 1; + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)) return 1; + #endif + + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + fseek(f,pos,SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f) return stbi__err("can't fopen", "Unable to open file"); + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f,pos,SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/