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; }
44 void read(
Input& input)
override;
45 void write(
Output& output)
const override;
48 virtual void compile(
Context& context);
51 void release(uint32_t deviceID) { _implementation[deviceID] = {}; }
52 void release() { _implementation.clear(); }
55 virtual ~DescriptorSetLayout();
64 VkDescriptorSetLayout _descriptorSetLayout;
71 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:58
vk_buffer that manages a single logical device supported.
Definition: vk_buffer.h:28