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/Map.h>
#include<hgl/type/String.h> #include<hgl/type/String.h>
#include<hgl/graph/vulkan/ShaderModuleMap.h> #include<hgl/graph/vulkan/ShaderModuleMap.h>
#include<hgl/graph/vulkan/VKVertexAttributeBinding.h>
VK_NAMESPACE_BEGIN VK_NAMESPACE_BEGIN
class DescriptorSetLayoutCreater; class DescriptorSetLayoutCreater;
@ -54,7 +55,12 @@ public:
const VkPipelineLayout GetPipelineLayout ()const; const VkPipelineLayout GetPipelineLayout ()const;
DescriptorSets * CreateDescriptorSets ()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();}
public:
Renderable * CreateRenderable (const uint32_t draw_count=0); Renderable * CreateRenderable (const uint32_t draw_count=0);
MaterialInstance * CreateInstance (); MaterialInstance * CreateInstance ();

View File

@ -29,7 +29,9 @@ public:
bool SetFormat (const uint binding,const VkFormat & format); bool SetFormat (const uint binding,const VkFormat & format);
bool SetOffset (const uint binding,const uint32_t offset); 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 };//class VertexAttributeBinding
VK_NAMESPACE_END VK_NAMESPACE_END
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE #endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIBUTE_BINDING_INCLUDE

View File

@ -155,11 +155,6 @@ DescriptorSets *Material::CreateDescriptorSets()const
return dsl_creater->Create(); return dsl_creater->Create();
} }
void Material::Write(VkPipelineVertexInputStateCreateInfo &vis)const
{
return vab->Write(vis);
}
Renderable *Material::CreateRenderable(const uint32_t draw_count) Renderable *Material::CreateRenderable(const uint32_t draw_count)
{ {
return(new Renderable(vertex_sm,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; VkPipeline graphicsPipeline;
data->InitVertexInputState(material->GetStageCount(),material->GetStages()); data->InitVertexInputState( material->GetStageCount(),
material->GetStages(),
material->Write(data->vis_create_info); material->GetVertexAttrCount(),
material->GetVertexBindingList(),
material->GetVertexAttributeList());
data->InitViewportState(rt->GetExtent()); data->InitViewportState(rt->GetExtent());

View File

@ -58,13 +58,4 @@ bool VertexAttributeBinding::SetOffset(const uint index,const uint32_t offset)
return(true); 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 VK_NAMESPACE_END