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; ///<材质描述符管理器
|
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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user