layout and renamed value

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-06-02 14:22:07 +08:00
parent f8fe0e46d6
commit fc94ee82b4
5 changed files with 22 additions and 24 deletions

2
CMCore

@ -1 +1 @@
Subproject commit fbb3154e5b8ca0e3d0480ad121a704359f527966 Subproject commit 215494ead2c3e2b60191f6f77d1648d6a466f93f

View File

@ -20,7 +20,7 @@ protected:
MaterialDescriptorInfo mdi; ///<材质描述符管理器 MaterialDescriptorInfo mdi; ///<材质描述符管理器
AnsiString mi_codes; ///<MaterialInstance代码 AnsiString mi_codes; ///<MaterialInstance代码
uint32_t mi_length; ///<MaterialInstance数据长度 uint32_t mi_data_bytes; ///<MaterialInstance数据长度
uint32_t mi_shader_stage; ///<MaterialInstance着色器阶段 uint32_t mi_shader_stage; ///<MaterialInstance着色器阶段
ShaderCreateInfoMap shader_map; ///<着色器列表 ShaderCreateInfoMap shader_map; ///<着色器列表
@ -31,23 +31,28 @@ protected:
public: public:
const AnsiString &GetName()const{return config->mtl_name;} const AnsiString &GetName ()const{return config->mtl_name;}
const uint32 GetShaderStage()const{return config->shader_stage;} const uint32 GetShaderStage ()const{return config->shader_stage;}
bool hasShader(const VkShaderStageFlagBits ss)const{return config->shader_stage&ss;} bool hasShader (const VkShaderStageFlagBits ss)const{return config->shader_stage&ss;}
bool hasVertex ()const{return hasShader(VK_SHADER_STAGE_VERTEX_BIT);} bool hasVertex ()const{return hasShader(VK_SHADER_STAGE_VERTEX_BIT);}
// bool hasTessCtrl()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);} // bool hasTessCtrl ()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);}
// bool hasTessEval()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);} // bool hasTessEval ()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);}
bool hasGeometry()const{return hasShader(VK_SHADER_STAGE_GEOMETRY_BIT);} bool hasGeometry ()const{return hasShader(VK_SHADER_STAGE_GEOMETRY_BIT);}
bool hasFragment()const{return hasShader(VK_SHADER_STAGE_FRAGMENT_BIT);} bool hasFragment ()const{return hasShader(VK_SHADER_STAGE_FRAGMENT_BIT);}
// bool hasCompute ()const{return hasShader(VK_SHADER_STAGE_COMPUTE_BIT);} // bool hasCompute ()const{return hasShader(VK_SHADER_STAGE_COMPUTE_BIT);}
ShaderCreateInfoVertex * GetVS()const{return vert;} ShaderCreateInfoVertex * GetVS()const{return vert;}
ShaderCreateInfoGeometry * GetGS()const{return geom;} ShaderCreateInfoGeometry * GetGS()const{return geom;}
ShaderCreateInfoFragment * GetFS()const{return frag;} ShaderCreateInfoFragment * GetFS()const{return frag;}
public:
const MaterialDescriptorInfo &GetMDI()const{return mdi;}
const uint32_t GetMIDataBytes()const{return mi_data_bytes;}
public: public:
MaterialCreateInfo(const MaterialConfig *); MaterialCreateInfo(const MaterialConfig *);
@ -56,10 +61,7 @@ public:
bool SetMaterialInstance(const AnsiString &mi_glsl_codes,const uint32_t mi_struct_bytes,const uint32_t shader_stage); bool SetMaterialInstance(const AnsiString &mi_glsl_codes,const uint32_t mi_struct_bytes,const uint32_t shader_stage);
bool AddStruct(const AnsiString &ubo_typename,const AnsiString &codes); bool AddStruct(const AnsiString &ubo_typename,const AnsiString &codes);
bool AddStruct(const ShaderBufferSource &ss) bool AddStruct(const ShaderBufferSource &ss){return AddStruct(ss.struct_name,ss.codes);}
{
return AddStruct(ss.struct_name,ss.codes);
}
bool AddUBO(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const AnsiString &type_name,const AnsiString &name); bool AddUBO(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const AnsiString &type_name,const AnsiString &name);
bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name); bool AddSampler(const VkShaderStageFlagBits flag_bits,const DescriptorSetType set_type,const SamplerType &st,const AnsiString &name);
@ -67,7 +69,5 @@ public:
bool AddUBO(const uint32_t flag_bits,const DescriptorSetType &set_type,const ShaderBufferSource &ss); bool AddUBO(const uint32_t flag_bits,const DescriptorSetType &set_type,const ShaderBufferSource &ss);
bool CreateShader(); bool CreateShader();
const MaterialDescriptorInfo &GetMDI()const{return mdi;}
};//class MaterialCreateInfo };//class MaterialCreateInfo
STD_MTL_NAMESPACE_END STD_MTL_NAMESPACE_END

View File

@ -34,8 +34,7 @@ DescriptorSet *GPUDevice::CreateDS(const PipelineLayoutData *pld,const Descripto
MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorManager *desc_manager,const PipelineLayoutData *pld,const DescriptorSetType &desc_set_type) MaterialParameters *GPUDevice::CreateMP(const MaterialDescriptorManager *desc_manager,const PipelineLayoutData *pld,const DescriptorSetType &desc_set_type)
{ {
if(!desc_manager||!pld)return(nullptr); if(!desc_manager||!pld)return(nullptr);
if(!RangeCheck<DescriptorSetType>(desc_set_type)) RANGE_CHECK_RETURN_NULLPTR(desc_set_type)
return(nullptr);
DescriptorSet *ds=CreateDS(pld,desc_set_type); DescriptorSet *ds=CreateDS(pld,desc_set_type);

View File

@ -14,8 +14,7 @@ Std2DMaterial::Std2DMaterial(const Material2DConfig *c)
bool Std2DMaterial::CreateVertexShader(ShaderCreateInfoVertex *vsc) bool Std2DMaterial::CreateVertexShader(ShaderCreateInfoVertex *vsc)
{ {
if(!RangeCheck(cfg->coordinate_system)) RANGE_CHECK_RETURN_FALSE(cfg->coordinate_system)
return(false);
vsc->AddInput(VAT_VEC2,VAN::Position); vsc->AddInput(VAT_VEC2,VAN::Position);

View File

@ -15,7 +15,7 @@ MaterialCreateInfo::MaterialCreateInfo(const MaterialConfig *mc)
if(hasGeometry ())shader_map.Add(geom=new ShaderCreateInfoGeometry(&mdi));else geom=nullptr; if(hasGeometry ())shader_map.Add(geom=new ShaderCreateInfoGeometry(&mdi));else geom=nullptr;
if(hasFragment ())shader_map.Add(frag=new ShaderCreateInfoFragment(&mdi));else frag=nullptr; if(hasFragment ())shader_map.Add(frag=new ShaderCreateInfoFragment(&mdi));else frag=nullptr;
mi_length=0; mi_data_bytes=0;
mi_shader_stage=0; mi_shader_stage=0;
} }
@ -129,13 +129,13 @@ bool MaterialCreateInfo::AddUBO(const uint32_t flag_bits,const DescriptorSetType
*/ */
bool MaterialCreateInfo::SetMaterialInstance(const AnsiString &mi_glsl_codes,const uint32_t mi_struct_bytes,const uint32_t shader_stage) bool MaterialCreateInfo::SetMaterialInstance(const AnsiString &mi_glsl_codes,const uint32_t mi_struct_bytes,const uint32_t shader_stage)
{ {
if(mi_length>0)return(false); //已经有数据了 if(mi_data_bytes>0)return(false); //已经有数据了
if(shader_stage==0)return(false); if(shader_stage==0)return(false);
if(mi_struct_bytes>0&&mi_glsl_codes.Length()<4)return(false); if(mi_struct_bytes>0&&mi_glsl_codes.Length()<4)return(false);
mi_length=mi_struct_bytes; mi_data_bytes=mi_struct_bytes;
if(mi_struct_bytes>0) if(mi_struct_bytes>0)
mi_codes=mi_glsl_codes; mi_codes=mi_glsl_codes;