15 #include <vsg/state/Descriptor.h>
16 #include <vsg/state/DescriptorSetLayout.h>
33 Descriptors descriptors;
37 template<
class N,
class V>
38 static void t_traverse(N& ds, V& visitor)
40 if (ds.setLayout) ds.setLayout->accept(visitor);
41 for (
auto& descriptor : ds.descriptors) descriptor->accept(visitor);
44 void traverse(
Visitor& visitor)
override { t_traverse(*
this, visitor); }
45 void traverse(ConstVisitor& visitor)
const override { t_traverse(*
this, visitor); }
47 void read(Input& input)
override;
48 void write(Output& output)
const override;
51 void compile(Context& context);
54 void release(uint32_t deviceID);
58 VkDescriptorSet
vk(uint32_t deviceID)
const;
69 void assign(
Context& context,
const Descriptors& descriptors);
71 VkDescriptorSet _descriptorSet;
92 using DescriptorSets = std::vector<ref_ptr<DescriptorSet>>;
DescriptorPool encapsulates management of VkDescriptorPool.
Definition: DescriptorPool.h:22
DescriptorSetLayout encapsulates VkDescriptorSetLayout and VkDescriptorSetLayoutCreateInfo settings u...
Definition: DescriptorSetLayout.h:28
Definition: DescriptorSet.h:65
DescriptorSet encapsulates VkDescriptorSet and VkDescriptorSetAllocateInfo settings used to describe ...
Definition: DescriptorSet.h:26
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:32
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,...
Definition: Visitor.h:147
vk_buffer that manages a single logical device supported.
Definition: vk_buffer.h:28