rewrite PipelineData::InitVertexInputState

This commit is contained in:
hyzboy 2020-09-20 03:15:50 +08:00
parent 2b9152d602
commit bb158d6105
6 changed files with 22 additions and 26 deletions

@ -1 +1 @@
Subproject commit fe9dc360c87179f8a8293f7f78127f366b7f191b
Subproject commit cf0b4cfb35fe5385fd8a887a0aabbdf115abfe74

View File

@ -5,6 +5,7 @@
#include<hgl/type/Map.h>
#include<hgl/type/String.h>
#include<hgl/graph/vulkan/ShaderModuleMap.h>
#include<hgl/graph/vulkan/VKVertexAttributeBinding.h>
VK_NAMESPACE_BEGIN
class DescriptorSetLayoutCreater;
@ -48,16 +49,21 @@ public:
GET_BO_BINDING(InputAttachment, INPUT_ATTACHMENT)
#undef GET_BO_BINDING
const uint32_t GetStageCount ()const{return shader_stage_list->GetCount();}
const VkPipelineShaderStageCreateInfo * GetStages ()const{return shader_stage_list->GetData();}
const uint32_t GetStageCount ()const{return shader_stage_list->GetCount();}
const VkPipelineShaderStageCreateInfo * GetStages ()const{return shader_stage_list->GetData();}
const VkPipelineLayout GetPipelineLayout ()const;
DescriptorSets * CreateDescriptorSets()const;
const VkPipelineLayout GetPipelineLayout ()const;
DescriptorSets * CreateDescriptorSets ()const;
void Write(VkPipelineVertexInputStateCreateInfo &vis)const;
const VertexAttributeBinding * GetVAB ()const{return vab;}
const uint32_t GetVertexAttrCount ()const{return vab->GetVertexAttrCount();}
const VkVertexInputBindingDescription * GetVertexBindingList ()const{return vab->GetVertexBindingList();}
const VkVertexInputAttributeDescription * GetVertexAttributeList ()const{return vab->GetVertexAttributeList();}
Renderable *CreateRenderable(const uint32_t draw_count=0);
MaterialInstance *CreateInstance();
public:
Renderable * CreateRenderable (const uint32_t draw_count=0);
MaterialInstance * CreateInstance ();
};//class Material
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_MATERIAL_INCLUDE

View File

@ -29,7 +29,9 @@ public:
bool SetFormat (const uint binding,const VkFormat & format);
bool SetOffset (const uint binding,const uint32_t offset);
void Write(VkPipelineVertexInputStateCreateInfo &vis)const;
const uint32_t GetVertexAttrCount ()const{return attr_count;}
const VkVertexInputBindingDescription * GetVertexBindingList ()const{return binding_list;}
const VkVertexInputAttributeDescription * GetVertexAttributeList ()const{return attribute_list;}
};//class VertexAttributeBinding
VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE

View File

@ -155,11 +155,6 @@ DescriptorSets *Material::CreateDescriptorSets()const
return dsl_creater->Create();
}
void Material::Write(VkPipelineVertexInputStateCreateInfo &vis)const
{
return vab->Write(vis);
}
Renderable *Material::CreateRenderable(const uint32_t draw_count)
{
return(new Renderable(vertex_sm,draw_count));

View File

@ -15,9 +15,11 @@ Pipeline *CreatePipeline(VkDevice device,VkPipelineCache pipeline_cache,Pipeline
{
VkPipeline graphicsPipeline;
data->InitVertexInputState(material->GetStageCount(),material->GetStages());
material->Write(data->vis_create_info);
data->InitVertexInputState( material->GetStageCount(),
material->GetStages(),
material->GetVertexAttrCount(),
material->GetVertexBindingList(),
material->GetVertexAttributeList());
data->InitViewportState(rt->GetExtent());

View File

@ -58,13 +58,4 @@ bool VertexAttributeBinding::SetOffset(const uint index,const uint32_t offset)
return(true);
}
void VertexAttributeBinding::Write(VkPipelineVertexInputStateCreateInfo &vis_create_info) const
{
vis_create_info.vertexBindingDescriptionCount = attr_count;
vis_create_info.pVertexBindingDescriptions = binding_list;
vis_create_info.vertexAttributeDescriptionCount = attr_count;
vis_create_info.pVertexAttributeDescriptions = attribute_list;
}
VK_NAMESPACE_END