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
24 operator bool() const noexcept {
25 return _write_descriptor_set.descriptorCount > 0u;
26 }
27
28private:
29
30 VkWriteDescriptorSet _write_descriptor_set;
31 // std::variant<VkDescriptorImageInfo, VkDescriptorBufferInfo> _descriptor_info;
32 std::vector<VkDescriptorImageInfo> _descriptor_image_infos;
33 std::unique_ptr<VkDescriptorBufferInfo> _descriptor_buffer_info;
34
35}; // class write_descriptor_set
36
38
39public:
40
41 descriptor() = default;
42
43 virtual ~descriptor() = default;
44
45 virtual auto write_descriptor_set(std::uint32_t binding, VkDescriptorType descriptor_type) const noexcept -> graphics::write_descriptor_set = 0;
46
47}; // class descriptor
48
49} // namespace sbx::graphics
50
51#endif // LIBSBX_GRAPHICS_DESCRIPTOR_DESCRIPTOR_HPP_
Definition: descriptor.hpp:37
Definition: descriptor.hpp:12