15 #include <vsg/state/DescriptorSetLayout.h>
16 #include <vsg/vk/vk_buffer.h>
23 using PushConstantRanges = std::vector<VkPushConstantRange>;
30 PipelineLayout(
const DescriptorSetLayouts& in_setLayouts,
const PushConstantRanges& in_pushConstantRanges, VkPipelineLayoutCreateFlags in_flags = 0);
33 VkPipelineLayoutCreateFlags flags = 0;
34 DescriptorSetLayouts setLayouts;
35 PushConstantRanges pushConstantRanges;
38 VkPipelineLayout
vk(uint32_t deviceID)
const {
return _implementation[deviceID]->_pipelineLayout; }
42 void read(
Input& input)
override;
43 void write(
Output& output)
const override;
47 void release(uint32_t deviceID) { _implementation[deviceID] = {}; }
48 void release() { _implementation.clear(); }
51 virtual ~PipelineLayout();
55 Implementation(
Device* device,
const DescriptorSetLayouts& descriptorSetLayouts,
const PushConstantRanges& pushConstantRanges, VkPipelineLayoutCreateFlags flags = 0);
59 VkPipelineLayout _pipelineLayout;
Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified duri...
Definition: Device.h:37
PipelineLayout encapsulates VkPipelineLayout and the VkPipelineLayoutCreateInfo settings used to set ...
Definition: PipelineLayout.h:27
VkPipelineLayout vk(uint32_t deviceID) const
Vulkan VkPipelineLayout handle.
Definition: PipelineLayout.h:38
int compare(const Object &rhs) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
Definition: PipelineLayout.h:54
vk_buffer that manages a single logical device supported.
Definition: vk_buffer.h:28