add mtl_name value in Material class,It's name of material.

This commit is contained in:
2021-05-10 15:19:16 +08:00
parent 7f0a786122
commit b86742109b
4 changed files with 17 additions and 13 deletions

View File

@@ -187,9 +187,9 @@ public: //shader & material
ShaderModule *CreateShaderModule(ShaderResource *);
Material *CreateMaterial(ShaderModuleMap *shader_maps);
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module);
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module);
Material *CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *shader_maps);
Material *CreateMaterial(const UTF8String &mtl_name,const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module);
Material *CreateMaterial(const UTF8String &mtl_name,const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module);
public: //Command Buffer 相关

View File

@@ -15,6 +15,8 @@ class DescriptorSetLayoutCreater;
*/
class Material
{
UTF8String mtl_name;
ShaderModuleMap *shader_maps;
VertexShaderModule *vertex_sm;
List<VkPipelineShaderStageCreateInfo> *shader_stage_list;
@@ -25,10 +27,12 @@ class Material
public:
Material(ShaderModuleMap *smm,List<VkPipelineShaderStageCreateInfo> *,DescriptorSetLayoutCreater *dslc);
Material(const UTF8String &name,ShaderModuleMap *smm,List<VkPipelineShaderStageCreateInfo> *,DescriptorSetLayoutCreater *dslc);
~Material();
const VertexShaderModule *GetVertexShaderModule()const{return vertex_sm;}
const UTF8String & GetName()const{return mtl_name;}
const VertexShaderModule * GetVertexShaderModule()const{return vertex_sm;}
const int GetBinding(VkDescriptorType,const AnsiString &)const;

View File

@@ -89,8 +89,8 @@ public: //Material
const ShaderModule *CreateShaderModule(const OSString &filename,ShaderResource *shader_resource);
const ShaderModule *CreateShaderModule(const OSString &filename);
Material * CreateMaterial(const OSString &vertex_shader_filename,const OSString &fragment_shader_filename);
Material * CreateMaterial(const OSString &vertex_shader_filename,const OSString &geometry_shader_filename,const OSString &fragment_shader_filename);
Material * CreateMaterial(const UTF8String &mtl_name,const OSString &vertex_shader_filename,const OSString &fragment_shader_filename);
Material * CreateMaterial(const UTF8String &mtl_name,const OSString &vertex_shader_filename,const OSString &geometry_shader_filename,const OSString &fragment_shader_filename);
Material * CreateMaterial(const OSString &);
MaterialInstance * CreateMaterialInstance(Material *);

View File

@@ -44,7 +44,7 @@ const ShaderModule *RenderResource::CreateShaderModule(const OSString &filename)
return sm;
}
Material *RenderResource::CreateMaterial(const OSString &vertex_shader_filename,const OSString &fragment_shader_filename)
Material *RenderResource::CreateMaterial(const UTF8String &mtl_name,const OSString &vertex_shader_filename,const OSString &fragment_shader_filename)
{
const ShaderModule *vs=CreateShaderModule(vertex_shader_filename);
@@ -56,10 +56,10 @@ Material *RenderResource::CreateMaterial(const OSString &vertex_shader_filename,
if(!fs)
return(nullptr);
return(device->CreateMaterial((VertexShaderModule *)vs,fs));
return(device->CreateMaterial(mtl_name,(VertexShaderModule *)vs,fs));
}
Material *RenderResource::CreateMaterial(const OSString &vertex_shader_filename,const OSString &geometry_shader_filename,const OSString &fragment_shader_filename)
Material *RenderResource::CreateMaterial(const UTF8String &mtl_name,const OSString &vertex_shader_filename,const OSString &geometry_shader_filename,const OSString &fragment_shader_filename)
{
const ShaderModule *vs=CreateShaderModule(vertex_shader_filename);
@@ -76,7 +76,7 @@ Material *RenderResource::CreateMaterial(const OSString &vertex_shader_filename,
if(!fs)
return(nullptr);
return(device->CreateMaterial((VertexShaderModule *)vs,gs,fs));
return(device->CreateMaterial(mtl_name,(VertexShaderModule *)vs,gs,fs));
}
Material *RenderResource::CreateMaterial(const OSString &filename)
@@ -163,7 +163,7 @@ Material *RenderResource::CreateMaterial(const OSString &filename)
if(result)
{
mtl=device->CreateMaterial(smm);
mtl=device->CreateMaterial(ToUTF8String(filename),smm);
Add(mtl);
}
else