sandbox
Loading...
Searching...
No Matches
separate_image2d_array.hpp
1#ifndef LIBSBX_GRAPHICS_IMAGES_SEPARATE_IMAGE2D_ARRAY_HPP_
2#define LIBSBX_GRAPHICS_IMAGES_SEPARATE_IMAGE2D_ARRAY_HPP_
3
4#include <vector>
5#include <unordered_map>
6
7#include <libsbx/graphics/resource_storage.hpp>
8
9#include <libsbx/graphics/descriptor/descriptor.hpp>
10
11#include <libsbx/graphics/images/image2d.hpp>
12
13namespace sbx::graphics {
14
16
17public:
18
19 inline static constexpr auto max_size = std::uint32_t{64u};
20
22
24
26
27 static auto create_descriptor_set_layout_binding(std::uint32_t binding, VkDescriptorType descriptor_type, VkShaderStageFlags shader_stage_flags) noexcept -> VkDescriptorSetLayoutBinding;
28
29 auto write_descriptor_set(std::uint32_t binding, VkDescriptorType descriptor_type) const noexcept -> graphics::write_descriptor_set override;
30
31 auto push_back(const handle_type& handle) -> std::uint32_t;
32
33 auto clear() -> void;
34
35private:
36
37 std::vector<handle_type> _image_ids;
38 std::unordered_map<handle_type, std::uint32_t> _id_to_indices;
39
40}; // class separate_image2d_array
41
42} // namespace sbx::graphics
43
44#endif // LIBSBX_GRAPHICS_IMAGES_SEPARATE_IMAGE2D_ARRAY_HPP_
Definition: descriptor.hpp:37
Definition: resource_storage.hpp:17
Definition: separate_image2d_array.hpp:15
Definition: descriptor.hpp:12