将顶点输入流最终格式绑定放在MaterialInstance中,并改动相关类。

This commit is contained in:
2021-11-29 20:12:10 +08:00
parent 424b4b8a6f
commit f55186a9c8
23 changed files with 202 additions and 195 deletions

View File

@@ -47,8 +47,6 @@ public:
const VkPipelineShaderStageCreateInfo * GetCreateInfo ()const{return stage_create_info;}
};//class ShaderModule
class VertexAttributeBinding;
/**
* 顶点Shader模块<br>
* 由于顶点shader在最前方执行所以它比其它shader多了VertexInput的数据
@@ -56,12 +54,13 @@ class VertexAttributeBinding;
class VertexShaderModule:public ShaderModule
{
uint32_t attr_count;
VkVertexInputBindingDescription *binding_list;
VkVertexInputAttributeDescription *attribute_list;
VertexAttribType *type_list;
const AnsiString **name_list;
ShaderStage **ssi_list;
private:
Sets<VertexAttributeBinding *> vab_sets;
Sets<VAB *> vab_sets;
public:
@@ -76,17 +75,17 @@ public:
const uint GetStageInputCount () const{return shader_resource->GetStageInputCount();}
const ShaderStageList & GetStageInputs () const{return shader_resource->GetStageInputs();}
const uint32_t GetAttrCount()const{return attr_count;}
//const uint32_t GetAttrCount()const{return attr_count;}
const VkVertexInputBindingDescription * GetDescList ()const{return binding_list;}
const VkVertexInputAttributeDescription * GetAttrList ()const{return attribute_list;}
//const VkVertexInputBindingDescription * GetDescList ()const{return binding_list;}
//const VkVertexInputAttributeDescription * GetAttrList ()const{return attribute_list;}
const VkVertexInputBindingDescription * GetDesc (const uint32_t index)const{return (index>=attr_count?nullptr:binding_list+index);}
const VkVertexInputAttributeDescription * GetAttr (const uint32_t index)const{return (index>=attr_count?nullptr:attribute_list+index);}
//const VkVertexInputBindingDescription * GetDesc (const uint32_t index)const{return (index>=attr_count?nullptr:binding_list+index);}
//const VkVertexInputAttributeDescription * GetAttr (const uint32_t index)const{return (index>=attr_count?nullptr:attribute_list+index);}
public:
VAB * CreateVAB();
VAB * CreateVAB(const VABConfigInfo *format_map=nullptr);
bool Release(VAB *);
const uint32_t GetInstanceCount()const{return vab_sets.GetCount();}
};//class VertexShaderModule:public ShaderModule