]> git.localhorst.tv Git - gong.git/blob - src/graphics/PlainColor.hpp
code, assets, and other stuff stolen from blank
[gong.git] / src / graphics / PlainColor.hpp
1 #ifndef GONG_GRAPHICS_PLAINCOLOR_HPP_
2 #define GONG_GRAPHICS_PLAINCOLOR_HPP_
3
4 #include "glm.hpp"
5 #include "Program.hpp"
6
7 #include <GL/glew.h>
8
9
10 namespace gong {
11 namespace graphics {
12
13 class PlainColor {
14
15 public:
16         PlainColor();
17
18         void Activate() noexcept;
19
20         void SetM(const glm::mat4 &m) noexcept;
21         void SetProjection(const glm::mat4 &p) noexcept;
22         void SetView(const glm::mat4 &v) noexcept;
23         void SetVP(const glm::mat4 &v, const glm::mat4 &p) noexcept;
24         void SetMVP(const glm::mat4 &m, const glm::mat4 &v, const glm::mat4 &p) noexcept;
25
26         const glm::mat4 &Projection() const noexcept { return projection; }
27         const glm::mat4 &View() const noexcept { return view; }
28         const glm::mat4 &GetVP() const noexcept { return vp; }
29
30 private:
31         Program program;
32
33         glm::mat4 projection;
34         glm::mat4 view;
35         glm::mat4 vp;
36
37         GLuint mvp_handle;
38
39 };
40
41 }
42 }
43
44 #endif