6#include <vulkan/vulkan.h>
15 ::std::vector<VkDescriptorSetLayoutBinding>
bindings;
19 VkDescriptorSetLayout
build(VkDevice device,
const VkAllocationCallbacks* callbacks, VkShaderStageFlags shaderStages,
void* pNext =
nullptr, VkDescriptorSetLayoutCreateFlags flags = 0);
26 ::std::vector<VkWriteDescriptorSet>
writes;
28 void write_image(
int binding, VkImageView image, VkSampler sampler, VkImageLayout layout, VkDescriptorType type);
29 void write_buffer(
int binding, VkBuffer buffer,
size_t size,
size_t offset, VkDescriptorType type);
46 void init_pool(VkDevice device, uint32_t maxSets, ::std::span<PoolSizeRatio> poolRatios,
const VkAllocationCallbacks*
callbacks);
50 VkDescriptorSet
allocate(VkDevice device, VkDescriptorSetLayout layout);
62 void init(VkDevice device, uint32_t initialSets, ::std::span<PoolSizeRatio> poolRatios,
const VkAllocationCallbacks* callbacks);
66 VkDescriptorSet
allocate(VkDevice device, VkDescriptorSetLayout layout,
void* pNext =
nullptr);
69 VkDescriptorPool get_pool(VkDevice device);
70 VkDescriptorPool create_pool(VkDevice device, uint32_t setCount, ::std::span<PoolSizeRatio> poolRatios);
72 ::std::vector<PoolSizeRatio> ratios;
73 ::std::vector<VkDescriptorPool> fullPools;
74 ::std::vector<VkDescriptorPool> readyPools;
76 const VkAllocationCallbacks* callbacks =
nullptr;
Definition vk_defaults.h:4
Definition vk_descriptors.h:57
float ratio
Definition vk_descriptors.h:59
VkDescriptorType type
Definition vk_descriptors.h:58
Definition vk_descriptors.h:54
void clear_pools(VkDevice device)
void init(VkDevice device, uint32_t initialSets, ::std::span< PoolSizeRatio > poolRatios, const VkAllocationCallbacks *callbacks)
VkDescriptorSet allocate(VkDevice device, VkDescriptorSetLayout layout, void *pNext=nullptr)
void destroy_pools(VkDevice device)
Definition vk_descriptors.h:38
float ratio
Definition vk_descriptors.h:40
VkDescriptorType type
Definition vk_descriptors.h:39
Definition vk_descriptors.h:36
const VkAllocationCallbacks * callbacks
Definition vk_descriptors.h:44
VkDescriptorPool pool
Definition vk_descriptors.h:43
VkDescriptorSet allocate(VkDevice device, VkDescriptorSetLayout layout)
void destroy_pool(VkDevice device)
void clear_descriptors(VkDevice device)
void init_pool(VkDevice device, uint32_t maxSets, ::std::span< PoolSizeRatio > poolRatios, const VkAllocationCallbacks *callbacks)
Definition vk_descriptors.h:14
void add_binding(uint32_t binding, VkDescriptorType type)
::std::vector< VkDescriptorSetLayoutBinding > bindings
Definition vk_descriptors.h:15
VkDescriptorSetLayout build(VkDevice device, const VkAllocationCallbacks *callbacks, VkShaderStageFlags shaderStages, void *pNext=nullptr, VkDescriptorSetLayoutCreateFlags flags=0)
Definition vk_descriptors.h:23
::std::vector< VkWriteDescriptorSet > writes
Definition vk_descriptors.h:26
void write_buffer(int binding, VkBuffer buffer, size_t size, size_t offset, VkDescriptorType type)
::std::deque< VkDescriptorBufferInfo > bufferInfos
Definition vk_descriptors.h:25
void write_image(int binding, VkImageView image, VkSampler sampler, VkImageLayout layout, VkDescriptorType type)
void update_set(VkDevice device, VkDescriptorSet set)
::std::deque< VkDescriptorImageInfo > imageInfos
Definition vk_descriptors.h:24