]> git.localhorst.tv Git - blank.git/blob - src/ui/HUD.hpp
"streamlined" model/VAO handling
[blank.git] / src / ui / HUD.hpp
1 #ifndef BLANK_UI_HUD_H_
2 #define BLANK_UI_HUD_H_
3
4 #include "../graphics/FixedText.hpp"
5 #include "../model/EntityModel.hpp"
6 #include "../model/OutlineModel.hpp"
7
8 #include <glm/glm.hpp>
9
10
11 namespace blank {
12
13 class Block;
14 class BlockTypeRegistry;
15 class Font;
16 class Viewport;
17
18 class HUD {
19
20 public:
21         HUD(const BlockTypeRegistry &, const Font &);
22
23         HUD(const HUD &) = delete;
24         HUD &operator =(const HUD &) = delete;
25
26         void Display(const Block &);
27
28         void Render(Viewport &) noexcept;
29
30 private:
31         const BlockTypeRegistry &types;
32         const Font &font;
33
34         EntityModel block;
35         EntityModel::Buffer block_buf;
36         glm::mat4 block_transform;
37
38         FixedText block_label;
39
40         bool block_visible;
41
42         OutlineModel crosshair;
43
44 };
45
46 }
47
48 #endif