]> git.localhorst.tv Git - blank.git/blob - src/graphics/CubeMap.hpp
sky box model & shader
[blank.git] / src / graphics / CubeMap.hpp
1 #ifndef BLANK_GRAPHICS_CUBEMAP_HPP_
2 #define BLANK_GRAPHICS_CUBEMAP_HPP_
3
4 #include "Format.hpp"
5 #include "TextureBase.hpp"
6
7 #include <GL/glew.h>
8
9 struct SDL_Surface;
10
11
12 namespace blank {
13
14 class CubeMap
15 : public TextureBase<GL_TEXTURE_CUBE_MAP> {
16
17 public:
18         enum Face {
19                 RIGHT = GL_TEXTURE_CUBE_MAP_POSITIVE_X,
20                 LEFT = GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
21                 TOP = GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
22                 BOTTOM = GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
23                 BACK = GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
24                 FRONT = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
25         };
26
27 public:
28         CubeMap();
29         ~CubeMap();
30
31         CubeMap(CubeMap &&) noexcept;
32         CubeMap &operator =(CubeMap &&) noexcept;
33
34         CubeMap(const CubeMap &) = delete;
35         CubeMap &operator =(const CubeMap &) = delete;
36
37 public:
38         void Data(Face, const SDL_Surface &) noexcept;
39         void Data(Face, GLsizei w, GLsizei h, const Format &, GLvoid *data) noexcept;
40
41 };
42
43 }
44
45 #endif