15#include <vsg/state/Descriptor.h>
16#include <vsg/state/DescriptorSetLayout.h>
34 Descriptors descriptors;
40 void release(uint32_t deviceID);
44 VkDescriptorSet
vk(uint32_t deviceID)
const;
50 template<
class N,
class V>
51 static void t_traverse(N& ds, V& visitor)
53 if (ds.setLayout) ds.setLayout->accept(visitor);
54 for (
auto& descriptor : ds.descriptors) descriptor->accept(visitor);
57 void traverse(
Visitor& visitor)
override { t_traverse(*
this, visitor); }
58 void traverse(ConstVisitor& visitor)
const override { t_traverse(*
this, visitor); }
60 void read(Input& input)
override;
61 void write(Output& output)
const override;
72 void assign(
Context& context,
const Descriptors& descriptors);
74 VkDescriptorSet _descriptorSet;
95 using DescriptorSets = std::vector<ref_ptr<DescriptorSet>>;
DescriptorPool encapsulates management of VkDescriptorPool.
Definition DescriptorPool.h:22
Definition DescriptorSet.h:68
DescriptorSet encapsulates VkDescriptorSet and VkDescriptorSetAllocateInfo settings used to describe ...
Definition DescriptorSet.h:26
ref_ptr< Object > clone(const CopyOp ©op={}) const override
Definition DescriptorSet.h:47
VkDescriptorSet vk(uint32_t deviceID) const
get the Vulkan handle to the descriptor set for specified device
ref_ptr< DescriptorSetLayout > setLayout
VkDescriptorSetAllocateInfo settings.
Definition DescriptorSet.h:33
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,...
DescriptorSetLayout encapsulates VkDescriptorSetLayout and VkDescriptorSetLayoutCreateInfo settings u...
Definition DescriptorSetLayout.h:28
vk_buffer that manages a single logical device supported.
Definition vk_buffer.h:28