galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
Texture.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_GRAPHICS_GL_TEXTURE_HPP_
9#define GALAXY_GRAPHICS_GL_TEXTURE_HPP_
10
11#include <span>
12#include <string_view>
13
15
16namespace galaxy
17{
18 namespace graphics
19 {
20 class TextureView;
21
25 class Texture
26 {
27 public:
32
37
41 virtual ~Texture();
42
54 [[nodiscard]]
55 TextureView make_view(const unsigned int minlevel = 0, const unsigned int numlevels = 1, const unsigned int minlayer = 0, const unsigned int numlayers = 1);
56
60 virtual void bind() = 0;
61
65 virtual void unbind() = 0;
66
72 void mode(const TextureMode mode);
73
79 [[nodiscard]]
80 TextureMode mode() const;
81
87 void filter(const TextureFilter filter);
88
94 [[nodiscard]]
95 TextureFilter filter() const;
96
102 void anisotropy(const int level);
103
109 [[nodiscard]]
110 int anisotropy() const;
111
119 [[nodiscard]]
120 float width() const;
121
129 [[nodiscard]]
130 float height() const;
131
137 [[nodiscard]]
138 unsigned int id() const;
139
140 protected:
144 Texture();
145
146 private:
150 Texture(const Texture&) = delete;
151
155 Texture& operator=(const Texture&) = delete;
156
157 protected:
161 unsigned int m_id;
162
167
172
177
182
187 };
188 } // namespace graphics
189} // namespace galaxy
190
191#endif
OpenGL 2D TextureView.
OpenGL 2D Texture.
Definition Texture.hpp:26
int m_height
Cached height.
Definition Texture.hpp:171
int anisotropy() const
Get current anisotropy level.
Definition Texture.cpp:152
virtual ~Texture()
Destructor.
Definition Texture.cpp:71
float width() const
Get texture width.
Definition Texture.cpp:157
Texture(const Texture &)=delete
Copy constructor.
unsigned int id() const
Gets opengl handle.
Definition Texture.cpp:167
unsigned int m_id
OpenGL id.
Definition Texture.hpp:161
Texture & operator=(Texture &&)
Move assignment operator.
Definition Texture.cpp:49
int m_width
Cached width.
Definition Texture.hpp:166
float height() const
Get texture height.
Definition Texture.cpp:162
virtual void bind()=0
Activate context.
virtual void unbind()=0
Deactivate context.
TextureMode m_mode
Mode.
Definition Texture.hpp:176
Texture & operator=(const Texture &)=delete
Copy assignment operator.
TextureMode mode() const
Get texture mode.
Definition Texture.cpp:97
TextureView make_view(const unsigned int minlevel=0, const unsigned int numlevels=1, const unsigned int minlayer=0, const unsigned int numlayers=1)
Create a texture view.
Definition Texture.cpp:79
TextureFilter m_filter
Filter.
Definition Texture.hpp:181
Texture()
Constructor.
Definition Texture.cpp:22
TextureFilter filter() const
Get texture filter.
Definition Texture.cpp:120
int m_anisotropy
Ansiotrophy level.
Definition Texture.hpp:186
TextureFilter
Mipmap filtering.
Definition Enums.hpp:94
TextureMode
Texture wrapping modes.
Definition Enums.hpp:68
Animated.cpp galaxy.
Definition Animated.cpp:16