]> git.localhorst.tv Git - gong.git/blob - src/graphics/CubeMap.hpp
code, assets, and other stuff stolen from blank
[gong.git] / src / graphics / CubeMap.hpp
1 #ifndef GONG_GRAPHICS_CUBEMAP_HPP_
2 #define GONG_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 gong {
13 namespace graphics {
14
15 class CubeMap
16 : public TextureBase<GL_TEXTURE_CUBE_MAP> {
17
18 public:
19         enum Face {
20                 RIGHT = GL_TEXTURE_CUBE_MAP_POSITIVE_X,
21                 LEFT = GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
22                 TOP = GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
23                 BOTTOM = GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
24                 BACK = GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
25                 FRONT = GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
26         };
27
28 public:
29         CubeMap();
30         ~CubeMap();
31
32         CubeMap(CubeMap &&) noexcept;
33         CubeMap &operator =(CubeMap &&) noexcept;
34
35         CubeMap(const CubeMap &) = delete;
36         CubeMap &operator =(const CubeMap &) = delete;
37
38 public:
39         void Data(Face, const SDL_Surface &);
40         void Data(Face, GLsizei w, GLsizei h, const Format &, GLvoid *data) noexcept;
41
42 };
43
44 }
45 }
46
47 #endif