sandbox
Loading...
Searching...
No Matches
descriptor.hpp
1#ifndef LIBSBX_GRAPHICS_DESCRIPTOR_DESCRIPTOR_HPP_
2#define LIBSBX_GRAPHICS_DESCRIPTOR_DESCRIPTOR_HPP_
3
4#include <variant>
5#include <memory>
6#include <cinttypes>
7
8#include <vulkan/vulkan.hpp>
9
10namespace sbx::graphics {
11
13
14public:
15
16 write_descriptor_set(const VkWriteDescriptorSet& write_descriptor_set, const std::vector<VkDescriptorImageInfo>& descriptor_infos) noexcept;
17
18 write_descriptor_set(const VkWriteDescriptorSet& write_descriptor_set, const VkDescriptorBufferInfo& descriptor_info) noexcept;
19
20 auto handle() const noexcept -> const VkWriteDescriptorSet&;
21
22 operator const VkWriteDescriptorSet&() const noexcept;
23
24private:
25
26 VkWriteDescriptorSet _write_descriptor_set;
27 // std::variant<VkDescriptorImageInfo, VkDescriptorBufferInfo> _descriptor_info;
28 std::vector<VkDescriptorImageInfo> _descriptor_image_infos;
29 std::unique_ptr<VkDescriptorBufferInfo> _descriptor_buffer_info;
30
31}; // class write_descriptor_set
32
34
35public:
36
37 descriptor() = default;
38
39 virtual ~descriptor() = default;
40
41 virtual auto write_descriptor_set(std::uint32_t binding, VkDescriptorType descriptor_type) const noexcept -> graphics::write_descriptor_set = 0;
42
43}; // class descriptor
44
45} // namespace sbx::graphics
46
47#endif // LIBSBX_GRAPHICS_DESCRIPTOR_DESCRIPTOR_HPP_
Definition: descriptor.hpp:33
Definition: descriptor.hpp:12