From 8e713e38e6d4d09ffb26d3ec4bd5be4659d5280a Mon Sep 17 00:00:00 2001 From: Ben Kyd Date: Sat, 28 Jun 2025 23:11:16 +0100 Subject: [PATCH] assimp and ECS, also renderpass? not really tho --- .../index/Aeon.hpp.A53F5D75FC880F09.idx | Bin 1802 -> 1732 bytes .../index/Display.cpp.D92635EEBD4AE5E7.idx | Bin 3744 -> 3628 bytes .../index/Display.hpp.1F2BECCAA6FFFC93.idx | Bin 1852 -> 1742 bytes .../index/Entity.hpp.755C0D6DF9F32090.idx | Bin 464 -> 848 bytes .../index/Events.cpp.B4EE623917FA0DA2.idx | Bin 7020 -> 7024 bytes .../index/Events.hpp.A496277A6267D622.idx | Bin 4808 -> 4956 bytes .../ExampleGame.cpp.9EC42D6E840C2507.idx | Bin 2404 -> 2390 bytes .../index/GameLayer.hpp.2FD71740EFD654A2.idx | Bin 728 -> 746 bytes .../index/Input.cpp.43A863BDFFD32619.idx | Bin 5248 -> 5250 bytes .gitmodules | 6 + Aeon/Aeon.cpp | 113 +++++++++--------- Aeon/Aeon.hpp | 4 +- Aeon/Assets.cpp | 0 Aeon/Assets.hpp | 0 Aeon/Core/EngineConfig.hpp | 2 + Aeon/Entity/CoreComponents/Material.hpp | 16 +++ Aeon/Entity/CoreComponents/Mesh.hpp | 16 +++ Aeon/Entity/CoreComponents/Transform.hpp | 10 +- Aeon/Entity/Entity.hpp | 6 +- Aeon/Input/Input.hpp | 43 +++---- Aeon/Rendering/Material.hpp | 15 +++ Aeon/Rendering/RenderBackend.hpp | 4 + Aeon/ThirdParty/Yolo | 1 + Aeon/ThirdParty/assimp | 1 + CMakeLists.txt | 7 +- Game/ExampleGame.cpp | 9 +- 26 files changed, 160 insertions(+), 93 deletions(-) create mode 100644 Aeon/Assets.cpp create mode 100644 Aeon/Assets.hpp create mode 100644 Aeon/Entity/CoreComponents/Material.hpp create mode 160000 Aeon/ThirdParty/Yolo create mode 160000 Aeon/ThirdParty/assimp diff --git a/.cache/clangd/index/Aeon.hpp.A53F5D75FC880F09.idx b/.cache/clangd/index/Aeon.hpp.A53F5D75FC880F09.idx index 91d318a700c03e9089651e9db434aa2e68e21f10..a91c8a5d4a92a2f9d4a9384a486a4153e15d8930 100644 GIT binary patch literal 1732 zcmYk64NOy46vyAYZ7HvP@AZ|ImeOw0^3^)lV%xw_aU)A$%3xDFoe2Y(A|Q|{WdS

T;?k2DbfOlUC5NIXC&%e0y~IF=KFc$oYm{2Rx0Hm6aLkR|@6N z9RAVOXm~!`7d`ia*Y2CFZ9TK(5_LO1vu!4!LRx=JRIpu>Chp2I`rcc0U~uL&Lw@=9 z>qh9>4wH1LBCPgk?+Hcz$xZ8jrTUVtR!u#cc5A-qiSgl6lfCygMyy`-r*HSEug6{b z)a#anCr7x&jPKLg+-%Q-w?qTis(-lfdd*87?}?EXZ=2I|aLB+oOKzL9I{SJxY*SVz zS9nIgb^dsDOR=h>Xmx0r=wknzFKVCW#mlXxueOZsIo*)*v0t*RV=j|$SC+i2#Pg_o zs(EbPNtv8OGJah6VN8@sO9cP-=Wd3|mD>4E7>mNh1Ym_jGJL z^!SGLRu0KQHd4k=kVm~u)89R2T*4s=WHV(}gDm@E?ex&Vo#$Aj!_6g9iAuqMoO9F9 zCM8HVa7Y5Xqo^ni$Zvb)`-Z!Axml#ayRAxVgkV674ZUz3=Y4%b_4hu2<HEZXQL51`4s8M-beD7VrF`^ZAYZWLd2q zCJS#|^5LNYjM&XX2uVae35IQLqHaVpdYN7cRMAYFI8F|Q;gGli9#hzBVn6)3{Isnf zH=tIj1MQmIw=cgi>gy-Pj5XNG!J!ng>C1_%>L4M`~gm4liR|9IiMX!^OQq0ro1@Ufkzu~xZ3lMUc2(F_0m+Ltste@O+p)R ymW5Dv=_dDD{#q2m-3TURVW|o%5o1mMZLEGqQ5?i7IAw^6U;`SVTv&1o%YOk4^BIEx literal 1802 zcmYjR4Nw$i7~cKP+xubfV~^vGyXzQ^5r%ktQcm5n6Mne2{F@>p9Y!&K|BnkZ?|4?XZGFQ=Xt;PefRmE z-HeSXDM&(58=l`-QS2zsTSHNlKRKP{WrZ9~QNxI$D&B0%NG+*}=59Xx-i&N2;gJ^O z{wJF1CJ=KnY5LgF7tJMCtGSF_k89fZZ2LN{{ZO)g-?b3;k~HE2Nwa72=gz}zU%c|J z42uWo@x`>pZ)cD81+>k69=p9!a;A6PK;PwSf$JLaTj!bsm1B(?3^_;4r>{$N`CBHk zFR)Ri$+%n}txb5%Hz<8`|3|~B*PWf!-`9pL?2R`hUg$e@T$Ni>{aED1N}p5At#?MF zZ>N8{SX;Zfa3=kPYi?*RX?MXy?eH_+%u$Ejd)PjySX=+s)AXTY8X1_1@;gFn{j2zg+nEWZ}e-8_3s;rbVOWKgb~&&=E|85@>mM=FAU+ zb5CNVC$q;faaagI=T3TYe5^Q!LtzGm< zv9uo}4WXlCQA!~IJzsRX(A%SE)gT&*YiT0k|Ehbg_QrphwtSpJ3ZV6jUIz5}j51I2 z*zGQi)TFpwXAczu(9?Bi7Y#-I6Byk`Xq(O!A_SmKJ(9l<9;sU35Cg>xoIwvXHT>gb zSaID7ha^BpGLd)RyUelOi9{5YmF^e*hx<{nh{Z8X3=2kJv5m2@FaeA0jGcvX!D_Tl zuo##FEJn)(YXN-7`_+z+8!zc-7HcE4@t_zqBH6s%ARDeoE;wv#Y+_eIs=AM?C9(nu zZX*NmE&~``Mqu7u0E4>-%)1I;a20`hHvycm99JLN^-UtfVx!Wihs7)o_74t(4lFil zOhKRnQBDz~ffpjmDQud1lvCI>pj`A6=aBAeN+nuY#1<8J4;)Oi;Oz^efOE-&ykh~r zy#8g&ug20`l1)o#{@*AZP>jI5iy<2fOkm!<0H2TSUkMt>e}mr@R;zsy^POaU{mraH^EIWu|rRl*(!fm^-3yE)`F-DRuBIthZ~azp{{`qcD4YNQ diff --git a/.cache/clangd/index/Display.cpp.D92635EEBD4AE5E7.idx b/.cache/clangd/index/Display.cpp.D92635EEBD4AE5E7.idx index cab95d220e3aa889e36753426da0034d6a534e14..33ac16131bf8da86ae656dc4197771c074b3725e 100644 GIT binary patch literal 3628 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 ahQALuR$Q8yIig#9#k8_y@fZY^P5BdulFoAg literal 3744 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 CObgKf diff --git a/.cache/clangd/index/Entity.hpp.755C0D6DF9F32090.idx b/.cache/clangd/index/Entity.hpp.755C0D6DF9F32090.idx index 43e6d18baa2b6db57746fb7413635225a3dfb8e5..b52b2c453ddd6d4d2d05a7f1b383e69a9749f96f 100644 GIT binary patch literal 848 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 literal 7020 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 diff --git a/.cache/clangd/index/Events.hpp.A496277A6267D622.idx b/.cache/clangd/index/Events.hpp.A496277A6267D622.idx index 87d8b06464696d942c54983cfc6369e08df9bff5..4ba45d31efa8e087c1ea0b7a59edd29cbb4a07ea 100644 GIT binary patch literal 4956 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 GlU8h=}7pe1mfW@R0A`WrX9OeBPFfF*1e2S=a= z;0PbfU?9Ki z8qMw#?bCy{PGiWV_9Gh5l*XxKlZ6~0w`g2p3$oE7C^;GzihT}pg36(B>D%TaN9YAK zn}@9OkS%m}8VA=pAK5{)XD@x91OtxvdI7f4%LJS z+&lp33F3GH=?E~LelzPEM+u`hu+nS-nV>rTm4!rEhy~BX=z#Tba|7sskpY|g|A`E- z$Ap1Z%**UZP#tdGD)3s||BYh@#LX3X_-konA*>*gZUnK9SMLvv=vT$GQD zrej`)L}kcmy4^^Sl>{xB87iwPv;;y0xqx3H8&<&eFsxtzkqs$8fNaJ$xZwm`3dM+B z$W12TLZ}PO%?%^K4d&xx*$@KKq2e%s8$Q5IAWmK&9Xh5x8)*<}4o#0{lbK|F07M$& zgV8Z$1%LsSjU{tq2}p)!fRDLx1dgHB@i8}sz%h&=_?5EZ1MH@jZ~fV4BIi#G0~yF9 z16ct9+6xxMO(P%(;06ogMiF=)Od#$IHr*6AcP)o=)+UsxsTCN`KCBV*|aiKe{IS^-G-!ks4GIwm0Gclb@m~cn3 NpDFx95Ob&h{U3Y1STO(q diff --git a/.cache/clangd/index/ExampleGame.cpp.9EC42D6E840C2507.idx b/.cache/clangd/index/ExampleGame.cpp.9EC42D6E840C2507.idx index 6eac052c4bc0c5a05ec0dc33702b9f6443c7fb21..09993e389913b979c212e07bacb86ed7594b461f 100644 GIT binary patch literal 2390 zcmY*a3s4hR6y05xkWCgg2_Z;;@Y#q#ra`0_g&`;?MUhkpe?}1ne-%GLD=I386)9k$ z46PQ7zsjgnD~d|77VD=9MT}OdV*S)${6OopGX9t{^zC+TEScf3IcMLy_r7<|Bx!nV ztbxL?nB3`w`FX2yNDRZ|=&xXvX>lcvVPS|UY^Y1>T+%;I(%m9|KDND z8NR3bTT_SbS`q_)L+LpV=TE7*)a-KGDc%HsW zfDJbIO^Z}zWQ|exYIY^XZZEBlim%>kHH|ykG$lxUC{cROr=!GJe);4KpX9EH8>w&a z6n%eoU~x!L;{%(mGc| zjr(xf=S9TJ)HSCH*5=PkATTVsInR8zXQtMP@W3!OP7o*M0o@w^aW5r)O}`itA|Xa8 zFji0L6+D2fPO9!9AH_sS2o;jUsc4i89}`PBsoW5ngC8kw7Ho0p!)^tcpF`UJob; zH?%s4407QCWXzPepx~ARhE+|j?@m1^660QMvM^ZzKKO-wZS~kVFq)v*IKMbGc#mdh zie@^)OTdz%5l*Ce>wrkJnU0x~ci(cz90o3>tYz-b_cGG7xSTZ#jZ)Ybtc)vp3&RbA zg%Qp97wE_#T~*-eHa$tRg3$skn2lydo+34z63uFSHG!~%W{n<3e<%n43FU~!v=$fOG;8oT zguo_{3sjN|1(dYvd`>kVc(@6@&A2d1@Lw={b9j<@Vbw2slqz}K*ugJ?wLXx?cc z(rk(_MFu;;aiVs(EP@>&hKS}e2%|#$5Y1%|XqXLM7?(Mqz1T$0L|>?sRQ_?8MlyH{ z^&G~8$)RUP^w;gLcIodSW2?MXfl!!c_1^kGFdn>&>T;=tQ6R90=F$pvA*hJvQVMT- z?n&Bs=R(2@)BxkfjDezCudV!Q|tyr z`Cghcj5c>8b}l3Xexh-3lbwJeA?o%Y7zh*wcC`~w%TB;BH~MwKi>A~U;BbO=0uDHS zqKmEnWJ?VWcWNi#_$CB5rR5g79K|8$b^@|@`=;sHh1Nfx;1Dm}z@)rR?BX*VTy7`e zs;~mn{DKd-L-yt1zmE?*U=Hjt;*$*X;jHV9KE8hbYRum*VSeu()$bnX=jSd(zhW38 Vl@Jb&q(JB-k~)j!6pg!J{{p4&6|VpQ literal 2404 zcmZuy3s4hR6y05x{8+Lf#2_Jr)qqXpR}=$CF(3}YNQ9xZY84q31O$o_3=t9h)L&J` zis)EAqN1bIQE91I)KU>UEgy>twn&8{;0KTyC5*pH>D!&TvCNbiF8j{eci+ADowLM6 zMMSI+Vpw=mlsPjwXBCNIm<;_IbF$O6;}~|*2E)u{C2@vywI6jaOZ!Y~K1}8b2X4!Y zIx86ZTbdkni%*v9iwJHFE*CUz3&|_rS=GMw;_^F5W#aSWbN^ZV%e^Yass6`h4TDqT zeM~*O3j7cCZm;Eg7Y-M8^t)LzP@eNt)H=PHiCJyAbbGGMXW^>n3Do@R zJtwN3Do>{$)5*L%j*Oef=#WHwVnbN{iN;neUspx&O0-*nF$$r= zfeS#ZjytrSS-mmUiBO~6S!9+i7l3|qz18hV@wN?oLV_yi@px0X0Cf1pM<1TuKc`Sa zOhw7%Lb;R+K({vapRcdpRU{#3RJpIvm*xV{O+%Wx6Z@3k@d+tPuHk7UTmX7coAy$q zrlf(wrXxCs%n@(_=qvNd@%%)x2~7>1trDu_TmZV@)bea){pT$bLWXFyP)&0I=tWs6 z+Se~a+T?^YqU}k0As2vdDO2UG%q{6gjiJhC3ujBY05t!2|FxQofgaQt+AS4IX)XYr zcx#~g+{CZF=xnrmfp7uM1)$sX6&-z{A6xi@Gipr46WMVA=#341^2$B0EOJ7Mc6*YZ zVlDuUWhbvST9CI7gqGg>^sLAZS2F7a>*Sz=yXsec&IJ|^f?}ekMY)6aD8?W%*uzVJ zlA=jUq&VpSNikWrS(5iF6KSI1QWCD_+7zuH^+AWH3Q`>)FGv|za1w?a1_>jW)i1yy z;{gY>SL)}H6vOl2`GD9cM&u%Lhbd8vhS6wY3&o^5r%s3C;4h(=RJe>WNlY>*6&!#L zXXOuhLHW3pQ#`Z@Mc|_URXR$-${dpP1-RALoPJn{Qw%Mp6`-nRn;*R{=B?X{rbEx9 z{Q(9)pd_prpr^5nZ_-|0w=YF+|M!lL{&gehykYz#g3|@*cF=3)7iV1iXSJO|a3CEh z1*JkVbfc`3KrIxf9Uv(tO^_yqOlZZV&4d+<3l+zD4HAIO5X^cE8V7qJnDrLG&?&kQ z)>8m0nG}~422P6GYnr2xy!``pprds%=-`Kl67z-7C!K_hG0=vo@HSd04c@Tw_Byop zo$}TL9KkLICBU@kdFR*V^SY7fRjw*66iqRDSG^WQ2?wE?Sx3WAz|06{oeVXDi4n{? z7~XcNj4SABG>oF+X(jyuGz`1Y_*p~4^r%T=pqLaviq(T?^`D`D>(S&`%foTXNq2<2 zpRsBJC7(hZOCe|cOyTeawgS*3dGD@N=)nrW_;kM2OOnjui#U7(tN{43vm<-3v2NrE4vq}41SPj%HwSU>ixq&Y z!i?E#j0@QzyTYU~O!fXzX??_*f?9vOp1BdVwn|r(+ceD0N@3I9Kd#A4%3wW1iR}p+ OTaqsp2^@Gr-0okrmLIqP diff --git a/.cache/clangd/index/GameLayer.hpp.2FD71740EFD654A2.idx b/.cache/clangd/index/GameLayer.hpp.2FD71740EFD654A2.idx index 4302a2632065063c90ca2326bcf7addb3f0b5e0f..8ec0a627db54a03fb96086ddb618081f6d2315a9 100644 GIT binary patch delta 431 zcmcb?`iiwa$kWa35fcN0bBbq0ZfZ#)3j+g#2oM*S6lGQc>EA$HF=uM8Az!nBh;y;h zo^ z^3_ZGvc8D!{p-Vf;Am@wkx#`^8GDV7OQ(vq87_#pn{4m!KY7B|Le1E)^WRsO$sai# z_Ikp9{|(_+iYs%I<^ru3Wty4JqIQ%=fQgkE$OQsUUO`?d1`Y_v_OE%b=B|Bq>`ZJ- z44j;7octhS;zcuiVgLXh C?RnJz delta 405 zcmaFGdV{q-$kWa30uuv+bBbq0ZfZ#)3j+g#2oM*S6lE3z>3u+4F=uM;LB3`M2IrrP zzMkuSaVOQio*`0n8Ixnurv36#kM4TU-ZOof)6+G*qP`weHeK^xU-Mc%SW(yi{?bEL z>1l%VvYWB&cg zaX-VvS<*^8d_3X|96;NF!1k|suja0OcI-@SObnbHY#jU`V&Zi<7Ct^ck%>R0>v{Qj z#bBzA<8r}oki^^52GX}$TFBEFq)AI zY}1n`&q_1AMUQz~@I8IKb^Ao1YLKNcRc87d!c!{b`PKu)L5_flEAcIST)sj71S1b8 nha|`3O^n(sAV*Ao$oNo39ONpf*Fa3p{2UpUlg*i8j2sLAsl$B{ diff --git a/.cache/clangd/index/Input.cpp.43A863BDFFD32619.idx b/.cache/clangd/index/Input.cpp.43A863BDFFD32619.idx index b1cedce63d406327ab20dfb77530cd9a84f74c17..78e6df6704074a4056c1ab65ade2445f81bb4071 100644 GIT binary patch literal 5250 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 F{tuI3>~sJC literal 5248 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 - #include using Core::App; @@ -10,85 +9,87 @@ using Core::DisplayProperties; using Input::InputController; -App::App( const AppProperties& props, const DisplayProperties& dispProps ) - : mDisplay() - , mInput(InputController::GetInstance()) - , mEntityController( ) +App::App(const AppProperties& props, const DisplayProperties& dispProps) + : mDisplay(), mInput(InputController::GetInstance()), mEntityRegistry() { - PushThisAsSink( "ENGINE_DISPLAY_CORE" ); + PushThisAsSink("ENGINE_DISPLAY_CORE"); - mDisplay.Create( dispProps ); + mDisplay.Create(dispProps); } void App::Run() { - while ( !mSIGTERM ) - { - // Should do this ONLY on update (but needs to be on main thread) - mInput.PollInput(); + while (!mSIGTERM) + { + // Should do this ONLY on update (but needs to be on main thread) + mInput.PollInput(); - // tick through game layers - for ( const auto& layer : mGameLayers ) - { - layer->FrameTick(); - } - for ( const auto& layer : mTopLayers ) - { - layer->FrameTick(); - } - for ( const auto& layer : mDebugLayers ) - { - layer->FrameTick(); - } + // tick through game layers + for (const auto& layer : mGameLayers) + { + layer->FrameTick(); + } + for (const auto& layer : mTopLayers) + { + layer->FrameTick(); + } + for (const auto& layer : mDebugLayers) + { + layer->FrameTick(); + } - // tick through game layers *but timed* - // TODO: Timed event thread (won't allow rendering) - for ( const auto& layer : mGameLayers ) - { - layer->TimeTick(); - } - for ( const auto& layer : mTopLayers ) - { - layer->TimeTick(); - } - for ( const auto& layer : mDebugLayers ) - { - layer->TimeTick(); - } + // tick through game layers *but timed* + // TODO: Timed event thread (won't allow rendering) + for (const auto& layer : mGameLayers) + { + layer->TimeTick(); + } + for (const auto& layer : mTopLayers) + { + layer->TimeTick(); + } + for (const auto& layer : mDebugLayers) + { + layer->TimeTick(); + } - mDisplay.EndFrame(); - } + mDisplay.EndFrame(); + } - mDisplay.Destroy(); + mDisplay.Destroy(); } const Display& App::GetDisplay() { - return mDisplay; + return mDisplay; } -void App::PushLayer( GameLayer* layer ) +EC::Registry& App::GetEntityRegistry() { - mGameLayers.push_back( layer ); + return mEntityRegistry; } -void App::PushTopLayer( GameLayer* layer ) +void App::PushLayer(GameLayer* layer) { - mTopLayers.push_back( layer ); + mGameLayers.push_back(layer); } -void App::PushDebugLayer( GameLayer* layer ) +void App::PushTopLayer(GameLayer* layer) { - mDebugLayers.push_back( layer ); + mTopLayers.push_back(layer); } - -bool App::EventRecieved( GenericEvent& e ) +void App::PushDebugLayer(GameLayer* layer) { - if ( e.Type == "DISPLAY_CLOSED" ) - { - mSIGTERM = true; - } - - return false; + mDebugLayers.push_back(layer); +} + +bool App::EventRecieved(GenericEvent& e) +{ + if (e.Type == "DISPLAY_CLOSED") + { + mSIGTERM = true; + } + + return false; } diff --git a/Aeon/Aeon.hpp b/Aeon/Aeon.hpp index 39150d9..cf41a29 100644 --- a/Aeon/Aeon.hpp +++ b/Aeon/Aeon.hpp @@ -26,7 +26,7 @@ public: void Run(); const Display& GetDisplay(); - const EC:: + EC::Registry& GetEntityRegistry(); // Layers, once assigned, until poped are assumed to // never change their spot in the layer hierarchy @@ -44,7 +44,7 @@ public: private: Display mDisplay; - EC::registry mEntityRegistry; + EC::Registry mEntityRegistry; Input::InputController& mInput; // Game layers from z order diff --git a/Aeon/Assets.cpp b/Aeon/Assets.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Aeon/Assets.hpp b/Aeon/Assets.hpp new file mode 100644 index 0000000..e69de29 diff --git a/Aeon/Core/EngineConfig.hpp b/Aeon/Core/EngineConfig.hpp index b29c005..1ee037c 100644 --- a/Aeon/Core/EngineConfig.hpp +++ b/Aeon/Core/EngineConfig.hpp @@ -1,6 +1,8 @@ #ifndef AEON_CORE_ENGINECONFIG_H_ #define AEON_CORE_ENGINECONFIG_H_ +#include + namespace Core { diff --git a/Aeon/Entity/CoreComponents/Material.hpp b/Aeon/Entity/CoreComponents/Material.hpp new file mode 100644 index 0000000..331a6cc --- /dev/null +++ b/Aeon/Entity/CoreComponents/Material.hpp @@ -0,0 +1,16 @@ +#ifndef AEON_ENTITY_CORECOMPONENTS_MESH_H_ +#define AEON_ENTITY_CORECOMPONENTS_MESH_H_ + +#include + +namespace EC +{ + +struct Material +{ + MaterialHandle Handle; +}; + +} // namespace EC + +#endif diff --git a/Aeon/Entity/CoreComponents/Mesh.hpp b/Aeon/Entity/CoreComponents/Mesh.hpp index e69de29..2509a60 100644 --- a/Aeon/Entity/CoreComponents/Mesh.hpp +++ b/Aeon/Entity/CoreComponents/Mesh.hpp @@ -0,0 +1,16 @@ +#ifndef AEON_ENTITY_CORECOMPONENTS_MESH_H_ +#define AEON_ENTITY_CORECOMPONENTS_MESH_H_ + +#include + +namespace EC +{ + +struct Mesh +{ + MeshHandle Handle; +}; + +} // namespace EC + +#endif diff --git a/Aeon/Entity/CoreComponents/Transform.hpp b/Aeon/Entity/CoreComponents/Transform.hpp index 434a56c..eead67e 100644 --- a/Aeon/Entity/CoreComponents/Transform.hpp +++ b/Aeon/Entity/CoreComponents/Transform.hpp @@ -9,15 +9,15 @@ namespace EC struct Transform { - Transform(glm::vec3 position) : position(position) + Transform(glm::vec3 position) : Position(position) { } - glm::vec3 position; - glm::quat rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f); - float scale = 1.0f; + glm::vec3 Position; + glm::quat Rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f); + float Scale = 1.0f; - glm::mat4 model; + glm::mat4 Model; }; } // namespace EC diff --git a/Aeon/Entity/Entity.hpp b/Aeon/Entity/Entity.hpp index 08ef8a8..cb50e46 100644 --- a/Aeon/Entity/Entity.hpp +++ b/Aeon/Entity/Entity.hpp @@ -1,6 +1,8 @@ #ifndef AEON_ENTITY_ENTITY_H_ #define AEON_ENTITY_ENTITY_H_ +#include +#include #include #include #include @@ -14,13 +16,9 @@ using Handle = entt::handle; template using View = entt::basic_view, Components...>; -template -using View = entt::basic_view, Include...>; - using Dispatcher = entt::dispatcher; static constexpr auto null = entt::null; - } // namespace EC #endif diff --git a/Aeon/Input/Input.hpp b/Aeon/Input/Input.hpp index fe6dec7..ec6b3c6 100644 --- a/Aeon/Input/Input.hpp +++ b/Aeon/Input/Input.hpp @@ -1,42 +1,43 @@ #ifndef AEON_INPUT_INPUT_H_ #define AEON_INPUT_INPUT_H_ -#include - -#include #include +#include +#include -namespace Input +namespace Input { +// confusing name, not part of the ecs +// could be tho class InputController : public Helpers::Singleton { public: - InputController(); - ~InputController(); + InputController(); + ~InputController(); - void PollInput(); + void PollInput(); private: - void mPollDisplay(); - void mPollMouse(); - void mPollScroll(); - void mPollClick(); - void mPollKeyboard(); - void mPollScanKeyboard(); + void mPollDisplay(); + void mPollMouse(); + void mPollScroll(); + void mPollClick(); + void mPollKeyboard(); + void mPollScanKeyboard(); private: - SDL_Event mEvent; + SDL_Event mEvent; - int mNumScancodes = 242; - const uint8_t* mKbdState; - uint16_t mModKeyState = 0x0; + int mNumScancodes = 242; + const uint8_t* mKbdState; + uint16_t mModKeyState = 0x0; - Core::EventDispatcher mDisplayEventDispatcher; - Core::EventDispatcher mKeyboardEventDispatcher; - Core::EventDispatcher mMouseEventDispatcher; + Core::EventDispatcher mDisplayEventDispatcher; + Core::EventDispatcher mKeyboardEventDispatcher; + Core::EventDispatcher mMouseEventDispatcher; }; -} +} // namespace Input #endif diff --git a/Aeon/Rendering/Material.hpp b/Aeon/Rendering/Material.hpp index e69de29..9456848 100644 --- a/Aeon/Rendering/Material.hpp +++ b/Aeon/Rendering/Material.hpp @@ -0,0 +1,15 @@ +#ifndef AEON_RENDERING_MATERIAL_H_ +#define AEON_RENDERING_MATERIAL_H_ + +#include +#include + +struct Material +{ + +}; + +typedef Handle MaterialHandle; + +#endif + diff --git a/Aeon/Rendering/RenderBackend.hpp b/Aeon/Rendering/RenderBackend.hpp index e69de29..ef9a33c 100644 --- a/Aeon/Rendering/RenderBackend.hpp +++ b/Aeon/Rendering/RenderBackend.hpp @@ -0,0 +1,4 @@ +#ifndef AEON_RENDERING_MESH_H_ +#define AEON_RENDERING_MESH_H_ + +#endif diff --git a/Aeon/ThirdParty/Yolo b/Aeon/ThirdParty/Yolo new file mode 160000 index 0000000..8ea86d5 --- /dev/null +++ b/Aeon/ThirdParty/Yolo @@ -0,0 +1 @@ +Subproject commit 8ea86d52d2b2ec2edd655ad135de56e34fd17a05 diff --git a/Aeon/ThirdParty/assimp b/Aeon/ThirdParty/assimp new file mode 160000 index 0000000..b447485 --- /dev/null +++ b/Aeon/ThirdParty/assimp @@ -0,0 +1 @@ +Subproject commit b447485c064ec79329275cbc7b10a08787032a23 diff --git a/CMakeLists.txt b/CMakeLists.txt index 04045d7..b47a2ee 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,8 @@ set(OpenGL_GL_PREFERENCE GLVND) find_package(OpenGL REQUIRED) find_package(SDL2 REQUIRED) +add_subdirectory("Aeon/ThirdParty/assimp") + # Adds RESOURCES constant in C++ add_definitions(-DRESOURCES="${CMAKE_SOURCE_DIR}/resources/") message(${CMAKE_SOURCE_DIR}/resources) @@ -45,12 +47,14 @@ include_directories(${Aeon} "Aeon/ThirdParty/" "Aeon/ThirdParty/glm/" "Aeon/ThirdParty/entt/src/" + "Aeon/ThirdParty/assimp/" + "Aeon/ThirdParty/yolo/" ${WinSDK} ${SDL2_INCLUDE_DIRS} ) add_executable(${Aeon} - ${EngineSource} + ${EngineSource} ${GameSource} ) @@ -59,4 +63,5 @@ target_link_libraries(${Aeon} ${SDL2_LIBRARIES} Threads::Threads OpenGL::GL + assimp ) diff --git a/Game/ExampleGame.cpp b/Game/ExampleGame.cpp index f884f89..2490180 100644 --- a/Game/ExampleGame.cpp +++ b/Game/ExampleGame.cpp @@ -76,16 +76,17 @@ public: ExampleGame() : App({"Example"}, {"Game with AEON!"}) { - const auto entity = this->mEntityRegistry.create(); - entity.emplace(); + const auto entity = GetEntityRegistry().create(); + GetEntityRegistry().emplace(entity, EC::Transform({0.0f, 0.0f, 0.0f})); Level* level = new Level; PushLayer((Core::GameLayer*)level); - PushDebugLayer(&debug); + DebugLayer debug; + PushDebugLayer(&debug); + Run(); - delete level; } ~ExampleGame()