15#include <vsg/vk/Device.h>
16#include <vsg/vk/vk_buffer.h>
23 using DescriptorSetLayoutBindings = std::vector<VkDescriptorSetLayoutBinding>;
24 using DescriptorPoolSizes = std::vector<VkDescriptorPoolSize>;
31 explicit DescriptorSetLayout(
const DescriptorSetLayoutBindings& descriptorSetLayoutBindings);
34 virtual VkDescriptorSetLayout
vk(uint32_t deviceID)
const {
return _implementation[deviceID]->_descriptorSetLayout; }
43 virtual void compile(
Context& context);
46 void release(uint32_t deviceID) { _implementation[deviceID] = {}; }
47 void release() { _implementation.clear(); }
52 void read(
Input& input)
override;
53 void write(
Output& output)
const override;
65 VkDescriptorSetLayout _descriptorSetLayout;
72 using DescriptorSetLayouts = std::vector<vsg::ref_ptr<vsg::DescriptorSetLayout>>;
DescriptorSetLayout encapsulates VkDescriptorSetLayout and VkDescriptorSetLayoutCreateInfo settings u...
Definition DescriptorSetLayout.h:28
void getDescriptorPoolSizes(DescriptorPoolSizes &descriptorPoolSizes)
map the descriptor bindings to the descriptor pool sizes that will be required to represent them.
virtual VkDescriptorSetLayout vk(uint32_t deviceID) const
Vulkan VkDescriptorSetLayout handle.
Definition DescriptorSetLayout.h:34
DescriptorSetLayoutBindings bindings
VkDescriptorSetLayoutCreateInfo settings.
Definition DescriptorSetLayout.h:37
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified duri...
Definition Device.h:37
Definition DescriptorSetLayout.h:59
vk_buffer that manages a single logical device supported.
Definition vk_buffer.h:28