#define BLANK_APP_HPP_
#include "camera.hpp"
+#include "controller.hpp"
#include "init.hpp"
#include "interface.hpp"
#include "shader.hpp"
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;
void Update(int dt);
void Render();
+ static Entity &MakeTestEntity(World &);
+
private:
InitSDL init_sdl;
InitIMG init_img;
Window window;
GLContext ctx;
InitGLEW init_glew;
- DirectionalLighting program;
+ BlockLighting chunk_prog;
+ DirectionalLighting entity_prog;
Camera cam;
World world;
Interface interface;
+ RandomWalk test_controller;
+
bool running;
};