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; ///<材质描述符管理器
AnsiString mi_codes; ///<MaterialInstance代码
uint32_t mi_length; ///<MaterialInstance数据长度
uint32_t mi_data_bytes; ///<MaterialInstance数据长度
uint32_t mi_shader_stage; ///<MaterialInstance着色器阶段
ShaderCreateInfoMap shader_map; ///<着色器列表
@ -31,23 +31,28 @@ protected:
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 hasTessCtrl()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);}
// bool hasTessEval()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);}
bool hasGeometry()const{return hasShader(VK_SHADER_STAGE_GEOMETRY_BIT);}
bool hasFragment()const{return hasShader(VK_SHADER_STAGE_FRAGMENT_BIT);}
// bool hasCompute ()const{return hasShader(VK_SHADER_STAGE_COMPUTE_BIT);}
bool hasVertex ()const{return hasShader(VK_SHADER_STAGE_VERTEX_BIT);}
// bool hasTessCtrl ()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);}
// bool hasTessEval ()const{return hasShader(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);}
bool hasGeometry ()const{return hasShader(VK_SHADER_STAGE_GEOMETRY_BIT);}
bool hasFragment ()const{return hasShader(VK_SHADER_STAGE_FRAGMENT_BIT);}
// bool hasCompute ()const{return hasShader(VK_SHADER_STAGE_COMPUTE_BIT);}
ShaderCreateInfoVertex * GetVS()const{return vert;}
ShaderCreateInfoGeometry * GetGS()const{return geom;}
ShaderCreateInfoFragment * GetFS()const{return frag;}
public:
const MaterialDescriptorInfo &GetMDI()const{return mdi;}
const uint32_t GetMIDataBytes()const{return mi_data_bytes;}
public:
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 AddStruct(const AnsiString &ubo_typename,const AnsiString &codes);
bool AddStruct(const ShaderBufferSource &ss)
{
return AddStruct(ss.struct_name,ss.codes);
}
bool AddStruct(const ShaderBufferSource &ss){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 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 CreateShader();
const MaterialDescriptorInfo &GetMDI()const{return mdi;}
};//class MaterialCreateInfo
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)
{
if(!desc_manager||!pld)return(nullptr);
if(!RangeCheck<DescriptorSetType>(desc_set_type))
return(nullptr);
RANGE_CHECK_RETURN_NULLPTR(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)
{
if(!RangeCheck(cfg->coordinate_system))
return(false);
RANGE_CHECK_RETURN_FALSE(cfg->coordinate_system)
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(hasFragment ())shader_map.Add(frag=new ShaderCreateInfoFragment(&mdi));else frag=nullptr;
mi_length=0;
mi_data_bytes=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)
{
if(mi_length>0)return(false); //已经有数据了
if(mi_data_bytes>0)return(false); //已经有数据了
if(shader_stage==0)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)
mi_codes=mi_glsl_codes;