layout and renamed value
This commit is contained in:
parent
f8fe0e46d6
commit
fc94ee82b4
2
CMCore
2
CMCore
@ -1 +1 @@
|
||||
Subproject commit fbb3154e5b8ca0e3d0480ad121a704359f527966
|
||||
Subproject commit 215494ead2c3e2b60191f6f77d1648d6a466f93f
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user