RenderResource缓存材质增加HashString以解决同名不同配置冲突问题
This commit is contained in:
parent
0fbe85290b
commit
660d8fff6d
@ -13,7 +13,7 @@ class PrimitiveCreater
|
||||
{
|
||||
protected:
|
||||
|
||||
VulkanDevice * device;
|
||||
VulkanDevice * device;
|
||||
VertexDataManager * vdm;
|
||||
|
||||
const VIL * vil;
|
||||
|
@ -11,6 +11,9 @@
|
||||
#include<hgl/shadergen/ShaderDescriptorInfo.h>
|
||||
#include<hgl/type/ActiveMemoryBlockManager.h>
|
||||
|
||||
#include<hgl/graph/mtl/Material2DCreateConfig.h>
|
||||
#include<hgl/graph/mtl/Material3DCreateConfig.h>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#include"VKPipelineLayoutData.h"
|
||||
#endif//_DEBUG
|
||||
@ -187,7 +190,10 @@ Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material2
|
||||
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(device->GetDevAttr(),mtl_name,cfg);
|
||||
|
||||
//这里直接用这个mtl_name有些不太对,因为同一个材质,也有可能因为不同的cfg会有不同的版本,所以这里不能直接使用mtl_name.目前只是做一个暂时方案
|
||||
return this->CreateMaterial(mtl_name,mci);
|
||||
|
||||
AnsiString hash_name=mtl_name+"?"+cfg->ToHashString();
|
||||
|
||||
return this->CreateMaterial(hash_name,mci);
|
||||
}
|
||||
|
||||
Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material3DCreateConfig *cfg)
|
||||
@ -195,6 +201,9 @@ Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material3
|
||||
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(device->GetDevAttr(),mtl_name,cfg);
|
||||
|
||||
//这里直接用这个mtl_name有些不太对,因为同一个材质,也有可能因为不同的cfg会有不同的版本,所以这里不能直接使用mtl_name.目前只是做一个暂时方案
|
||||
return this->CreateMaterial(mtl_name,mci);
|
||||
|
||||
AnsiString hash_name=mtl_name+"?"+cfg->ToHashString();
|
||||
|
||||
return this->CreateMaterial(hash_name,mci);
|
||||
}
|
||||
VK_NAMESPACE_END
|
||||
|
@ -76,9 +76,10 @@ SET(STD_MTL_3D_SOURCE_FILES ${STD_MTL_HEADER_PATH}/Material3DCreateConfig.h
|
||||
3d/M_Gizmo3D.cpp
|
||||
)
|
||||
|
||||
SET(STD_MTL_SOURCE ${STD_MTL_HEADER_PATH}/MaterialConfig.h
|
||||
SET(STD_MTL_SOURCE ${STD_MTL_HEADER_PATH}/MaterialCreateConfig.h
|
||||
${STD_MTL_HEADER_PATH}/StdMaterial.h
|
||||
${STD_MTL_HEADER_PATH}/ShaderBufferSource.h
|
||||
MaterialCreateConfig.cpp
|
||||
StandardMaterial.cpp
|
||||
MaterialFileData.h
|
||||
MaterialFileLoader.cpp)
|
||||
|
@ -1,4 +1,4 @@
|
||||
#include<hgl/graph/mtl/MaterialConfig.h>
|
||||
#include<hgl/graph/mtl/MaterialCreateConfig.h>
|
||||
#include<hgl/graph/mtl/Material2DCreateConfig.h>
|
||||
#include<hgl/graph/mtl/Material3DCreateConfig.h>
|
||||
#include<hgl/graph/VKShaderStage.h>
|
||||
|
Loading…
x
Reference in New Issue
Block a user