Program Listing for File descriptor.hpp¶
↰ Return to documentation for file (inexor/vulkan-renderer/wrapper/descriptor.hpp
)
#pragma once
#include <volk.h>
#include <string>
#include <vector>
namespace inexor::vulkan_renderer::wrapper {
// Forward declaration
class Device;
class ResourceDescriptor {
std::string m_name;
const Device &m_device;
VkDescriptorPool m_descriptor_pool{VK_NULL_HANDLE};
VkDescriptorSetLayout m_descriptor_set_layout{VK_NULL_HANDLE};
std::vector<VkDescriptorSetLayoutBinding> m_descriptor_set_layout_bindings;
std::vector<VkWriteDescriptorSet> m_write_descriptor_sets;
std::vector<VkDescriptorSet> m_descriptor_sets;
public:
ResourceDescriptor(const Device &device, std::vector<VkDescriptorSetLayoutBinding> &&layout_bindings,
std::vector<VkWriteDescriptorSet> &&descriptor_writes, std::string &&name);
ResourceDescriptor(const ResourceDescriptor &) = delete;
ResourceDescriptor(ResourceDescriptor &&) noexcept;
~ResourceDescriptor();
ResourceDescriptor &operator=(const ResourceDescriptor &) = delete;
ResourceDescriptor &operator=(ResourceDescriptor &&) = delete;
[[nodiscard]] const auto &descriptor_sets() const {
return m_descriptor_sets;
}
[[nodiscard]] auto descriptor_set_layout() const {
return m_descriptor_set_layout;
}
[[nodiscard]] const auto &descriptor_set_layout_bindings() const {
return m_descriptor_set_layout_bindings;
}
};
} // namespace inexor::vulkan_renderer::wrapper