moved GetBinding functions to ShaderModuleMap from Material.
This commit is contained in:
@@ -32,31 +32,9 @@ public:
|
||||
Material(const UTF8String &name,ShaderModuleMap *smm,List<VkPipelineShaderStageCreateInfo> *,DescriptorSetLayoutCreater *dslc);
|
||||
~Material();
|
||||
|
||||
const UTF8String & GetName()const{return mtl_name;}
|
||||
const UTF8String & GetName ()const{return mtl_name;}
|
||||
|
||||
const VertexShaderModule * GetVertexShaderModule()const{return vertex_sm;}
|
||||
|
||||
const int GetBinding(VkDescriptorType,const AnsiString &)const;
|
||||
|
||||
#define GET_BO_BINDING(name,vk_name) const int Get##name(const AnsiString &obj_name)const{return GetBinding(VK_DESCRIPTOR_TYPE_##vk_name,obj_name);}
|
||||
// GET_BO_BINDING(Sampler, SAMPLER)
|
||||
|
||||
GET_BO_BINDING(Sampler, COMBINED_IMAGE_SAMPLER)
|
||||
// GET_BO_BINDING(SampledImage, SAMPLED_IMAGE)
|
||||
GET_BO_BINDING(StorageImage, STORAGE_IMAGE)
|
||||
|
||||
GET_BO_BINDING(UTBO, UNIFORM_TEXEL_BUFFER)
|
||||
GET_BO_BINDING(SSTBO, STORAGE_TEXEL_BUFFER)
|
||||
GET_BO_BINDING(UBO, UNIFORM_BUFFER)
|
||||
GET_BO_BINDING(SSBO, STORAGE_BUFFER)
|
||||
|
||||
//shader中并不区分普通UBO和动态UBO,所以Material/ShaderResource中的数据,只有UBO
|
||||
|
||||
// GET_BO_BINDING(UBODynamic, UNIFORM_BUFFER_DYNAMIC)
|
||||
// GET_BO_BINDING(SSBODynamic, STORAGE_BUFFER_DYNAMIC)
|
||||
|
||||
GET_BO_BINDING(InputAttachment, INPUT_ATTACHMENT)
|
||||
#undef GET_BO_BINDING
|
||||
const VertexShaderModule * GetVertexShaderModule ()const{return vertex_sm;}
|
||||
|
||||
const uint32_t GetStageCount ()const{return shader_stage_list->GetCount();}
|
||||
const VkPipelineShaderStageCreateInfo * GetStages ()const{return shader_stage_list->GetData();}
|
||||
@@ -70,7 +48,7 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
MaterialParameters * CreateMP (const DescriptorSetsType &type=DescriptorSetsType::Values);
|
||||
MaterialParameters * CreateMP (const DescriptorSetsType &type)const;
|
||||
MaterialParameters * GetMP (const DescriptorSetsType &type)
|
||||
{
|
||||
if(type==DescriptorSetsType::Material )return mp_m;else
|
||||
@@ -78,6 +56,8 @@ public:
|
||||
if(type==DescriptorSetsType::Global )return mp_g;else
|
||||
return(nullptr);
|
||||
}
|
||||
|
||||
MaterialInstance * CreateInstance();
|
||||
};//class Material
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_MATERIAL_INCLUDE
|
||||
|
Reference in New Issue
Block a user