]> git.localhorst.tv Git - blank.git/blob - src/app.hpp
0b0e64e46681c26d167c5214e2d8193c256ca0eb
[blank.git] / src / app.hpp
1 #ifndef BLANK_APP_HPP_
2 #define BLANK_APP_HPP_
3
4 #include <glm/glm.hpp>
5 #include <glm/gtc/matrix_transform.hpp>
6
7 #include "camera.hpp"
8 #include "controller.hpp"
9 #include "hud.hpp"
10 #include "init.hpp"
11 #include "model.hpp"
12 #include "shader.hpp"
13 #include "world.hpp"
14
15
16 namespace blank {
17
18 class Application {
19
20 public:
21         Application();
22
23         Application(const Application &) = delete;
24         Application &operator =(const Application &) = delete;
25
26         void Run();
27         void Loop(int dt);
28
29         void HandleEvents();
30         void Update(int dt);
31         void Render();
32
33 private:
34         InitSDL init_sdl;
35         InitIMG init_img;
36         InitGL init_gl;
37         Window window;
38         GLContext ctx;
39         InitGLEW init_glew;
40         DirectionalLighting program;
41
42         Camera cam;
43         HUD hud;
44         World world;
45         FPSController controller;
46
47         OutlineModel outline;
48         bool outline_visible;
49         glm::mat4 outline_transform;
50
51         bool running;
52
53         bool place, remove, pick;
54
55         int remove_id;
56         int place_id;
57
58 };
59
60 }
61
62 #endif