From 78b9d61baf8df12fb50d76be0620bcfcc472f8b7 Mon Sep 17 00:00:00 2001 From: "wagic.jeck" Date: Fri, 4 Sep 2009 20:41:31 +0000 Subject: [PATCH] Jeck - Crashfix for cache, proposed replacement for icon.png * Please comment on new icon.png with any suggestions. * Prevents RemoveOldestTexture from deleting things it shouldn't --- projects/mtg/icon.png | Bin 16757 -> 15601 bytes projects/mtg/include/WResourceManager.h | 2 +- projects/mtg/src/WResourceManager.cpp | 31 ++++++++++++++++++------ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/projects/mtg/icon.png b/projects/mtg/icon.png index 7185ef6b164935266041342cd97db187f274d1ec..51d15ba4403a0453da6c09505e5d43e5ff0e8700 100644 GIT binary patch literal 15601 zcmVKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}001%!Nklf~1i~Iam&| zEeC9jZET`R%fiAP3yT4pWlh)vjy-N+1DGWr%Pz~3F*d>Mve*RM7~_a@P_S$zD~zNW zrP1Wvq2Bxb?vGd1UER|o3GU|89*w)Js;hqA_sijtYHkAn5`X}L|4II>{h_%&qv~G( zAb^_nY2`GEKze1|7&k%rA zb2~^tl%iCMsx%iwb*QXnAEv6Q{|A%*j{-_g3W&@;LQaN_)T4NPV5%v8x~NFioeD^` zw5KpQIo;@F7|@)D)w|OFCu~Gc3#Tf)WNvt>v7yufa#G6HVHbhaAa}Z`m}-e6C#PL4 zA5aPdsrTk-{m>uJ6LUcuKV*#@762p_86agjED0}rwq^kclE`!aM=U=)K?&r+phWCL zd0>bjl03dZ64J!)C+A9<;FNwM14Y$DIUQD*1&jcSPEB$8f5b-S6q{Uq*legos?QRD zsJu)`s<83T!jhsmB@5iIzw*^m#3hJ8c~p>wkScdo7ZpMUIlxr3dgY5#FworeqSO=C zKt+EPE1VjUIn0D=KByd#mJex=X2FxNPQo{7U?5-urRXCGVe5>xD{Lvj*5PbVe!AFD;^WVT)+&S&3ndil@dp$c`X_(sa|sw~YoIV=9Ct}Lpc zLV)t9_?1K{6?QTS1^{Lb7^v3jO#|m;t2zk-0jZDY(691 zl$l^QHs!~RnWhSuvM3{p4OC8DA!e5fD*lgIsGLNvpv)*{ma9SWIc1(80uh9u(t3uf zOc$zWa#0Q4A+c_hDofGd3Z06J(v}DDoJUKw*Q3(b6wSdsWy&V+pA48pHzG>OY} zhmb!#K}D)KsT!4(LMA}Sq}P8+J$Nt_k%FQam9(a(gzi!Xh~l%H2nvq>~4V)0l?z1Ve%h|R8aBf zs#qY103sv;5Q`9`3JjX<)KN7*Nga49dK)Rz237V|g?s9;3njFc6k4^Y!~iG=S4^*3 z`)aoMGAR{O5mTfzNI@%723kXDC`C#E6dTP12vTz>nggL4OSi%|iA<~5PX1t(wy8)wr3LA=e=<}^ zAVh?+Wh_!_U)2*|HC#d<&lv=*NC(h{w1F}(nv@|G+hrm`vEd<=hxd!z<3TAs6x;X$ zFoeMj!*C2R1R@nLi7Lw?7HlF+%pfQ1pja`pxN50Y$0w!ALWyO2g$d@w#xsqoaE$U4 zFH@OGD2AqDbj@1(DO9L}iYS0%^;69vgc@5pt=_#R@FL5QGSG%h0FxmTC}W@%lqOP$ zg^|R!#a^By)Ktn7msEm{2$&fFGlWT;FoPYKMYt@;{YfC5Vkv+foD*%yS#cH+1;vgl zHbY$lEaioi;hBX^B3vrKP{OQB;G9X-&WT1bD)xTr=b#QndY`?AKoBs z9Z~X93QCg+5N60^RFEMPzyxG85=cmdM5H2r{OVS!d<9bJ^{$1%ENtPJ*}_>c!z&e{ z_$*RF6#GXWNOoY0NP7~90AiDcT%*!a#|25jQ;SUv(|7{uG7O3oRo1HpgyENv7UI|< zu7?V$RJZ@9tW;`ZvRv({5Fk~qV%c+7PzqW@8&ZKX0cAo8GGs#Nz-yGmc4EKMz4Rfa zh!nH}5bGXN@skUSFr0&nz)m>}XPKGAQQ4Xx1*Mcyo&!V}?6h+nMUbLb^aK%M1!3n> zX@I&OVzmoW#wI2td5Eim0*S~aQc!-4Dkvx+7KUgjCT1{u1CY|FR3uondZ^|B0!f)s zs#v5-m!#CYN^IX47!9o#wYqPv{4&sRLrZqc0 z`HC%TRv4JYP>rCl8f*;;p~CTe<}Lr$y6J#Y>>wsFC;})&+QjSyCSh^*y_XIh8fdt8 zi!d{s6S8UBp}vnPHLk8yyN6|FlCt8C9i#Z!y^v7KXn=&2CnKCd9J7OSL}jy_6AhoT zsj6ZpM3ho{G3fxV5n2@>$t>uu7+p$1DN>qDh%lsVg9);f&9yi4Ctv))C1;j4tObQj zVA`RYq2~kcmH*ncrPqL+zwS9r2S0Mb{b#Si>SZwDLYNMa0T3g^dGN$5|Ml!mhq7Sn z&pNAf{K|DF8goho&Crcd8sb*84!q+>?Vv7<*aF*GEB{9V1 z56E{(wX73KMTd!$f+nR5l#bVjB8UPQeofd&yjEi;&Lu(uvE9WIF9I&d=OwX*Dh?Kx zydxux7&f9w$&>f)gpYLgVd|v?P#5%BlF@z;nLa5kvP!N&{DKMl0QVLp8`D#A45(_tq6{k`aWlU+mBJDJj z^6^cnAD`8#sU?X$crofNAI~d>v>_8v5Dd}cd3Gp2Ix#SU&eoavZA+l%_l{-0^H?K+ zD~Kw7PpUOatonyAUt|t;m7YihCvESkyfM>ktVH3X(In!L`qR?xm9_Q zQYBz1ZHB1wLW`FZr{eqN_2?MjoxHIa;YdFY_X9Em3V|R=weAx zc8GYH+OiY(KZWV>eoz3){QJXQBQv@phbtbBR$3!| zsraRIy!O4cF$zXO8%0_vqm+gTVFCmp1tFOXnUKN^1z8HR6oeFJDa@!atAZ?LvJ^I` zY?I35RxZS2pEmU~~+> zcMr+|CsjX6XR0#^1R?>G#C`*q!B)hQbI0uBqi)&iu&;jzup`I@tqqB{7<+s|EMO|C zV6U8eK0m_>`4S)wssX_B$D5=a<&s3gCNa^&vRrEn453&;qcBL{@>DydSTSG}ffSJz z1qi7+SzeB>PAN~zGd&W!Tv2&}R~!KG5=cX9r3}JQ0z*1OCit5xA3t|#>kmHM@y0KY zjf@r)5qqU$OHdllu?Qd<#6CtI2NXn@NyWletOXHSE6{-RJ`Pt!Qz~|Wp_*(&OfwM{ zuw%B$TC!Gb#5U^V)yr((u>l}D3@NlU7i4^3L(LRseGA=C+X;VsQ`$;aGSp4FlqopU6Nu&0UEFcz=Up zo8Cu>RAOfnrK8sZC{loe(WCqL?S%p5-^6^c*AAB0Jq_nhG(u@PKEY+s1hUtpdb z887r5x69^@Lp7~zm*EL-b+E7_C?SxzLGB!qgI;iAOiG?cFg*^O3V?E)=Y8b zVj$=S=xe`U;7uC;kOU>9$w+OUDvnMH1e6ZAR$`b0rIi6}ubVd?M2f|j zM0r9Fn&nH>iO~t!d*yT5^R|O99h$>(;IVLx!ZFgxM=Z zO`0?uiB5-1s1jroNmcHMPc6iZrHDvFX)1?MNtI*XiPJ_zinIn4>3~d-SLTPkue-|p zX7@o{*nHq~_iyMK%ThoPKxyS7VJ=Hur3j?s)#98m!$oirMI|W`1Hw$gVwfT&;^Q+3 z9M%4!nU$}V3Zt+CJ7NcC#YW^Jaqgg7y}@lga2PL%jv;&Q^7d5VuWW-d12V{qM367w z&@r6ZIR@Q&#Tt;(N*N)`iYc~;ymF>>jfdwqWBFnNW$xJC>P>!@SY8nzieY>rjo`!5 z{*GgPCc46Km6Q)iky6kmMnY*QAN5hG3IZy7hy(+zNgHT$P@U7n)2|%+{aw2j|H~8W zRS+=|DTPRr3q_o_nqu2Xk%kfooD=7SEkz|E1%?u4XT&ks#StkVPpfkAS0pW_rdKw?t(;!k3j|VA#fDgPR3ty?UGDuV) z0}w6~TE*O;ptVoOee9~9s}7A;I5Vy}u=j5XbZBj z6T?*N!=@O;RHfT0wGK(@$%kwm3p=nS8%baf%jzYQ1A7l)earB<-SgU;%8G@!mdIhbV%zAi~1VqZ>L-YeP-*2AUX^?1k?HYbLlg8n~_O^(!?Aeul3~}&#hck zXlh-uy?_1#`{n^QW;m^tQt&>nQl#{%w&{0Yyyt^g9YfFs-S(SZ-9LVM-u?Sb*#LdZ z*+-YRDd?uJ{Jz;=WPVuu;#I$W%SA_^yB^z@`S2a@I5ghu7v8em(DLxeYZg7ZtZQ)X z^1(H$i%?B>?dpKiUAeKl-}tp9-AiCPfea{s6t*AJckW*L)kl^?@xQ+Gwm&`pFmyZY z(80sSp2HZOKxEP0n%}s-XF-=ixZ?I_!Z=f2uehdS3RiPURVuDh_9z5lh!$aHCbrr+ zuw!-uwtdXD96UOXs0VVKH7NabMB6}-4x`Oz;r;jum9o-75dB+ZaC+6SFSvaa9Q8j!s~x|;n1`O zoY$>=Gwpqa1)HZgTyy-MOHcHzS>C^W^n%U(%}^?`YSVT!=8m>5XoYTu9lYUJ=iR<% z9oUlLPoDdWOS%s?&C3D$k)8$r@Vm>l4|X)F{Ds-A7c^|k=kceVCmuPtc6bV@as$jN z0F*?_r~Hyr)K&?{FJ@s!KHSFc2-Yka+cG#f-q|$%hI1P~@(V2rBpPv$-dxe~{PNbZ zRZB5Ag0U$)@f^Ar?d@E?2H~pLZ;*d^B!E(Jz>et3wryv2jW1Zx(Kpt7)27ZiBjWAU zBtUZh!jT`m?Y`x0`9nvr=MW~Qz=Fk{{b#M|Z(lI{fy>rjvE=Yf0WA$0x_$eJwlQwd z8HmUm7e4Xg1$!5C1TbCScyi^?jEUVhVK7JtB6$S&^&CO_ zd|c5!4%POB$6xe|{i{i{Q1J53XEwI(?dkx670(}Qe$!7c_DQ*Es~;&|bZ~lMWAj7e z#va}Q|6S~9n9_Om3OQm%F(>O)5MT7di5u?{RCtIxiY4srMd#A~mh8fpuL~d8ANX`S zL6Oq0?0jl@7nUtuyn8BV^|6tG{FYs~rmGL(>J5wS%hzQd*dN4#3-a=gr`Ih9f@R-) zY)O(6^Ik%1oW5%Lfgir(-XPoY&BxC8)WcVJkY3XG%<8_qJNEToykXBp=M8P>6tIC= z2-WgfUnhbPz&x6{qUFi<`9Nmvc(L)OO^YBUaW;-a3xpN45K)0MkB?t`XyCCQZCO|* zhjW;k0aOEmuIC23pfrR?@#XWLY{;RhbqRFaXYX4hWvR{%%)N#7pYOZy9m7xF^ni#h ziM8+!mP_2^lQv|iIz?QyrL-aV# zt!^JXV^sjN=!bi*+@9YMMcCI16nDXmLhKc5*xUZ3&6$n8tJ=mEcg-6wHvMwP{7Tw@ zh?F5^Ub^JaKfUbUAiMCcJ?DMu_m?N}Gqe741*1TMmS4zxmkWkr^G^T8S^csA1~5 z^}p|42!t!Y@%S1*gq^rZTm)y?xo706of9jb*oFt626!4|03Iv)i|b{kM=9hQ=YyJh zN3+6CoE3I(mYjogV9V@;W8wV67hdFVpw3cGMCe)JP9iMo%t5!`xuX+oB`Qf&lu}WO zc`nXyVOk2)U;S;j6!TKdb5sIHKC%LKe5$S`b;?ptNkY7_MsYq6$;Wx=l<^y*1n9OI!3kQKx4YK;`3Q#M}{FvvW%gNp@d<*md_QRkY!We}W#&Lr17JEq;i2Jx zof8*{Epe&H#k>^rQk>z!j1*_2nCGa7s3W8sSw~>Y&Vk*4 z>kz@gBS3T%z@MBG`TY4cosX?q3Ir=|eSSsHNEYnCwkNmi(CV}I;v%u}3pNrL9hUB*WUa;2 z3?LCG@cznDeK_DkTPvX3K$-EpN?hQiwy&J1sH*5xaVWH2dq%q+2{_-@0_gc5we7G0 zJ2(q#;XJS8rI_bZo=Zh86{J)W8%Y%V55jV)#=g_w5@h%IyFS0NdF-{_n>VZj zRNL1d>GBtkWrzp}YqN)=2n*T()!a86`p9Mll~{Z^Fb|pKVSr*0Kvcf>c`{OpkPQKq zL3MUQ#c4X_y+0zA#EGelkgi9Y`83RomL@>8fHI>q6h{rbNOX}zkwhgaMG_UomS9T~ zMTs>b5IJSDrK!`;IagnkI0y?{VkgW64u*I^ZfM}h(TVQHp_W|ZyU*Q!P1B?2t^mxk zTemGaFk~Pl5s*?7YThxdT#keLdU4VDyAZB!$>#p^&A-p(f$W)g?e5$^q~UYg!cYWg z0A1mL)_`sSg}ozz4|p`Xu;de$Z{zX&{EpR7O<#Ykn{A1N zArMl~`mkEJR1O|GhQ0fT)}4J2;p$~=jc{i|wf$sMyI=d>T_7k?j>L56fxrMN2MQ|P zFBPMuQfo;H+V>ZLkkp=wz&ey7UyPh>Z7hc!wP^U}oNLe7)zPN^@{ZR~n0f7@t$+KH zhtE1^qHi>)=Wh!jj!`V3SoD#!%*qZmG?r96(VSj7NI^-Qareyv#EAr|_1@J<*Nu@^Cxfn21p9h{{PVEGEjc~EeF=2)PqudT3@V9ATq<%@;HZeG)Z^CXU3Pi~ zPdyLJJOz6KP|))qJ=Avpo(6FdY$P0c?*}Xpj;trX2AQgwhjeHil;j&Lg>}nXN)Qx~ za}J{u0MCHJm#&M8)1VC*Sh08fI< zRqG9uhBitY(uQ2f3-5kms|@`Ds@D&yP)UjGOlD$SVWjPNh>)x zcQ{(YjAH}XvMWMiC!k^40s8vGi?~#(n1)e-Z7FYcFV->RKp%GOEugd?5&`Z^=gaxI@Yizx|ok(dSU&El|NLrH6ZqNmz%N6m~|1(MLr3gm{fanM$di#q2 zrAg_Sa5^AurnoUS$4NEQco+a=`o@Afx?KQ~acL_>IC=uGMXj5rRwYRIZ%n!iF05p%mo(=@d9hH_aIQ(14MxN z+s!+3KOoB(dBOuwVjJ!P}U2Qbio9JYVieEZ%P zQ&Q+0kkL>k4#N9oE0oIulpQM?#A2q_Avi8wQ>EO|K@1KYhdr^Z&3*KmjIXj#L6$N( z3Udf^D$M#9g&7J%%4Eo7D9j-64zh;U72>NJNThBne>Eyjq~b8Tq^c|uw#T_!sifi? zYP^`c`KbDoRw6Vo6FR|M%gjYuq(6L+e<={$%q4i6VB9L?zggxRN)bd|}a8 z)I2kT!I2`|)H_~;_69>bfCpm3sKQtiIgIceqtICF9m&+Y;W+umG&17>7k|-B2 zh_9P=V8_FJgBOVEbCK_MhM4U`)&+CPO+T6F})#FM0Nywdl8t4;}T8 zNV$DtXLzM^c;NsJ_x2#_X~~qn`;Jn3Bf)oQ=!8p1gH(t@U;vo$g07=kT^!}xLmP_` zcJ9ZagFPtj0T+J$0lIiqNSU05DBDE2CdxLdOry%=D9EZXOU6(TBqabU zuJ59%WT#IkSOYupb=KDP6&5k0Aq!B$ctPFrL<^##l!_b`IVwn0 za#4wG!9@jcu=kdh$A&3|KiSkVJmJ_D%YL{-k*_a>jo8}WVpl1`?gOwBPrx2~-8t@- zca)%%7dT#{T(+q1#%rE_cyQxg$1j_jMyZeoTx-S&J7GJHmhJlTqXT&8X_ST^K&fX# z*UW9#Pp@eQDHSVTXi@~ChAf&I0F@ofYp_UlojZhm6lX{l?2t?RHKzt2M{!R}X5!wD zMSpXRrZ9^zr!zT~ZB*GDWf~~kKw*x;424-TA-udbUR1_)2Q~0(J+HN@qmb&(4~PpP zed2(e!G0{+xAaY&~;(f9vmiwCCpIv|=Im6-LIU3s~3HqqJE#Prvsv z+Z6ItUXD$MzOw7`#RuQGY|}+&3$o|k`fSIcu^@+;^YxR97hvUzg)ob5+tzS!2tMe0 zOqO=h(ZbmH_%xQaAIgRWz+8C--EcJriW@>XIAlmGB1NP`sAC>~=+%>#pDE`oQ=9k3 z!k^eX^DNb|dXsVz%k99`J^hLK948sYFzPi2X^c$ z&Tk&O{NnqOIcr%{_7g7yWE!>~rK8_`=8{i6d<9f=B0rBqjE$p{r!HR^aa1Y?ukOKH zU$1_)bAO+6xb(bdmUZt(*!_V^av!*aAr=zBp6EF^xMe4R3}D9d1a?BMib-rF5wouk z5xE<$e`WS}xr05{;`}rBZdkjQ!euQ%_upMpZdocoN)QH5fhQi`mHo&~OZFa_t9QR5 zoJ`8AtkVHraWC1oHY;Hv$6_NW16_im!!sQs_}HxrrBH;6I9~NWE#UwnAK4*dkb>-! zMN`G_M^86OsUWt5sKmA$z7`M(!-qRa=@H63ICJ%zGWTrSj+y+#`c+RYXhSxm9P%FMjG-~Coq1|QhkN<5_4n^Hu{#CaDQ`T_ZO7rKrt*b#%SSrr zk2E(SmqkMsO5sZnUHa>NZ}{_uA3#a~k4_8Qh?UbCGkGBDM|g&~l9WiC6>+|}q?S1Q4_BA#j6B4Kq#B66Gi{C!i`Crd0zhi5=L`6s;jyyUa%8RR; z>lF=2s_|k@b}3t23eJix`L2jwZn<^y+IyeZ;_~1m$P-22$h)c{oOI}e;qunpx_R}z z+mvvDT?C&_uu&WZA`%f0SSh6lLI%ixWwWttV`NM)VAWXZR0CmvY;n-tn}KY zTSq6n!j{gqsrwGBIX<4dWBc-v8Aw!uD|+oK&Wd#qCyrAsxD^dgX3^5P2(&zmi|WqZ zqH;k3w4pFi-ZS!6HYxa$9gf6C5=F3Pkt0qz8w%-xm8M%I#8Ol0x1D`-9QjH zW{wa!u|*$zWZxX)eS^qn8!h`FnDYhA0K{j|65&NPV@0a_Eqz!<047*sf%5mQw1+fK zJ6acile6Vf4$4AA$cQ)#tsTVyRG-d+wc>4Sz;g-3HKoGBidkGl);Ogr{ix-vfj3ao zrHgU5XQg$o(iczURE&pG2FAbyU;{Su)zH#~fS&*3r?OJaL)fu{a}UgHc=EwDd#ATZ zamW=LD2h1gaY+pbP#_(bfhTQ(@e@UnIE$#{qt}SyoB~{uldm0<1d|k_0KOC0`$(1I zTB^7#te`|#h@7zRITA1{MP4Y0h_EAeJ_6>GUrCF+Kv;=DYdBS@wO}qMkISv3zSTWe zdCcrAOb{3KQuSN`PxNv_3Du^k!AWyaB>?EdFvgjHTtGI04wMNRvy&^kaqH&Qw{6M^ z&#=T<09ZHW>=*7mQ`m`}5$6LxoXi^WRkTWcfT!Zp37BD>utS^xwTP_P64?68CQCU; zT;-RTs+mb#H8_lB&*Jf^cn1=Q76=ntCY{tri+GccleSVHZWSR0v7;`37|xXpj^DBlbCT_WkO~A zMF4UHW`I~#M1Hvyg9|eVQGf4` zzkK7a7hd?%E&ruj+T+S=j^J3Fm8t}Rl5!5R(gn)i*_8bB+1(3%|KP6H);0h?xcR$( z`-#6Bnl6fsP>Ns-nXo(=GHr25YOYKwyW%tVs@yg!BuP$1krzt@fOGNSr|REo%a%a;-ZcQ&Zpl*DqXm-3@7}Ix;fU+A<%)99d-w@!3_OI7yGD5P(ai z$%%1@AhL*xNpB}tX7Lb-Gq4WEu?yf>Sq&51v#a~*{ls<#!f+96bo9s(h;S59aYmTk z$bg%g)D4Z)I4@CG>>C9@M9#Uw44Ht!97y0q@{__08@=Vt*B?33_nmKl6OjM?xBt-E z+WKdI{;ta}KKIc_pI(3F+P#O4*ThXsDs3gzGk+3s&Iu32%;E)6(mGz%=A9miSUtKS zX<`+s^+99&!|;wf@8~(uLqzTK+ur+^@4xN#|9bS1hyUlt{ucyr7PeGQV7Q4fH!}%l z-O!|)TfMC%$-Iz5y@#~c;;clagm{kkbY>`uU~~Aa93{ z@W>FHrFpI6lM@h#Epf3(aBgB^dUW`UU;NBJed%8yP}!_%n8!2IT%3W3%I3cO=}$bn z_1XWp`#x9)(1)&j`?96WKmMuDe)_Xt`G*_7NG1?ldc~`*85tRs=+$| z;7dkpbHX(hc~XgkCDx}TwOu|KmvqskGo9r~rKCF<PKuND0TGcQ3zyus&us1jt;qE-j0ub^e_K{3o~4pdCf~M{NxSqYRQil5A7=)+*3Nd zzp(eY(t%xesot*sS`>vgwoOsipzIkoOyy)m5J9q+$o_ylr8*lsq z7YbY~tm|ILQ{&ga?TsV-$GBMhiQf0nw0hfOooQWDn4I%7*ncc=Jc^iHH(7F_G)!eOzKsxa41LkG3!O3 zT$5^SB^@sAT6CzlM=1?pVsiX~3(gxkc9;t@AAILqcyjEmufFn2U;N6>ozDXp8ykZV z9N;*9F-JCPX>Hy7=tEq{fA6bbkm;$nz5eAl{^RF<^P6Ao-1*$b3(mjxo$vY2TYty)3`N7}u)a2#|@8OZbx4-K0FMa;YJ9lgcFg7+aHZpS7SsQk3-_3>meZRha{i^PP zfdK$F-}0S>ix%wdJ@)5se(jgP{8fMa=;-L^=*ZaUXj4(; ziK}1siVuJI0~cKKVp7JJ$c&AS)SaTB61qt(Hh%q9H!!A}0@JJ`G3%7^6hTe#Yt30) zeZi_5sG6WPGCX|ar@t^ZHu~tJ58e3b&v)eX2S4!F4?cAN^vv|lw|w^-Kl~YGb4k}| zyijJQXWn(~b?2Xd;ZOhLmiN5-eXqUpMeqNs58iX{U2lBbJ8!=E`y%q&yYG0(WiLH+ z=)eK5V z^?$zl>Q}t=&2Lg#9XfR2`WrqnQk15w`OE9y_uzx~Pt8o-{Dbd&<9k2O=VwO8Mn{H+ zH*UO8*e&Q>;2)wPmpyv8Z{x-b|NY;;1IN$?MAOsLt@GQ?Si7RC{!z+)N!270scLUv zsWV8pYU)x=Lx)t)G)attnx#Ng73)lEowy7oHq! zs-~tU0N1|zI#?@(JY}-!%TG;CPK=L#?ce_SpT79Dv(MUa#TA#IckagTeg9h>&5a-W z&_{2+<$Ha7z1G@){M0As&z~Oz!3X~OBX54wf1lsnx}bAGF4quWIf|6lmtA({WiPq( zz1O`5z{uF>(mizb6-KE zQYqKGl&&`v0M7Bs6|31)r4D z`@jGAx4!?A(b18yu@M0&G6(yPKJ)aG%}vc4&%bD(f8c@N-to+)XIffX-uAY4{`!vF zKlVRAe%*EN+xqMlZ+1sf^uZ5)`2GhTBprDAEbdyMv}$jgUs?1C4Yg`$I?4F#su7Kp zFq6ztX+P(f+F4_nWcH-h$_bpGnw}ni`nlbtbVqaU?%&>Z@c1wpJwABs-uoZ?w{QL6 zM1SwrtsY{tF{TN7_{C1PD|r965aO?njv{%0K`7_Tlj zECNtrSQfBcEXFN0fdLVhA}FPd;*teKnIK+d&WW?6O-w^y@#9>a?ya6ePpWM}RgJ{S zX-%_8IoC|)Q*6aB2TrFoX8Tk{wWt%NNR6hgJG8iZdxYxh9I4%nK~idO)|*L}w zPcl9lb60?*s8wf!g_?~QPL7A143Am0L8fZjZVDSnc`UHhvO+l#MwsRK&w)@4w5J|_ zp03I`%|Y8TJJ5X!7;4$#q+pa?g4Cd`dR#RNk1F~|y%ET>!;WRLO4UH@`tVfIjcO2` z8=;dV zfMQB|C`nOSYDZ?*`X6PT>9$qVWa`k#dmr9_W_YIHlzRu!j5Q=&h7)t{8V zPILRE^jIdU(c356d#Ms)N}qB%doNY31V2r?>i*IyUFOuxR7>B~wm0b+yr`Z&UOOwk zzDN0ok^AH-WRA<7a+5MjP5C;#9m-_3>2hQ}xFp%ZPnD~O5+z2njjlNnk|h6F zJxY?|X}YS;l$Ppb<>~nxf2_c&4+G}d%1`PR;-1bvepPS%0eB?unyPWNj4JE4ykku* z?dC*CQd@15cLj+N;#uZjo!tUY;U%7y>XDOwE;S|TRrIA(ZmM{ic%01ltdEBe0uoFr zeJypI4wi3)&Dco%yLU>EW_$Y;5l|ztP4ik zU%_14DV`dSbnboDW=Kgsw@$>cOhlrZl~!h>SbU{Nd{vYs&EA@-mg<$H8vOwtA}W^S zX)#TDfOCB$YK#Dx{cW`!2PY9$HK5iD;UwgjbcG6L?S(oEA)4LfP$OcbMgXL?#wj=a zorKg>CE4Xv@=H$70ILz#HCqX>%*|C&7y3GAomyC(6pvK)=>HA?!u>;uRa@Xw00000 LNkvXXu0mjf{&O0V literal 16757 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 diff --git a/projects/mtg/include/WResourceManager.h b/projects/mtg/include/WResourceManager.h index c30fb86f4..446d4a03c 100644 --- a/projects/mtg/include/WResourceManager.h +++ b/projects/mtg/include/WResourceManager.h @@ -56,7 +56,7 @@ enum ENUM_RETRIEVE_STYLE{ RETRIEVE_LOCK, //As above, locks cached resource. RETRIEVE_UNLOCK, //As above, unlocks cached resource. RETRIEVE_RESOURCE, //Only retrieves a managed resource. - RETRIEVE_VRAM, //If we create the texture, use vram. + RETRIEVE_VRAM, //If we create the texture, use vram. Also locks. RETRIEVE_MANAGE, //Permanently adds retrieved resource to resource manager. }; diff --git a/projects/mtg/src/WResourceManager.cpp b/projects/mtg/src/WResourceManager.cpp index 7e438f15c..73c75bc29 100644 --- a/projects/mtg/src/WResourceManager.cpp +++ b/projects/mtg/src/WResourceManager.cpp @@ -303,15 +303,24 @@ void WResourceManager::FlattenTimes(){ bool WResourceManager::RemoveOldestTexture(){ map::iterator oldest; + oldest = textureCache.end(); for(map::iterator it = textureCache.begin();it!=textureCache.end();it++){ - if(it->second && !it->second->isLocked() && it->second->lastTime < oldest->second->lastTime) + if(it->second && !it->second->isLocked() + && (oldest == textureCache.end() || it->second->lastTime < oldest->second->lastTime)) oldest = it; } if(oldest != textureCache.end()){ - if(oldest->second && oldest->second->texture) - totalsize-=oldest->second->texture->mTexHeight * oldest->second->texture->mTexWidth; - SAFE_DELETE(oldest->second) + if(oldest->second){ + if(!oldest->second->isLocked() ){ + if(oldest->second->texture) + totalsize-=oldest->second->texture->mTexHeight * oldest->second->texture->mTexWidth; + SAFE_DELETE(oldest->second); + } + else + return false; + } + textureCache.erase(oldest); return true; } @@ -321,15 +330,23 @@ bool WResourceManager::RemoveOldestTexture(){ bool WResourceManager::RemoveOldestSample(){ map::iterator it, saved; - saved = sampleCache.begin(); + saved = sampleCache.end(); for(it = sampleCache.begin();it!=sampleCache.end();it++){ - if(it->second && !it->second->isLocked() && it->second->lastTime < saved->second->lastTime) + if(it->second && !it->second->isLocked() + && (saved == sampleCache.end() || it->second->lastTime < saved->second->lastTime)) saved = it; } if(saved != sampleCache.end()){ - SAFE_DELETE(saved->second); + if(saved->second){ + if(!saved->second->isLocked()){ + SAFE_DELETE(saved->second); + } + else + return false; + } + sampleCache.erase(saved); return true; }