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