33 lines
1.0 KiB
C++
33 lines
1.0 KiB
C++
#include"VKPipelineLayout.h"
|
|
#include"VKDescriptorSetLayout.h"
|
|
|
|
VK_NAMESPACE_BEGIN
|
|
PipelineLayout::~PipelineLayout()
|
|
{
|
|
if(layout)
|
|
vkDestroyPipelineLayout(device,layout,nullptr);
|
|
}
|
|
|
|
PipelineLayout *CreatePipelineLayout(VkDevice dev,const DescriptorSetLayout *dsl)
|
|
{
|
|
if(!dsl)return(nullptr);
|
|
|
|
if(dsl->GetCount()<=0)return(nullptr);
|
|
|
|
VkPipelineLayoutCreateInfo pPipelineLayoutCreateInfo = {};
|
|
pPipelineLayoutCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
|
|
pPipelineLayoutCreateInfo.pNext = nullptr;
|
|
pPipelineLayoutCreateInfo.pushConstantRangeCount = 0;
|
|
pPipelineLayoutCreateInfo.pPushConstantRanges = nullptr;
|
|
pPipelineLayoutCreateInfo.setLayoutCount = dsl->GetCount();
|
|
pPipelineLayoutCreateInfo.pSetLayouts = dsl->GetData();
|
|
|
|
VkPipelineLayout pipeline_layout;
|
|
|
|
if(vkCreatePipelineLayout(dev, &pPipelineLayoutCreateInfo, nullptr, &pipeline_layout)!=VK_SUCCESS)
|
|
return(nullptr);
|
|
|
|
return(new PipelineLayout(dev,pipeline_layout));
|
|
}
|
|
VK_NAMESPACE_END
|