added RenderResource::LoadMaterial functions, it can't easy CreateMaterial from file.

This commit is contained in:
HuYingzhuo(hugo/hyzboy) 2023-10-11 19:02:17 +08:00
parent aa6071a948
commit c99934fdf9
8 changed files with 37 additions and 23 deletions

View File

@ -56,11 +56,10 @@ private:
#ifndef USE_MATERIAL_FILE
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreatePureColor2D(&cfg); //走程序内置材质创建函数
#else
AutoDelete<mtl::MaterialCreateInfo> mci=LoadMaterialFromFile("Std2D/PureColor2D",&cfg); //走材质文件加载
#endif//USE_MATERIAL_FILE
material=db->CreateMaterial(mci);
#else
material=db->LoadMaterial("Std2D/PureColor2D",&cfg); //走材质文件加载
#endif//USE_MATERIAL_FILE
if(!material)
return(false);

View File

@ -30,10 +30,7 @@ private:
cfg.local_to_world=true;
//AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreateVertexLuminance3D(&cfg);
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile("Std3D/VertexLum3D",&cfg);
material=db->CreateMaterial(mci);
material=db->LoadMaterial("Std3D/VertexLum3D",&cfg);
if(!material)return(false);
Color4f GridColor;

View File

@ -57,10 +57,7 @@ private:
cfg.local_to_world=true;
//AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreateVertexLuminance3D(&cfg);
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile("Std3D/VertexLum3D",&cfg);
material=db->CreateMaterial(mci);
material=db->LoadMaterial("Std3D/VertexLum3D",&cfg);
if(!material)return(false);
mi_plane_grid=db->CreateMaterialInstance(material);

View File

@ -56,10 +56,7 @@ private:
cfg.coordinate_system=CoordinateSystem2D::NDC;
cfg.local_to_world=false;
//AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreatePureTexture2D(&cfg);
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile("Std2D/PureTexture2D",&cfg);
material=db->CreateMaterial(mci);
material=db->LoadMaterial("Std2D/PureTexture2D",&cfg);
if(!material)
return(false);

View File

@ -52,9 +52,7 @@ private:
cfg.coordinate_system=CoordinateSystem2D::ZeroToOne;
cfg.local_to_world=false;
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreateRectTexture2D(&cfg);
material=db->CreateMaterial(mci);
material=db->LoadMaterial("Std2D/RectTexture2D",&cfg);
if(!material)
return(false);

View File

@ -94,10 +94,7 @@ private:
cfg.coordinate_system=CoordinateSystem2D::ZeroToOne;
cfg.local_to_world=true;
//AutoDelete<mtl::MaterialCreateInfo> mci=mtl::CreateRectTexture2DArray(&cfg);
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile("Std2D/RectTexture2DArray",&cfg);
material=db->CreateMaterial(mci);
material=db->LoadMaterial("Std2D/RectTexture2DArray",&cfg);
if(!material)
return(false);

View File

@ -18,6 +18,13 @@
#include<hgl/graph/VKDescriptorBindingManage.h>
VK_NAMESPACE_BEGIN
namespace mtl
{
struct Material2DCreateConfig;
struct Material3DCreateConfig;
}//namespace mtl
using MaterialID =int;
using MaterialInstanceID =int;
using BufferID =int;
@ -101,6 +108,8 @@ public: //Material
const ShaderModule *CreateShaderModule(const AnsiString &shader_module_name,const ShaderCreateInfo *);
Material * CreateMaterial(const mtl::MaterialCreateInfo *);
Material * LoadMaterial(const AnsiString &,mtl::Material2DCreateConfig *);
Material * LoadMaterial(const AnsiString &,mtl::Material3DCreateConfig *);
MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg=nullptr);
MaterialInstance * CreateMaterialInstance(const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);

View File

@ -160,4 +160,24 @@ Material *RenderResource::CreateMaterial(const mtl::MaterialCreateInfo *mci)
material_by_name.Add(mtl_name,mtl);
return mtl.Finish();
}
namespace mtl
{
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &, Material2DCreateConfig *);
MaterialCreateInfo *LoadMaterialFromFile(const AnsiString &, Material3DCreateConfig *);
}
Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material2DCreateConfig *cfg)
{
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(mtl_name,cfg);
return this->CreateMaterial(mci);
}
Material *RenderResource::LoadMaterial(const AnsiString &mtl_name,mtl::Material3DCreateConfig *cfg)
{
AutoDelete<mtl::MaterialCreateInfo> mci=mtl::LoadMaterialFromFile(mtl_name,cfg);
return this->CreateMaterial(mci);
}
VK_NAMESPACE_END