20 #ifndef ANTKEEPER_GL_IMAGE_VIEW_HPP
21 #define ANTKEEPER_GL_IMAGE_VIEW_HPP
45 [[nodiscard]]
inline constexpr
const std::shared_ptr<image>&
get_image() const noexcept
59 return m_first_mip_level;
65 return m_mip_level_count;
71 return m_first_array_layer;
77 return m_array_layer_count;
83 return m_dimensionality;
87 [[nodiscard]]
inline constexpr
bool is_1d() const noexcept
89 return m_dimensionality == 1;
93 [[nodiscard]]
inline constexpr
bool is_2d() const noexcept
95 return m_dimensionality == 2;
99 [[nodiscard]]
inline constexpr
bool is_3d() const noexcept
101 return m_dimensionality == 3;
105 [[nodiscard]]
inline constexpr
bool is_array() const noexcept
111 [[nodiscard]]
inline constexpr
bool is_cube() const noexcept
141 std::shared_ptr<gl::image>
image,
142 std::uint8_t dimensionality,
144 std::uint32_t first_mip_level,
145 std::uint32_t mip_level_count,
146 std::uint32_t first_array_layer,
147 std::uint32_t array_layer_count,
158 unsigned int m_gl_texture_name{0};
159 std::shared_ptr<image> m_image;
160 std::uint8_t m_dimensionality{0};
162 std::uint32_t m_first_mip_level{0};
163 std::uint32_t m_mip_level_count{0};
164 std::uint32_t m_first_array_layer{0};
165 std::uint32_t m_array_layer_count{0};
166 std::uint8_t m_flags{0};
178 std::shared_ptr<gl::image>
image,
180 std::uint32_t first_mip_level = 0,
181 std::uint32_t mip_level_count = 1,
182 std::uint32_t first_array_layer = 0
195 std::shared_ptr<gl::image>
image,
197 std::uint32_t first_mip_level = 0,
198 std::uint32_t mip_level_count = 1,
199 std::uint32_t first_array_layer = 0,
200 std::uint32_t array_layer_count = 1
213 std::shared_ptr<gl::image>
image,
215 std::uint32_t first_mip_level = 0,
216 std::uint32_t mip_level_count = 1,
217 std::uint32_t first_array_layer = 0
230 std::shared_ptr<gl::image>
image,
232 std::uint32_t first_mip_level = 0,
233 std::uint32_t mip_level_count = 1,
234 std::uint32_t first_array_layer = 0,
235 std::uint32_t array_layer_count = 1
248 std::shared_ptr<gl::image>
image,
250 std::uint32_t first_mip_level = 0,
251 std::uint32_t mip_level_count = 1
264 std::shared_ptr<gl::image>
image,
266 std::uint32_t first_mip_level = 0,
267 std::uint32_t mip_level_count = 1,
268 std::uint32_t first_array_layer = 0
281 std::shared_ptr<gl::image>
image,
283 std::uint32_t first_mip_level = 0,
284 std::uint32_t mip_level_count = 1,
285 std::uint32_t first_array_layer = 0,
286 std::uint32_t array_layer_count = 6
1-dimensional texture shader variable implementation using OpenGL.
2-dimensional texture shader variable implementation using OpenGL.
3-dimensional texture shader variable implementation using OpenGL.
Cube texture shader variable implementation using OpenGL.
image_view_1d_array(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1, std::uint32_t first_array_layer=0, std::uint32_t array_layer_count=1)
image_view_1d(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1, std::uint32_t first_array_layer=0)
image_view_2d_array(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1, std::uint32_t first_array_layer=0, std::uint32_t array_layer_count=1)
image_view_2d(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1, std::uint32_t first_array_layer=0)
image_view_3d(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1)
image_view_cube_array(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1, std::uint32_t first_array_layer=0, std::uint32_t array_layer_count=6)
image_view_cube(std::shared_ptr< gl::image > image, gl::format format=gl::format::undefined, std::uint32_t first_mip_level=0, std::uint32_t mip_level_count=1, std::uint32_t first_array_layer=0)
constexpr bool is_1d() const noexcept
Returns true if the image view is 1D, false otherwise.
constexpr bool is_cube() const noexcept
Returns true if the image view is a cube map view, false otherwise.
constexpr std::uint32_t get_first_array_layer() const noexcept
Returns the first array layer accessible to the view.
image_view(image_view &&)=delete
virtual ~image_view()=0
Destructs an image view.
constexpr std::uint8_t get_dimensionality() const noexcept
Returns the dimensionality of the image view.
constexpr std::uint32_t get_mip_level_count() const noexcept
Returns the number of mipmap levels accessible to the view.
image_view(const image_view &)=delete
constexpr bool is_array() const noexcept
Returns true if the image view is an array view, false otherwise.
constexpr format get_format() const noexcept
Returns the format and type used to interpret texel blocks of the image.
constexpr bool is_2d() const noexcept
Returns true if the image view is 2D, false otherwise.
constexpr const std::shared_ptr< image > & get_image() const noexcept
Returns the image on which the view was created.
constexpr std::uint32_t get_array_layer_count() const noexcept
Returns the number of array layers accessible to the view.
image_view & operator=(const image_view &)=delete
constexpr std::uint32_t get_first_mip_level() const noexcept
Returns the first mipmap level accessible to the view.
image_view & operator=(image_view &&)=delete
constexpr bool is_3d() const noexcept
Returns true if the image view is 3D, false otherwise.
Graphics library interface.
format
Image and vertex formats.