From 1340b06af5b15bb64323e72aa4e8a350ed099fe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20L=C3=BCbe=C3=9F?= Date: Sun, 18 Feb 2024 00:48:09 +0100 Subject: [PATCH] Basic asset thumbnails --- .../resources/Textures/EditorIcons.dds | Bin 213120 -> 278656 bytes .../resources/Textures/EditorIcons.psd | Bin 53936 -> 76971 bytes .../src/Assets/AssetThumbnailManager.bf | 32 ++++++++++++++++++ .../src/EditWindows/ContentBrowserWindow.bf | 18 +++++++--- GlitchyEditor/src/Editor.bf | 8 +++-- GlitchyEditor/src/EditorIcons.bf | 8 +++++ GlitchyEditor/src/EditorLayer.bf | 16 +++++---- 7 files changed, 70 insertions(+), 12 deletions(-) create mode 100644 GlitchyEditor/src/Assets/AssetThumbnailManager.bf diff --git a/GlitchyEditor/resources/Textures/EditorIcons.dds b/GlitchyEditor/resources/Textures/EditorIcons.dds index 1ebc060faed9f58feffa0c2324af49f84f0d420c..8d55e891d0354d972ca881f1a5299726fa3b4e06 100644 GIT binary patch literal 278656 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 diff --git a/GlitchyEditor/resources/Textures/EditorIcons.psd b/GlitchyEditor/resources/Textures/EditorIcons.psd index 01d992861ffd439b59cec58e5f0d805d9a7de5fc..4711f9cff65015f8724accf4baaa532b1606e1af 100644 GIT binary patch literal 76971 zcmeHw37k~LwRd&TjI3?}6^${d(U|1Ln7l8EM3ZMU(Ij6qCg%NO@=Od-6rK$5S`_2T z2ni~~&vf_P@Bgp5)pzOc0rFS|zn=N^ zy>;u}Tj!iw&OLSN)H!FLf9YkyBh+6mPUi`cd!867a?HF(&OZOA7w5FetE0pparWTf zJo8@e$?{%4@35fJ;!-hQOcGPXbaAG*MEqF%T8u^BW#UKjJXzczu9f$NIAM>U9V@OazahretrcSu? zYv1^*CJ4d%lW&+Z3He9imj}dsAmu87d-y{c-XffTfOEeI{I99{Cx!_XDDyr$Qm0;C^fsg_&4;jN%=QS9zUJkiqDvRj%_tm z(v=TblL3)b0fhNO@AllPpyhoFc_R05-op_z2h<-*s6UiYf9Qg0(J!H10If2L&e|A72O~V|0nj8tw;4crq^YH_R5V{uYkrtkMNmIR~son)K$srEAV0``r-*`Js zN8#ne#06-leA#EmqnyL``ac(N)BW#tNev=mG>8__VYG;L(PXrXP7yFV(SX%Pm*^Ii zMz;uy3L`9f#5SWxL`1m}5mB+lh>BiOX7q|avC-%gF|po=iMUv2#LZ(utThrs9s9*< zqhF|_Ay(m&tB)(?=e0EDSYi~X{TCwjS?1{SShgLS9Sb{l3SWi0qC?T7=u@;Rx>X&h z`cQSF>Zw(<8LgsGgpEdY2ejaD^Z#?g`G17q|1tPKP8=)7$lr+&X1*Yf$8WSaQJjRU zlknC_NS`R5I2KQ-_pGC{)Xyd19j4o`7qs`vc8s9rBeE^SNQGs4hL8%$HtjaN!oU?J zpKjT{J!mz79D#F>Z0jgmR^{}HsBHIMw77Z;Eid~(ACCQas~_h+*&q7wRtz~Y_6ylJ z`p`Fek<*Ja(=i-lfMMXL(s7y7Ag|bWVn_w>ivbsw6h}{FF8fj(`5_}GuxL>rgk+q+ z+ zRh%QW2P4=yn!(M1t$oCIgA+KpLKjAw;uxLaAc~8$qZcX8(uy(-{IVP{%K_z}&_gcE z0R#LxW;tM%1KQ-ktPBVyk(B`$ri z8$~O$82CYp(IJAELk2|%bH@<07*%qXTZy?$1X>L0FUsY7b&H&%mT_(hT?S{T8!5L# zm%+K`I`AxY?1wIcvq~Nf=rTATu#N&64Gv@XvD8TYPkl<|*vnICJ4`z+3Oj|V!de}B zp_9Q}T~el~3}c28HmO%Np=w3dkg6?JbI@Ptc1Uf%kq%9Sx^HPE_B7=#*MwIp)W5=` z1=DTnp<1NwqCx5{YN4}8ZO0zW#i)(K^!)F!hdO1Ob{gV$n5y@8%C_w=uR2gGz33V0 z9{stu>=AEnUxb>)5Pot2~u5`!n$HNzUVwoX00QkB^+E#}_ereB?e+ zU(ks9s7LMdwHSRqa-lw715)HfF<-3_^HG}`^Fe0zv46&VRY;L5#eL8+AO)`EgD%2H z?i5FP;+5E=owz2Siu+K%SH_03=f{2ISqUHdyUgh@63BtR!j=>Fk(VWW==buOc05DA z7PsZZedKWoA9}<1*f%&D5@yaunS$QMw-M0D_Y%JK$Wtkd4q0YvhMWXyKs|vm;ybuk z#C&)7rh6vNT9H(?$r>>0$;{F9WIdyD+_jt90;#Q(+LEcQZT1HVJt%tw`wB*t%z^3? zea7lXR^PJvo7D%cerfeptN&Vk8s8E0aePP6-_h^U_tiMCjYBuT&wQ=FJoaQTyhML{$wW+-=$6E_+Nv%-FI*~ByggOSGPYnoltjFxJUZ|s5 z?@&jz{-Tae&{#GJb!>)Y&@9wZt!}BKTD4KfHhiz!ggUA<9d+!$*QNu#n@6?cqmDs* zi-M3Wc~t8`>KKB283M=WQLPr)*Ujv!XZAHT`%0R9Jt)4;P0rJ! zZEss^@1Hjz6$|Ho4fM~t)oZbaq+7iXx^>;^0cf{%tJg!@+#qz@_dwp)ZQq@2^(IIY zy49N@b+ni(n~*6nGth0{nr!tp(F{pbw|!%>)jLEzI^&a7eyrWt@BDO+CRjnQso27)xwbWj*NlK(#QSB2OAc5*S z+vAoSkyfsutmBm9mGm=G<_^agcS=L5l{2@TU$&e)_WNba$z$9vTTUMP{IccbG3u8s zCyzaTwp_ozuhCO&CPgG>cw78_4&H=cUNtALday9l)bD4r#{D9Ut48Nl!p~-o`9(MH zC9gufiu>8@eSXp9xaz=Feaz3n-|H8xxT;BBHR7tO&(CfV^@}=ORV1%=#f+$*tRdnT zl~_iLC9k&ODjM;#(}ew^KVgXOM)6-Zt+ zk-Vx+7+rpLxu9QE+0qsLkmG`WcEApQqDrN<``HOQ{h}cj61%$e z6)D{n^s`fT_(htlPCq+oyLr!f)!}D%Z8Ptwt4)4(+l}(L!9QT<)$GT49-3U#c8lBT z?=bf;OkJH%JId4pXy7v#&2{1j4fxoIb*PowlBt_y>SN^jWU3gcsWP=9nff4^dMBA$ zl1x2`)bHgRvyi$_rmjQkESdThQpd>D_hMjmfPXT2QnO4ALuzw9K8CVCeJE3P=mjs! z)EcB7kf|j|O_!-hkh)x^Zbj-Gnfen_UzDkzAeAFiXC}a6QSNB;mW}{Ey@_uGz-j>f zs@PI7PU15KnEgvBXHD;sNa$#>q$*1nx|uq$zVf3${O zEq373`?j@IEvXvQ^=E5AYb*?f*{A*A$@_Svc%_?T@_MM`mX@iKe%C79)q)z6Qhc(- z_Ff2JwsX08U1pxwo9DIWd6juCHqRfy93vr1ScX(ord~y=Nv7r_RVGt6BehJX#v`>* zrhbaleKK_xQZr;~3{rojV1e^RJc}TB*4JceD^f?w)H3o_+Ta1LC(f6tp-BCb;tbB;=2?WmOOKbSZRDl6GcEvCW`pP*EpeLwoYwBE zl+_A4mF*d*-)zq?mFK!w@Qj|JM|J9%LjFcNkuNij?TW60^nRTNJUJDQ%+Xo{v(&A5)6*L_&dsi&&m zyrwBxEf;#s>jbX5QCc_7UM%sj44V5yFxjK|BCicRAHifXBH_@4lGknc(JZV_;?NIl z4BU^%a%0G&kr*&UUR0LLGfl;m`6R6aqj;ZG&~zh98efJ{2CsW? zZD8`*WAKVK1Is@wQS{1p^cCsoN16H>Oc~c*$!n;BaUD!v_o2@9voS2BFpaqwrqqPq zf_gp>ZNIlLvg05-4zl9_MxNR4LH2u){T^h;K~^rx%0-Yj@jWq--oVOOL z4V>0NBZAX*f2?RQTK$YQLao)&wjh%@rFfRk< z^@b-g13GWR6TeBGx-OBY@Ng)}4Nv%%0BXa#q6lmB-tdx~0IFytu*hsuceH_kT#F;IB6rLL){||@O^GN(VAQ;A4^n!Kh0_)NK8-ZyVu-^ij%0cBeGy9KHPb}f7!tX2)L)~ttTe{ZRP!!pK|1nLLsS0^e#Rl8Zq+j`H5jXb9vP8tUUqt)Q0D0cOkR)t8W++ z??dKGmon44V^mGV$bIRg@V82lIc*O29Aj7S9hdbQhehX%n%OqI2l?ZcQ)Sv?cq6C2 z7c&m~=NUh*G>ZRE6a(pnWE`Bk~=$$wE zmN5Fke?E^J3$Eslx^5$H*Qka6cHuVkl9N^=`-;b7sJoEio%IE*A`J=u@QBl{n7=xT zw@%-fplOcbiFWrJqr>mayZ0TaXE!}@^_e5ip8C?d!=e9WTMX-e@Yo+tn|j`;dGUmC zSZKvvzdYgJ(ON+xC-H}~v8ok3~%Lkj;O<>A%+YeHtzcC&mBIrR(3shL3TxUNp?+kQFhhr0Lc!J>;M68 z&JK|57bN=y`PaT6YFYP4c=$Tr@lW41$H<(caWCCJMXTfRM7n#-V|i97R_RAW?2=Gv z{aqjm#7ollo2i#mQqKs;g2mW)NAvIk@r)AIOOX-BLS!p4TX8NB|3C^)u97zr_iyiK`-lZMr>@Z}B48hm3ZKIgbmh8q!NRLjh_)Wl&6GJB9wD>L6z(};3phLI7F znM>59VjD8ML1hmlfF4QhVl~aEz>N@ApQC^u#koMdp(Y-cxIx=@)~%d^R3U?=(5zx9 z;8!DqR`3Pl?@I8mMFx$c3&bKdK?xv(_V5Mb6*X09KnBgD3&g8x($Zwh*hV^AkU>-V z0`Z!f$h6rqW)mLX>-L1fUjxI4;rVNH8ZTeg{bS92i&m++JPB3fQ3H=? z3he?I@}^6ZQLakfc?Pw#8dq+f8N)1sxz0N5#r%S~&MJ>!=24o$D#MtQl&0{>5N0c- zDNHhmc}!^vhwOj=SL$GoZJ278I(TCXCf=nE#@K{ucxeh(Y{104G=(Jwz<5iO{IC`r zw=~HNtHEkZlbo;$bGgza8?3}MuQWMGD^NnIZBVz_uFCOLX_7~5LCU%+13uQ(Mo>|j zMQ#wP95uZevsu%P9ZMKnJB1bIg=K$ z6#ve0CiNZ9a;8-IDJwHs)5xsMq@|>+%=DR-nYfjd|Bi*gj8~b>sM5W!p2nRxcCJT_ z?ef0@68^sW39$pE?YrZ^cwsLx7N_{D1XSm72WCz1enOv8+@7odhhw&T9JGL=p$}Bv zchoFd-&fnxtg9njZ|k!3Sv~394x0P1#S0sPlGIlMF9FQlM{bK~lDSxm#H=`upMf{I zJ%rEFgSN-$OK|_TEReUDor7&1{k+SqB0MwGi+#CR(gSpE$546Pgn@@S^Xpq-YbUf~2(Rb`m z+0)#a!j(soN<2GdhGz;d&vQpZRE!TQj1iEzIP25 zzsmf|>iwZ)y(F8Tb_6KEPv>w5@;Tnt!T{fdvp6VYRSw@}4&UT{Q@+cmx%1QcEm!4O zUw7^Z<=51i6H{V^E}UrbF<}!V;PcJA>IKkd3Dgn}oFDMdm{^eQK(6kR?Ld1cS7tj< zwgc_e#AIkjy+G#K|8STaACC26x^EeRm}Ax_Z5XbG$o!#rhK^d8GXgVZTH|15th5Gw z@F!>eDlk#oS3iE-5hKQR^e(z|D7K6NYToOoVm2lp7=rokx-ZGA3ga+blpf8Ca>F}^ z58xd9G0s~J&r>-0jhud?>U04!cJW(zyiFcw$>WXkc%}JR=v*_g=2-du-&Apl|5E2q z$3XJ)8{X?UC8#j+`i)OUF}dByjWeVmQ(`t;GSDRD*<2=e7@lVikHaaO=W{PYB{3BK z3xs#r?QJ0=FZ}3Pm|(&|gz%oepeqVAx6S!h1fJw_PWi)AANH@w{p5}7$BhWXrAs0& z2Mg96WXh?z;Qf&>K|cwm=VQgm;&kyPajN6kgqfxRtr_q$OjsZ^hbJAOk}v1>78DzEq6lfFywpPSjCPH zPy(e1L>V%VN}Awx6s{q>xjE~YZZ(do{IqcC8!tTj%)K*aJ$Tp5@t1!mhWvJ8%+})N zpZIs~^lw~U^#0;kpMU(pSyO){BkjQ-nQ?savdxX{ZH+Y*WowIyu6Mu?lLdF;RUixs&hVsgqK%i!4`G(bn z@4va|*}pw7=Z+hv4W8^Yu0btym{05HKi-wd-Ij&AD@5Eoj3dP^QT<%Bl*a~ue|l%^5Rvi*REZ? zs(AVPZ@sqg=|}FLbH|LSc;wm(;cd_uQ*-yR?5mY*~EGHR2;#*mw)PQU4v+Y9bY%s%YSg4=JoY5KIj z{M;#5f5p80(4;BTuD|i7n-jO>-F(xH*H4?$o9~(Y3p&EayDR>H_L?&7e-b|L|4f?_ z$^vWz`HE7xS@ znyg$i=;RvroXI(Z%6v5xb181v@xtCxH`}onYSry)~cWlD8ft}xvLjLrQdn~vWGU=R= zeZqVA%^zb=!uFpb4)LiqpBkPg#v)R%7<$Rp^+s;{?I%<4^&I}dr`T@#+Bf6E^OL}* z@NA8TPb=PNcw=+CfRi(~%*c83yU-?coB7-4!0#Y;Ym`Emjba*6c;ohkke|6j)}dMy6Gh*|Ym{KjCmJO*35PryE-QRofcmB3ZanXUS+ zg!Oe4c&0z9Idl4ZnclI!EqqVSnXMAA+k3?ouLmW(E@MdG%2Td9@%%;cZkZ7>hQEHo z#HB0Wyz|U&KiAZQJOo2Bj)-1$sA&QuPl6J=DDZNY2_wpK5*x;3-gK#@5vLx5YJeQ`sU163s=qhsAkuW@&`+r znp@l7{-7<WUPH*7Au|H+Tu{czc`!lL5hw!++%#ZbZZiqBpA63HqqE-GAc!^Zk`@8z#3 zZbT_1Z_M~SNza3xtza4O8&>k%vmG_-N*;Wuq`5G+sN}61j>EPpk#pvyuK~>PqT9B% z)vPO8cJ2E`C>(8k$7wO#K02Cz+=E5Mg&*Bm(OI{?r0}|Di`zl_vU|>kn*!)oj#xY@ z|J{=Sx&i#97$-DDr&3@#q5|CF^@;1Up z4T~a3LBhxtUtU;JoG1}RLBd@A;2ChXiawfq@8R={i#iL36qOXdbKk{Zc$V2QBloeR z{`_G{sBma;$@`D}@yp*_(2g)g==6D8zxkgp6c7pK4I*dKt-n2{POQwbv@A=@va~Eq%d)hrl$Mp!vQk=BN*kih)KPM%|(jN}+D}O9~;N zXFHCqsJ9SwLR8k$gOh2up?1GX?^alu*kAwlX7+9n8$eYrJeqJ*Ss%3ZG=ihu&rX@* zHnd$b#qdNm_|c4q8@HGW;@F5^KWwo2K_63y`wkkJYDS7r^kX|2!v`_N_h>2A4@Xb5 zJ>Op`20T(QQd4Rx9jQ^)?|YZ(##?-Yr7%@3OWCs&H}t7D+$ol)@`zOr>V<)&{`aZ4 zs549HMJuTCBG}Q`h5p#e;8-w^>w*bm7)OMn!?6bX)-Lo4x$=_jk*KqM(@RtPAq7X( zOS3&P+at3)GCgM`f7P6E5b{X-S6XigvFF*pwoY4vln|=YlYrMD&N<%b#^Mzhu$r(Y z6@gWM1U|(W$}f&zD^`>Fg=LsSE5&Wuh;fSD^$ZJ0D_ylAtxx7K7$LW)sWYER%}ISr zmuNw;QWiEAh8EU+kSSmz4y%eFzJgmJ^-yB!Hje^QSr~HUCeSF14YU=<5g{6Jq}Qws zz_t%ZN-G2CHnAR#oR^4?;2C-eo_QU=XT^)~ zi+qpxtGHcE6cfaS;@<)B6hP*eVvMvpJ5zj1{88K~rbzg=hIddRI(93lpyt>jsxc;998H3Jp=)Kx~?|!_aJW0Q9-g^R1Qh%}-Wzz>RcZ;c# z!uV1q@GC$Csd6?$#-a>Y0Zq$dz@#s7hILlY_dgXXyonwSUitRFbhXAwhAbFN8`;ysWS8zEbTP`c%}x5NCR*FwUg zzNf*ogoI28&%cDy3rw9*0?;Bn4B2vrEK>lAK-oP|hAS(|de^xN_n;*){Vox{n6NcZ~hd#9e^1^%~{?( zJCd-J9;*?{K5d|%9@~3yUhRU_0G-u(z*rBMwWtS5kF3!s(#?1`VE%%VJ}x0KP`2gy zo#A09gELkOwPgxk2;~u82sAqDwGn!sjVOO3&h$}5`!@y=r(Grk1i9e}gojZ+)|5l} zc06a7^y^IBoPrxfxr7@8y-v6cFtrJA%5ZK(8G1IrnL}#^xU>Y-{_5M%6YcYfI+RaM zpn}_hatXHsbUWcT!Xj}r`jBRrt910zx{vPgTT@^vouh);29ME% z*#?@OFjh@3DtEfkh111n`R?ty{q9)I?!IF6r`qMpQyTUxyoL zG>2QQsqj_kG=KpTod#5a6PB8tG$HUHNa5lwhoahAL51i-(PzxHJAl_qLYyqlKaJdc>oet#3Q8ytYC$MNy zKru2qR(8KG8Y`#cHzL)H0(Y8hx5iO7wQxgDWNHCeBg1KZ2(*_0(TD??kgS_7BWIBi zi@IbL1(Q|89%{Li(a6|5&JmLqK-r1M_<5;zU{Z~1Vp0vL8j~=tIXHVzH5>6>4}S2y zCR?gqcEUKy%nK|KVnKlTkVEJub2_w9_&6Qj5usL$m`aev?_`w&p(>0#B2V>Y%q^m^NyH zRre)5#G?`wr16M?);3xHbp8`Xl!?QG8{C~zo5YH|v{|--#;OL??LyNL8&xwHWM<8T z(6o9_f54Gutq`}QQy~jI%l{xz?7$#uhH|GViK4QOAe&*-3Vs4)Y`Z`bN6H-az$Jm+ zs%owV1yuvbh-^JsW7vhl8sirRYiR&OZl}*0JLTQTLXBLVjs-ae6lyKdI5j6xXnMyU+dO_Ur_2gx>+)Jge-Htzg>s`jJIk%|z)+_1iK z76f=gl~LG@;YG(*mvrBI))djAW-#JFZ6ii4Q41R>5fIyw2pVX_2&$VyT_f0z?$ct{ zSPS@>YEaf#&LYEJY26qv&W$(eFbsl8b_k`lB!*nkX$0SBLvLXOn9SiAJCbN}O+A7) zC<7}rIYyjl((9<%@A4J|48yER236$1NVgw|?2A9PGcA$W&Kg}RL?h-xs6uxg1RSE< zYYY@4QcpG7!4w!4gj1e45Z41GfZkZ|sNZIj1tZXsi8GhOGwoBdaONVb!kM2k9mXet zs^$d3!kwSG22|c!%0T#b6{`=7B~4D2NY3vqHmyBM7T6j2cMC{DuP_@ z5h3u5TdL~h?FO`g!ZC=hq15nPkX0-~$06zmT~t_GbkVvqqblOEma(uONe@&gwWnL>}Xco*i)*j8GEp+t_~8}u^AlZw77^< zoPZ&8Xm~)5&j!+5Abp@#J^Hb65tJ|nE2pPnNl_z4p_3vAK;~dk=Qi}PJ=ycekI0ye zj(u7Opo7d;(V>}droghA`C`i_DCq$u2F5^-Nl86Qv9}GGFKWabEfzZIgY{eQavb2!pY)$1d+mij#MlRM; zAQx1rEVC0#k=9PI5>Wftir7`XAV3aEB=&p*Ycsl8zxez>4y{`82wi*RTUy_pIG`UcH*;}PL>(uY zq@K_~uFV`aT2FJjF!uT}JnUq(U^uf?mE7Kj3Nuw`k}Q>uiM&1C8%!0!7Y247=4LFM zP_`zUN)x6hk{JSC>)B;HxR{fiU1+5=RZ|MJNMM)IT1=p?;>laeOocp^ znaxlS*^yVu%xXEC>KI_7elvPXX77ET$-m|rfxVm9mB2xB7U0BJD}jNp3VQFxm%894 zsJoiMXjEl8b-^7Nw3%H8(5Q6)Z-QQU6LjOOb?C5v#qjBK)vwl}1K*|RLsB}&jj#G7 z@UsAgqtu87@iDZN>FwyZnOqq(0o%-e4ZZMd=tfpAM1+7W=fb*j>+u2Qm~01MQ40_l zkKM;?hxk)D)QvJ%A{yZ$wTbgKi88f})`|o}A*cFR;QB^p4~w43mo=L>utQJvstE5+$U9Z*Q?>d^~V zkImqnR>xC?SOwRbu4iz>VOZ2D@YXz2TS`AQwVhJCe z*SV(Ef)0`Df})mKruR76ghGN6M@Bv2JeWAD#lEnq6bqYX-t~C44ZTk<@)=^t@L}Vw zzy93eL){B4T<>cDLukO+z1~Nh)4IcuXu5r0=1Sj}EjBbM1=`m@dw?d_Y-!1bTwOpG}bU)A`~cT9(^Q*1E1RVq#zY?Lo=4kP^1biW+#;w;sGc0Ic1szK!6# zY5acFqK&+kug?Y-7WVb-2(Z`%d3Fsx+q+xm4xsM1qVHbo-tKlXveoWdbSp|`$EKjb zkDh(CzXv_D0xb1K)aF2|`vGX+tI?U#;zx#`>ZZqqX>-*(!b+=ZH9oajQ+_QQHNU5@kJ zOm-_Di->PMDkYQc$|s`3w-q(LXZ9;gMU$@rSnjz6%RfZGS7lcD|IUV`0H#hoK1et| zIjqn?`^So<0KRjhzMv8H1;Cr)P-Y%TJC*{NclG(O{NUqWu>Ebx@)&%jZw0&tz-vY? z+258dj|;;OD+gb#5%cj=eV{B^cEbI9ud!0}`?mo)L|Y#vngeCeqM)x53IBFLuLAT= zmjtlCtXcrMyce7{?ynGWA0|`2ARr%T+ZJF^)@yt$V*VY#0yAeH*GCSfg$poRPmKEf zJAn~I^H*Yzb^(c`Z{MM1=p71fT4 zqI7=HEMO{xSO&zRYr*^a8a>s17^>N@i~IUeX9vR^rdEhofmjm}6P($#`2Cnf`k-hV zANvN4V-mpaV4KGP%lW{v>=Q6=iDk3Ga-)geU^JHj&Nl<+WfJEeZ0Bm~_t&Go-WuX@KTWf#!V{nh8JRx%ja5AcuIX z4P7pk*)2s5h8KWsSC= zM*GbUz#7dN9OgGQ5L(1V>mf9Vu1rWD0>(HsFg*wQUz3D%AXOjpLpkTF{X@n$2jpx8 z5l3!-+$36&s!2!AA!@7x;+Dl=9}m(RL0VOxza^!m4o%Y?Q1%>brdl>YvJ`cots*mR z$^hZeGUWk%b3oq~N#8Em?)h6&TJBIb>;ZlGpl|s`h~c6VsaQG+Aw9xnd)Suy+pwc|kJ-J3+%k5Ke*<&%!u&xj!qh&>s^=1XGxKy0u_HmzNh zqxlav8!4Nv&zNBlDqtuo;Fo2h+b?=h0qv<3phWM_grN{Ogo$rUV!J?WQ`p~*foyMW zP3$3THdKwp91wT>W)bp>cBBF%GtP;$l%}x*#hmuxD|_gf5rMpI32c`Gam^sEx?8rP zMO?ziEe0I5;t(+^S|j4)Hj6I5s0TeeQt44zk3nl-^cYdEO&DE%?6^szN~(~JF&NE^ zDn;+;auM{4Dq>GokgBFT1PqR#|D1rC=vqliML&G=1!YrM%2}-mJp>GpG%PEHVu`qa{ticJzBWw+8_*PfWW;H)xEQQjzXNt*2ko94tmn8s`ep zZdPuUU=BMtOqrg>uAf0* zyz~tAOC5A$C56O6HBNdKP6rOYF_OY!5Evi9(C#|%gBon|KiJkr9}BS#v&GvKE`!Co z$i(UN zK=2(RSceUogVrhtNG`FEJcO)(fcTR@{P(JM4>_wJpg#-fU#QSOq^*2b32_}rIZKgp zXj}DwmS2Gu1h?jxRkR$+Ry?5RdofJBNzG@$Y6tYt5TaR8bSPWtfRbULWV52=vu2fp z(D1a$`A|{!8MDFxadjZ>}6# z>`d0fV;FPcp%u?P4OM71D%`m@4pmgl%g0^-CvI zjQ>%K5}F_qHo`8W1NTsp^4uho?m$zt9od3%H%mJe`ejpZW;(-BBFf}fjz1lAstzBO zX1I!?r#!$@9;sx~9de4}upD+ATcyoPh4c;Bh&T0*<);Rf3M9+NKA#omshCnS=?*JJ zXLx>;UoOWxZAPrJ2?MMDD4+Gh@Dnx zD>zsaT5+CoAt#gWP*Lq`v;63}14CJGf`p^uLdm2%G!&g} zGDgl$oI4>awWq+*{si5Dpez`OHnQS86$eTt-Jzg@D0de|WEEfpAwqVfz|ejc-2tC0 z7;S{1TrJ9^JKR$j%B=up5)aIyix=mD85Bs3UhJn5>;JPv0N3ANG7#oV@6Q02PKN5>}I$UY|L1;4lvZ1EW46rtGGfkshvLu!6)sZ zg`8!tgng2`zI9}v=49CwEL#Nyl1c3=n>JqdkU%WE1z){psY)%)P&PyRsPI1ImD^ah zitHnk+P!!XoXH;6XZL06Fg-2c5G|mJToz@kC>AoQJ+qUuy5sY({8q>VEg5mw!EIWT z}DOAxuhUFW)N2F{5l%P(X3DsGNU>No)mDyF81(E+hx??V8ztxvkvzjMJ8IM&SH^<1j<8fn8JX14Jko`Z**z?GXcRgbwqUI# zEEVQOCUqo~PK;x&ndqo4gwp|;t0N;#Za9pivU@o0h%1@kco$tdREOG3tv@=Zj>2ha zi)^b*_2-U;LRg)U>pC4YZ8vgWKUH{I%|`2j*s9330A%V6?%*Wp0EmkkQ1W32@U`ws z!qYYYluTXP9XNzg81F7bhDA@N!RZd-;f53y z-m!OV0f;E%0Z zO9hjOQPOzT9>T&7hUvKQ9)9!3sPpYVYlE{|@stHbhhnfQEEA`92a;gHA$%9QOimmZ zo>OZ+H9Sv@?SKR9oPML~bgNxb!DRYaxdS`6!Ni1j=p|d%8{YQYPYyz07QeNi=(%J0HwJce|y@ErcYr||Lp+BZW4aGM1{2SiW+D!?%uvVwQT zc_V8~2s#Qvz*ag15cJ@m1U^Nnvg}z}1`i1xx4sMN3>i_^z2n-yRY-=#y zq%c_qdD!XCo5ExmpP!IfHcRxpeU900Lg!j#+l686r9XnF6&#x|TyJ<1Gq$_n@SD~R zI9;YN+{qzUdSRRDpKFe_;Mj$F?Oor3V-xBDCw`L~4u$$|b28F{bSH*|cgy&kRt~nm z>FFHeEJ9dfOj+#@--2M9mHrrk(IT80DkkJN#C80%QFuTAJKIE8JB(+)QV@cKpeMNA6-DrS=M68(aRcH!mrdS< zGv~RAb61cjeKN{|WuLrj$L|Ujqd$ZQOHbNIt~gKR+!XGL$AjH7yl(gOoWBPFkKMQ( zFsWAwKo^k{zkuIb6~VGg*p(6V;Lfm~DmY1)uxyHmxX2rJ@r)UljNIz#(3F*f=wLyd zTLDc4%-(K@*$j5cK#E-soeJHv*P}BkFcE^;jXtH*?7r++s!TBIXLGIM?J6PqU9Uw9 z?j5rIds+N$)IpsXk&J=dAdyn7?s?{LHm~Xcc8wMtt5;!uMZL_PX|pKgGuBH0eRrGi z{JyId$|uj~UWAd>P}U`9`_yV#nmRgF-wvnl3n38${oQEiI>5LXm!%dYl#9G^x86MQ zw49Z~JM8whkdYUD^eiDf1tKi9i1erq&l@ONsts)#M7Ljc?n`S&$*rb7alY`LzMw0L z{<>|>w+aO003bITLhHgbDohIEoXk;$d7sERp0%ddj9@CvMl4Yb%ccmw_nh43~Ug+uf_ zNcF!0!U5Pt-X17`)ii50%~%I(sBD6lY2F5USGpEJC~cS4%%`OX2arU|r>K@gQD>4R zQ7r=&P|2Z}uA~>{X(#YU^#u0PbJu_q*hnX^j^?FO$)?>eQcvI|nzu$hfq0lhCIiSf zX#p6)pUeg`X|W{D(zHouRbd@JLap`~X;0Wz;KR09dWeM=YOCZs8V|jA0)?LoT;5mWeGN+k{`k z*o%1blVCC0QIm=JXM$arctNcl=ly+}>hHa4$8i-QV#xay>U&pw`nsq^)g@x#S#_?t za))S{`XCXPd}b3NnClZT=A2cy&iVy7_PpvII=@b|P^))g<|j}lV=BXL66c%xHOWs!*!(&8kC#d z$H08C{E~XtN^=NCUN#8=w){5;%gH4!nl8r+Qs%bUFuzJq2;sphe*qOC7XI)F0{1{C z5!k6Tz&%g~khv4ulz%_wRM7ev|HR0~>H9#&oGacs;`R?D#BI?PtK@dVi1oG5qByAt zc#|cx=@Qsz^t)=5z^3)V+H+Ndb-4s}E_PlU0O~Yc|Fs4x^?dCmA+k;Sbi%+xW~(8 z<8P~<6UzI=X?XT_IJpASrMUBsfJ;ES7VR}*Vzi^?T@BDe4bB6i`TdG` z{@QPt9;?0!67?0ICScLMSm8$1?Gs|IT!@?R#|U@ogEvJC=KAeIob|he96J93PXCV@ zXWr+L$i5GJOlalz0g}*_8l7?YLW8xR&J2yrd3fzdjm#)q+oZ=oJ+!KXZjf}wsEzK8 z{{56@YlJ4^rY3)JMYTy}sJANgd(S39dPP6nX<;vq!JGk!>G%7c!-$_N~*q2W?vSAYDKs5nJU{u>^$#Ed&|_GTWw0fFp6?qo*XqF?gF?HOu}^$jBRE zc)!b2f*g%2yT?kHqp_virw`~2J+^+J_2}WW2towZWllA@38?M8(?n}YubR;W&^weF z0>6w~?r#`UrEA9sKLIdAM{z=eH1fjvACr7re46P ziz@W8vFd4N(9q|hqnTY}e-+&(&-Y*{zXX0bLBRJK*xbH+T;y!?W*Zs4=WlCS=`F!7_pSN~m@xQ91QQ~zEpkf3|DMZx_KP>g3Z>d?%>2?NS*6w@zfS6yB|gY&OZP01_uhDfIal+p _name; @@ -30,12 +32,17 @@ namespace GlitchyEditor.EditWindows public CreateAssetFunc CreateAsset => _doCreateAsset; - public this(StringView name, StringView defaultFileName, StringView fileExtension, CreateAssetFunc createAsset) + public SubTexture2D Icon => _icon; + + public this(StringView name, StringView defaultFileName, StringView fileExtension, CreateAssetFunc createAsset, SubTexture2D icon = null) { _name = new String(name); _defaultFileName = new String(defaultFileName); _fileExtension = new String(fileExtension); _doCreateAsset = createAsset; + + _icon = icon; + _icon?.AddRef(); } } @@ -58,6 +65,8 @@ namespace GlitchyEditor.EditWindows private append String _assetToRename = .(); private char8[128] _renameFileNameBuffer; + private AssetThumbnailManager _thumbnailManager; + public static SubTexture2D s_FolderTexture; public static SubTexture2D s_FileTexture; @@ -69,9 +78,10 @@ namespace GlitchyEditor.EditWindows bool _showNewFile = false; AssetCreator _newFileCreator = null; - public this(EditorContentManager contentManager) + public this(EditorContentManager contentManager, AssetThumbnailManager thumbnailManager) { _manager = contentManager; + _thumbnailManager = thumbnailManager; } /// Registers an asset creator that will show up in the "Create new" drop down menu @@ -577,7 +587,7 @@ namespace GlitchyEditor.EditWindows } // TODO: preview images - SubTexture2D image = entry->IsDirectory ? s_FolderTexture : s_FileTexture; + SubTexture2D image = _thumbnailManager.GetThumbnail(entry.Value); ImGui.ImageButton("FileImage", image, (.)IconSize); @@ -713,7 +723,7 @@ namespace GlitchyEditor.EditWindows ImGui.PushStyleColor(.Button, ImGui.Vec4(0, 0, 0, 0)); // TODO: preview images - SubTexture2D image = s_FileTexture; + SubTexture2D image = _newFileCreator.Icon ?? s_FileTexture; ImGui.ImageButton("FileImage", image, (.)IconSize); diff --git a/GlitchyEditor/src/Editor.bf b/GlitchyEditor/src/Editor.bf index adf46ec..11877d6 100644 --- a/GlitchyEditor/src/Editor.bf +++ b/GlitchyEditor/src/Editor.bf @@ -14,6 +14,7 @@ namespace GlitchyEditor private Scene _scene; private EditorContentManager _contentManager; + private AssetThumbnailManager _thumbnailManager; private Project _currentProject; @@ -41,6 +42,8 @@ namespace GlitchyEditor public EditorContentManager ContentManager => _contentManager; + public AssetThumbnailManager ThumbnailManager => _thumbnailManager; + public Project CurrentProject { get => _currentProject; @@ -68,13 +71,14 @@ namespace GlitchyEditor public static Editor Instance => s_Instance; /// Creates a new editor for the given world - public this(Scene scene, EditorContentManager contentManager) + public this(Scene scene, EditorContentManager contentManager, AssetThumbnailManager thumbnailManager) { Log.EngineLogger.AssertDebug(s_Instance == null, "Cannot create a second instance of a singleton."); s_Instance = this; _scene = scene; _contentManager = contentManager; + _thumbnailManager = thumbnailManager; InitWindows(); } @@ -90,7 +94,7 @@ namespace GlitchyEditor _gameViewportWindow = new GameViewportWindow(this); _entityHierarchyWindow = new EntityHierarchyWindow(this, _scene); _componentEditWindow = new ComponentEditWindow(_entityHierarchyWindow); - _contentBrowserWindow = new ContentBrowserWindow((.)Application.Get().ContentManager); + _contentBrowserWindow = new ContentBrowserWindow((.)Application.Get().ContentManager, _thumbnailManager); _propertiesWindow = new PropertiesWindow(this); _assetViewer = new AssetViewer((.)Application.Get().ContentManager); _logWindow = new LogWindow(); diff --git a/GlitchyEditor/src/EditorIcons.bf b/GlitchyEditor/src/EditorIcons.bf index 796b94d..4bc44b3 100644 --- a/GlitchyEditor/src/EditorIcons.bf +++ b/GlitchyEditor/src/EditorIcons.bf @@ -23,6 +23,10 @@ namespace GlitchyEditor public SubTexture2D Warning ~ _.ReleaseRef(); public SubTexture2D Info ~ _.ReleaseRef(); public SubTexture2D Trace ~ _.ReleaseRef(); + public SubTexture2D File_Scene ~ _.ReleaseRef(); + public SubTexture2D File_Material ~ _.ReleaseRef(); + public SubTexture2D File_CSharpScript ~ _.ReleaseRef(); + public SubTexture2D File_Shader ~ _.ReleaseRef(); public SamplerState SamplerState { @@ -49,6 +53,10 @@ namespace GlitchyEditor Warning = GetNextGridTexture(ref pen, iconSize); Info = GetNextGridTexture(ref pen, iconSize); Trace = GetNextGridTexture(ref pen, iconSize); + File_Scene = GetNextGridTexture(ref pen, iconSize); + File_Material = GetNextGridTexture(ref pen, iconSize); + File_CSharpScript = GetNextGridTexture(ref pen, iconSize); + File_Shader = GetNextGridTexture(ref pen, iconSize); } private SubTexture2D GetNextGridTexture(ref float2 pen, float2 iconSize) diff --git a/GlitchyEditor/src/EditorLayer.bf b/GlitchyEditor/src/EditorLayer.bf index ab5f103..d804010 100644 --- a/GlitchyEditor/src/EditorLayer.bf +++ b/GlitchyEditor/src/EditorLayer.bf @@ -109,6 +109,8 @@ namespace GlitchyEditor /// Returns whether or not the current scene can be saved. public bool CanSaveScene => _sceneState == .Edit; + private AssetThumbnailManager _thumbnailManager ~ delete _; + [AllowAppend] public this(String[] args, EditorContentManager contentManager) : base("Editor") { @@ -125,7 +127,9 @@ namespace GlitchyEditor _camera = EditorCamera(float3(-3f, 3f, -3f), Quaternion.FromEulerAngles(MathHelper.ToRadians(40), MathHelper.ToRadians(25), 0), MathHelper.ToRadians(75), 0.1f, 1); _camera.RenderTarget = _cameraTarget; - + + _thumbnailManager = new AssetThumbnailManager(_editorIcons); + InitEditor(); RegisterAssetCreators(); @@ -156,7 +160,7 @@ namespace GlitchyEditor { Log.ClientLogger.Error($"Directory \"{path}\" could not be created ({error})."); } - })); + }, _editorIcons.Folder)); Editor.Instance.ContentBrowserWindow.InsertAssetCreatorSeparator(); @@ -166,7 +170,7 @@ namespace GlitchyEditor { SaveScene(newScene, path); } - })); + }, _editorIcons.File_Scene)); Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("Material", "New Material", ".mat", new (path) => { @@ -174,7 +178,7 @@ namespace GlitchyEditor { _contentManager.SaveAssetToFile(newMaterial, path); } - })); + }, _editorIcons.File_Material)); Editor.Instance.ContentBrowserWindow.RegisterAssetCreator(new AssetCreator("Script", "New Entity", ".cs", new (path) => { @@ -240,7 +244,7 @@ namespace GlitchyEditor { Log.EngineLogger.Error($"Failed to edit project file ({err}). Please add the file to the project manually."); } - })); + }, _editorIcons.File_CSharpScript)); } private void ToCSharpName(String input, String output) @@ -354,7 +358,7 @@ namespace GlitchyEditor private void InitEditor() { - _editor = new Editor(_editorScene, _contentManager); + _editor = new Editor(_editorScene, _contentManager, _thumbnailManager); _editor.SceneViewportWindow.ViewportSizeChanged.Add(new (s, e) => EditorViewportSizeChanged(s, e)); _editor.GameViewportWindow.ViewportSizeChanged.Add(new (s, e) => GameViewportSizeChanged(s, e)); _editor.CurrentCamera = &_camera;