renamed to PerMaterialInstance instead of PerMaterial
This commit is contained in:
parent
3dbb1c40b7
commit
cce2cab12c
@ -74,10 +74,10 @@ enum class DescriptorSetType
|
||||
{
|
||||
//设计使其对应shader中的set
|
||||
|
||||
Global=0, ///<全局参数(如太阳光等)
|
||||
PerFrame, ///<帧参数(如摄像机等)
|
||||
PerMaterial,///<材质参数(如纹理等)
|
||||
PerObject, ///<对象参数(如模型矩阵等)
|
||||
Global=0, ///<全局参数(如太阳光等)
|
||||
PerFrame, ///<帧参数(如摄像机等)
|
||||
PerMaterialInstance,///<材质实例参数(如纹理等)
|
||||
PerObject, ///<对象参数(如模型矩阵等)
|
||||
|
||||
Instance,
|
||||
Skeleton,
|
||||
@ -87,7 +87,7 @@ enum class DescriptorSetType
|
||||
|
||||
constexpr char *DescriptSetsTypeName[]=
|
||||
{
|
||||
"Global","PerFrame","PerMaterial","PerObject","Instance","Skeleton"
|
||||
"Global","PerFrame","PerMaterialInstance","PerObject","Instance","Skeleton"
|
||||
};
|
||||
|
||||
inline const char *GetDescriptorSetTypeName(const enum class DescriptorSetType &type)
|
||||
|
@ -9,9 +9,9 @@ class MaterialParameters
|
||||
{
|
||||
const MaterialDescriptorSets *mds;
|
||||
|
||||
DescriptorSetType ds_type;
|
||||
DescriptorSetType set_type;
|
||||
|
||||
DescriptorSet *descriptor_sets;
|
||||
DescriptorSet *descriptor_set;
|
||||
|
||||
private:
|
||||
|
||||
@ -21,20 +21,20 @@ private:
|
||||
|
||||
public:
|
||||
|
||||
const DescriptorSetType GetType (){return ds_type;}
|
||||
DescriptorSet * GetDescriptorSet (){return descriptor_sets;}
|
||||
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_sets->GetDescriptorSet();}
|
||||
const DescriptorSetType GetType (){return set_type;}
|
||||
DescriptorSet * GetDescriptorSet (){return descriptor_set;}
|
||||
const VkDescriptorSet GetVkDescriptorSet ()const{return descriptor_set->GetDescriptorSet();}
|
||||
|
||||
const uint32_t GetCount ()const{return descriptor_sets->GetCount();}
|
||||
const bool IsReady ()const{return descriptor_sets->IsReady();}
|
||||
const uint32_t GetCount ()const{return descriptor_set->GetCount();}
|
||||
const bool IsReady ()const{return descriptor_set->IsReady();}
|
||||
|
||||
public:
|
||||
|
||||
#define MP_TYPE_IS(name) const bool is##name()const{return ds_type==DescriptorSetType::name;}
|
||||
#define MP_TYPE_IS(name) const bool is##name()const{return set_type==DescriptorSetType::name;}
|
||||
MP_TYPE_IS(Skeleton)
|
||||
MP_TYPE_IS(Instance)
|
||||
MP_TYPE_IS(PerObject)
|
||||
MP_TYPE_IS(PerMaterial)
|
||||
MP_TYPE_IS(PerMaterialInstance)
|
||||
MP_TYPE_IS(PerFrame)
|
||||
MP_TYPE_IS(Global)
|
||||
#undef MP_TYPE_IS
|
||||
|
@ -23,7 +23,7 @@ MaterialInstance::MaterialInstance(Material *mtl,VIL *v)
|
||||
|
||||
vil=v;
|
||||
|
||||
mp_per_mi=mtl->GetMP(DescriptorSetType::PerMaterial);
|
||||
mp_per_mi=mtl->GetMP(DescriptorSetType::PerMaterialInstance);
|
||||
}
|
||||
|
||||
bool MaterialInstance::BindUBO(const DescriptorSetType &type,const AnsiString &name,DeviceBuffer *ubo,bool dynamic)
|
||||
|
@ -7,13 +7,13 @@ VK_NAMESPACE_BEGIN
|
||||
MaterialParameters::MaterialParameters(const MaterialDescriptorSets *_mds,const DescriptorSetType &type,DescriptorSet *ds)
|
||||
{
|
||||
mds=_mds;
|
||||
ds_type=type;
|
||||
descriptor_sets=ds;
|
||||
set_type=type;
|
||||
descriptor_set=ds;
|
||||
}
|
||||
|
||||
MaterialParameters::~MaterialParameters()
|
||||
{
|
||||
delete descriptor_sets;
|
||||
delete descriptor_set;
|
||||
}
|
||||
|
||||
bool MaterialParameters::BindUBO(const AnsiString &name,DeviceBuffer *ubo,bool dynamic)
|
||||
@ -26,7 +26,7 @@ bool MaterialParameters::BindUBO(const AnsiString &name,DeviceBuffer *ubo,bool d
|
||||
if(index<0)
|
||||
return(false);
|
||||
|
||||
if(!descriptor_sets->BindUBO(index,ubo,dynamic))
|
||||
if(!descriptor_set->BindUBO(index,ubo,dynamic))
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
@ -42,7 +42,7 @@ bool MaterialParameters::BindSSBO(const AnsiString &name,DeviceBuffer *ssbo,bool
|
||||
if(index<0)
|
||||
return(false);
|
||||
|
||||
if(!descriptor_sets->BindSSBO(index,ssbo,dynamic))
|
||||
if(!descriptor_set->BindSSBO(index,ssbo,dynamic))
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
@ -58,7 +58,7 @@ bool MaterialParameters::BindSampler(const AnsiString &name,Texture *tex,Sampler
|
||||
if(index<0)
|
||||
return(false);
|
||||
|
||||
if(!descriptor_sets->BindSampler(index,tex,sampler))
|
||||
if(!descriptor_set->BindSampler(index,tex,sampler))
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
@ -74,7 +74,7 @@ bool MaterialParameters::BindInputAttachment(const AnsiString &name,ImageView *i
|
||||
if(index<0)
|
||||
return(false);
|
||||
|
||||
if(!descriptor_sets->BindInputAttachment(index,iv))
|
||||
if(!descriptor_set->BindInputAttachment(index,iv))
|
||||
return(false);
|
||||
|
||||
return(true);
|
||||
@ -82,6 +82,6 @@ bool MaterialParameters::BindInputAttachment(const AnsiString &name,ImageView *i
|
||||
|
||||
void MaterialParameters::Update()
|
||||
{
|
||||
descriptor_sets->Update();
|
||||
descriptor_set->Update();
|
||||
}
|
||||
VK_NAMESPACE_END
|
@ -61,7 +61,7 @@ void LoadShaderDescriptor(const uint8 *data,ShaderDescriptor *sd_list,const uint
|
||||
if(ver==2) //以下是旧的,未来不用了,现仅保证能运行
|
||||
{
|
||||
if(sd->name[0]=='g')sd->set_type=DescriptorSetType::Global;else
|
||||
if(sd->name[0]=='m')sd->set_type=DescriptorSetType::PerMaterial;else
|
||||
if(sd->name[0]=='m')sd->set_type=DescriptorSetType::PerMaterialInstance;else
|
||||
if(sd->name[0]=='r')sd->set_type=DescriptorSetType::PerObject;else
|
||||
sd->set_type=DescriptorSetType::PerFrame;
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ namespace hgl
|
||||
}
|
||||
|
||||
{
|
||||
MaterialParameters *mp=material_instance->GetMP(DescriptorSetType::PerMaterial);
|
||||
MaterialParameters *mp=material_instance->GetMP(DescriptorSetType::PerMaterialInstance);
|
||||
|
||||
if(!mp)
|
||||
return(false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user