]> git.localhorst.tv Git - blank.git/blob - src/app.hpp
updated description and TODO list
[blank.git] / src / app.hpp
1 #ifndef BLANK_APP_HPP_
2 #define BLANK_APP_HPP_
3
4 #include "camera.hpp"
5 #include "controller.hpp"
6 #include "init.hpp"
7 #include "interface.hpp"
8 #include "shader.hpp"
9 #include "world.hpp"
10
11
12 namespace blank {
13
14 class Application {
15
16 public:
17         Application();
18
19         Application(const Application &) = delete;
20         Application &operator =(const Application &) = delete;
21
22         /// run until user quits
23         void Run();
24         void Loop(int dt);
25
26         /// run for n frames
27         void RunN(size_t n);
28         /// run for t milliseconds
29         void RunT(size_t t);
30         /// run for n frames, assuming t milliseconds for each
31         void RunS(size_t n, size_t t);
32
33         void HandleEvents();
34         void Update(int dt);
35         void Render();
36
37         static Entity &MakeTestEntity(World &);
38
39 private:
40         InitSDL init_sdl;
41         InitIMG init_img;
42         InitGL init_gl;
43         Window window;
44         GLContext ctx;
45         InitGLEW init_glew;
46         DirectionalLighting program;
47
48         Camera cam;
49         World world;
50         Interface interface;
51
52         RandomWalk test_controller;
53
54         bool running;
55
56 };
57
58 }
59
60 #endif