10#include <unordered_map>
31 Builder &
addBinding(uint32_t binding, VkDescriptorType descriptorType, VkShaderStageFlags stageFlags, uint32_t count = 1);
32 std::unique_ptr<DescriptorSetLayout>
build()
const {
return std::make_unique<DescriptorSetLayout>(
m_device,
m_bindings); }
36 std::unordered_map<uint32_t, VkDescriptorSetLayoutBinding>
m_bindings;
50 std::unordered_map<uint32_t, VkDescriptorSetLayoutBinding>
m_bindings;
84 DescriptorPool(
Device &device, uint32_t maxSets, VkDescriptorPoolCreateFlags poolFlags,
const std::vector<VkDescriptorPoolSize> &poolSizes);
89 bool allocateDescriptor(VkDescriptorSetLayout descriptorSetLayout, VkDescriptorSet &descriptor)
const;
118 bool build(VkDescriptorSet &set);
119 void overwrite(
const VkDescriptorSet &set);
This file contains the Device class.
std::vector< VkDescriptorPoolSize > m_poolSizes
Builder & setPoolFlags(VkDescriptorPoolCreateFlags flags)
std::unique_ptr< DescriptorPool > build() const
Builder & addPoolSize(VkDescriptorType descriptorType, uint32_t count)
Builder & setMaxSets(uint32_t count)
VkDescriptorPoolCreateFlags m_poolFlags
Class for descriptor pool.
VkDescriptorPool m_descriptorPool
DescriptorPool(Device &device, uint32_t maxSets, VkDescriptorPoolCreateFlags poolFlags, const std::vector< VkDescriptorPoolSize > &poolSizes)
bool allocateDescriptor(VkDescriptorSetLayout descriptorSetLayout, VkDescriptorSet &descriptor) const
DescriptorPool(const DescriptorPool &)=delete
DescriptorPool & operator=(const DescriptorPool &)=delete
void freeDescriptors(const std::vector< VkDescriptorSet > &descriptors) const
std::unordered_map< uint32_t, VkDescriptorSetLayoutBinding > m_bindings
Builder & addBinding(uint32_t binding, VkDescriptorType descriptorType, VkShaderStageFlags stageFlags, uint32_t count=1)
std::unique_ptr< DescriptorSetLayout > build() const
Class for descriptor set layout.
DescriptorSetLayout(const DescriptorSetLayout &)=delete
std::unordered_map< uint32_t, VkDescriptorSetLayoutBinding > m_bindings
DescriptorSetLayout & operator=(const DescriptorSetLayout &)=delete
DescriptorSetLayout(Device &device, const std::unordered_map< uint32_t, VkDescriptorSetLayoutBinding > &bindings)
VkDescriptorSetLayout m_descriptorSetLayout
VkDescriptorSetLayout getDescriptorSetLayout() const
Class for descriptor writer.
DescriptorWriter & writeImage(uint32_t binding, const VkDescriptorImageInfo *imageInfo)
std::vector< VkWriteDescriptorSet > m_writes
DescriptorWriter & writeBuffer(uint32_t binding, const VkDescriptorBufferInfo *bufferInfo)
DescriptorSetLayout & m_setLayout
DescriptorWriter(DescriptorSetLayout &setLayout, DescriptorPool &pool)
void overwrite(const VkDescriptorSet &set)
bool build(VkDescriptorSet &set)