X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FApplication.hpp;h=973234916a3afa541c2f2e41a544ef455e340521;hb=79bff420037f150bd6efd2eef08bd06afafeb068;hp=99f0dc4fbad0b168249c20e18fc97797a19524ad;hpb=6f94235a5b7c140852703e60c8a74760b8b61d99;p=blank.git diff --git a/src/app/Application.hpp b/src/app/Application.hpp index 99f0dc4..9732349 100644 --- a/src/app/Application.hpp +++ b/src/app/Application.hpp @@ -1,17 +1,21 @@ #ifndef BLANK_APP_APPLICATION_HPP_ #define BLANK_APP_APPLICATION_HPP_ -#include "init.hpp" -#include "RandomWalk.hpp" -#include "../graphics/BlockLighting.hpp" -#include "../graphics/Camera.hpp" -#include "../graphics/DirectionalLighting.hpp" +#include "Assets.hpp" +#include "FrameCounter.hpp" +#include "../ai/Spawner.hpp" +#include "../audio/Audio.hpp" +#include "../graphics/Viewport.hpp" #include "../ui/Interface.hpp" #include "../world/World.hpp" +#include + namespace blank { +class Window; + class Application { public: @@ -24,7 +28,8 @@ public: World::Config world = World::Config(); }; - explicit Application(const Config &); + Application(Window &, const Config &); + ~Application(); Application(const Application &) = delete; Application &operator =(const Application &) = delete; @@ -43,28 +48,23 @@ public: /// process all events in SDL's queue void HandleEvents(); + void Handle(const SDL_WindowEvent &); /// integrate to the next step with dt milliseconds passed void Update(int dt); /// push the current state to display void Render(); - static Entity &MakeTestEntity(World &); - private: - InitSDL init_sdl; - InitIMG init_img; - InitGL init_gl; - Window window; - GLContext ctx; - InitGLEW init_glew; - BlockLighting chunk_prog; - DirectionalLighting entity_prog; - - Camera cam; + Window &window; + Viewport viewport; + Assets assets; + Audio audio; + FrameCounter counter; + World world; Interface interface; - RandomWalk test_controller; + Spawner spawner; bool running;