diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index de22e0c0..d4120ebe 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -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) diff --git a/inc/hgl/graph/VKMaterialParameters.h b/inc/hgl/graph/VKMaterialParameters.h index 1b27f382..ae1e07b0 100644 --- a/inc/hgl/graph/VKMaterialParameters.h +++ b/inc/hgl/graph/VKMaterialParameters.h @@ -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 diff --git a/src/SceneGraph/Vulkan/VKMaterialInstance.cpp b/src/SceneGraph/Vulkan/VKMaterialInstance.cpp index 1a319bd6..6ab0cf43 100644 --- a/src/SceneGraph/Vulkan/VKMaterialInstance.cpp +++ b/src/SceneGraph/Vulkan/VKMaterialInstance.cpp @@ -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) diff --git a/src/SceneGraph/Vulkan/VKMaterialParameters.cpp b/src/SceneGraph/Vulkan/VKMaterialParameters.cpp index a3d3c8cf..f0f3c570 100644 --- a/src/SceneGraph/Vulkan/VKMaterialParameters.cpp +++ b/src/SceneGraph/Vulkan/VKMaterialParameters.cpp @@ -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 \ No newline at end of file diff --git a/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp b/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp index 24f16921..b6243670 100644 --- a/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResourceMaterial.cpp @@ -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; } diff --git a/src/SceneGraph/font/TextRender.cpp b/src/SceneGraph/font/TextRender.cpp index 25fae70c..3d735052 100644 --- a/src/SceneGraph/font/TextRender.cpp +++ b/src/SceneGraph/font/TextRender.cpp @@ -109,7 +109,7 @@ namespace hgl } { - MaterialParameters *mp=material_instance->GetMP(DescriptorSetType::PerMaterial); + MaterialParameters *mp=material_instance->GetMP(DescriptorSetType::PerMaterialInstance); if(!mp) return(false);