]> git.localhorst.tv Git - blobs.git/blob - src/graphics/PlanetSurface.hpp
2e73fbc1542e113a60eb95a1c0a6239011b06b28
[blobs.git] / src / graphics / PlanetSurface.hpp
1 #ifndef BLOBS_GRAPHICS_PLANETSURFACE_HPP_
2 #define BLOBS_GRAPHICS_PLANETSURFACE_HPP_
3
4 #include "Program.hpp"
5
6
7 namespace blobs {
8 namespace graphics {
9
10 class ArrayTexture;
11
12 class PlanetSurface {
13
14 public:
15         PlanetSurface();
16         ~PlanetSurface();
17
18         PlanetSurface(const PlanetSurface &) = delete;
19         PlanetSurface &operator =(const PlanetSurface &) = delete;
20
21         PlanetSurface(PlanetSurface &&) = delete;
22         PlanetSurface &operator =(PlanetSurface &&) = delete;
23
24 public:
25         void Activate() noexcept;
26
27         void SetMVP(const glm::mat4 &m, const glm::mat4 &v, const glm::mat4 &p) noexcept;
28         void SetNormal(const glm::vec3 &) noexcept;
29         void SetTexture(ArrayTexture &) noexcept;
30
31 private:
32         Program prog;
33
34         GLuint m_handle;
35         GLuint mv_handle;
36         GLuint mvp_handle;
37         GLuint sampler_handle;
38         GLuint normal_handle;
39
40 };
41
42 }
43 }
44
45 #endif