12 VkDescriptorType type;
13 VkShaderStageFlags stage;
25 MANDRILL_API LayoutDesc(uint32_t set, uint32_t binding, VkDescriptorType type, VkShaderStageFlags stage,
26 uint32_t arrayCount = 0)
27 : set(set), binding(binding), type(type), stage(stage), arrayCount(arrayCount)
38 MANDRILL_NON_COPYABLE(
Layout)
47 Layout(ptr<Device> pDevice,
const std::vector<LayoutDesc>& desc, VkDescriptorSetLayoutCreateFlags flags = 0);
60 return mDescriptorSetLayouts;
69 return mPushConstantRanges;
78 mPushConstantRanges.push_back(pushConstantRange);
84 std::vector<VkDescriptorSetLayout> mDescriptorSetLayouts;
85 std::vector<VkPushConstantRange> mPushConstantRanges;
Layout class that abstracts the handling of descriptor set layouts and push constants in Vulkan.
Definition Layout.h:36
MANDRILL_API void addPushConstantRange(VkPushConstantRange pushConstantRange)
Add a new push constant range.
Definition Layout.h:76
MANDRILL_API const std::vector< VkPushConstantRange > & getPushConstantRanges() const
Get the push constant ranges.
Definition Layout.h:67
MANDRILL_API const std::vector< VkDescriptorSetLayout > & getDescriptorSetLayouts() const
Get the descriptor set layouts.
Definition Layout.h:58
MANDRILL_API ~Layout()
Destructor for layout.
Definition Layout.cpp:47