]> git.localhorst.tv Git - gworm.git/blob - src/app/Application.h
23815d34460fe64b0815db3cf9111ea1a04cb2b8
[gworm.git] / src / app / Application.h
1 #ifndef GWORM_APPLICATION_H_
2 #define GWORM_APPLICATION_H_
3
4 #include "../graphics/Camera.h"
5 #include "../graphics/Moveable.h"
6 #include "../graphics/Vector.h"
7
8 #include <SDL.h>
9
10
11 namespace gworm {
12
13 class Canvas;
14 class World;
15
16 class Application {
17
18 public:
19         Application(Canvas &, World &);
20
21 public:
22         void Run();
23
24 private:
25         void Loop(int delta_ms);
26
27         void HandleEvents();
28         void OnKeyDown(const SDL_KeyboardEvent &);
29         void OnKeyUp(const SDL_KeyboardEvent &);
30
31         void Update(int delta_ms);
32
33         void Render();
34         void RenderBackground();
35         void RenderWorld();
36         void RenderEntities();
37         void RenderUI();
38
39 private:
40         Canvas &canvas;
41         World &world;
42
43         Moveable<float> focus;
44         Camera cam;
45
46         Uint32 last;
47         bool running;
48         bool paused;
49
50 };
51
52 }
53
54 #endif