X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp.hpp;h=e6226dc50454dff487aa8596460b68dcfdf0670a;hb=35c09fc00094a3d390732fd533b2bd03413d90c7;hp=cb71411de60e312231f0ac847580f8baf914d579;hpb=f01ebd81ff047eb3209e25e183564f72f587915f;p=blank.git diff --git a/src/app.hpp b/src/app.hpp index cb71411..e6226dc 100644 --- a/src/app.hpp +++ b/src/app.hpp @@ -1,14 +1,10 @@ #ifndef BLANK_APP_HPP_ #define BLANK_APP_HPP_ -#include -#include - #include "camera.hpp" #include "controller.hpp" -#include "hud.hpp" #include "init.hpp" -#include "model.hpp" +#include "interface.hpp" #include "shader.hpp" #include "world.hpp" @@ -18,7 +14,16 @@ namespace blank { class Application { public: - Application(); + struct Config { + bool vsync = true; + bool doublebuf = true; + int multisampling = 1; + + Interface::Config interface = Interface::Config(); + World::Config world = World::Config(); + }; + + explicit Application(const Config &); Application(const Application &) = delete; Application &operator =(const Application &) = delete; @@ -38,6 +43,8 @@ public: void Update(int dt); void Render(); + static Entity &MakeTestEntity(World &); + private: InitSDL init_sdl; InitIMG init_img; @@ -45,24 +52,17 @@ private: Window window; GLContext ctx; InitGLEW init_glew; - DirectionalLighting program; + BlockLighting chunk_prog; + DirectionalLighting entity_prog; Camera cam; - HUD hud; World world; - FPSController controller; + Interface interface; - OutlineModel outline; - bool outline_visible; - glm::mat4 outline_transform; + RandomWalk test_controller; bool running; - bool place, remove, pick; - - int remove_id; - int place_id; - }; }