]> git.localhorst.tv Git - blank.git/blob - src/graphics/SkyBoxShader.hpp
fix this whole sky box mess
[blank.git] / src / graphics / SkyBoxShader.hpp
1 #ifndef BLANK_GRAPHICS_SKYBOXSHADER_HPP_
2 #define BLANK_GRAPHICS_SKYBOXSHADER_HPP_
3
4 #include "CubeMap.hpp"
5
6
7 namespace blank {
8
9 class SkyBoxShader {
10
11 public:
12         SkyBoxShader();
13
14         void Activate() noexcept;
15
16         void SetTexture(CubeMap &) noexcept;
17
18         void SetProjection(const glm::mat4 &p) noexcept;
19         void SetView(const glm::mat4 &v) noexcept;
20         void SetVP(const glm::mat4 &v, const glm::mat4 &p) noexcept;
21
22         const glm::mat4 &Projection() const noexcept { return projection; }
23         const glm::mat4 &View() const noexcept { return view; }
24         const glm::mat4 &GetVP() const noexcept { return vp; }
25
26 private:
27         Program program;
28
29         glm::mat4 projection;
30         glm::mat4 view;
31         glm::mat4 vp;
32
33         GLuint vp_handle;
34         GLuint sampler_handle;
35
36 };
37
38 }
39
40 #endif