add mtl_name value in Material class,It's name of material.
This commit is contained in:
@@ -187,9 +187,9 @@ public: //shader & material
|
|||||||
|
|
||||||
ShaderModule *CreateShaderModule(ShaderResource *);
|
ShaderModule *CreateShaderModule(ShaderResource *);
|
||||||
|
|
||||||
Material *CreateMaterial(ShaderModuleMap *shader_maps);
|
Material *CreateMaterial(const UTF8String &mtl_name,ShaderModuleMap *shader_maps);
|
||||||
Material *CreateMaterial(const VertexShaderModule *vertex_shader_module,const ShaderModule *fragment_shader_module);
|
Material *CreateMaterial(const UTF8String &mtl_name,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,const VertexShaderModule *vertex_shader_module,const ShaderModule *geometry_shader_module,const ShaderModule *fragment_shader_module);
|
||||||
|
|
||||||
public: //Command Buffer 相关
|
public: //Command Buffer 相关
|
||||||
|
|
||||||
|
@@ -15,6 +15,8 @@ class DescriptorSetLayoutCreater;
|
|||||||
*/
|
*/
|
||||||
class Material
|
class Material
|
||||||
{
|
{
|
||||||
|
UTF8String mtl_name;
|
||||||
|
|
||||||
ShaderModuleMap *shader_maps;
|
ShaderModuleMap *shader_maps;
|
||||||
VertexShaderModule *vertex_sm;
|
VertexShaderModule *vertex_sm;
|
||||||
List<VkPipelineShaderStageCreateInfo> *shader_stage_list;
|
List<VkPipelineShaderStageCreateInfo> *shader_stage_list;
|
||||||
@@ -25,12 +27,14 @@ class Material
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Material(ShaderModuleMap *smm,List<VkPipelineShaderStageCreateInfo> *,DescriptorSetLayoutCreater *dslc);
|
Material(const UTF8String &name,ShaderModuleMap *smm,List<VkPipelineShaderStageCreateInfo> *,DescriptorSetLayoutCreater *dslc);
|
||||||
~Material();
|
~Material();
|
||||||
|
|
||||||
const VertexShaderModule *GetVertexShaderModule()const{return vertex_sm;}
|
const UTF8String & GetName()const{return mtl_name;}
|
||||||
|
|
||||||
const int GetBinding(VkDescriptorType,const AnsiString &)const;
|
const VertexShaderModule * GetVertexShaderModule()const{return vertex_sm;}
|
||||||
|
|
||||||
|
const int GetBinding(VkDescriptorType,const AnsiString &)const;
|
||||||
|
|
||||||
#define GET_BO_BINDING(name,vk_name) const int Get##name(const AnsiString &obj_name)const{return GetBinding(VK_DESCRIPTOR_TYPE_##vk_name,obj_name);}
|
#define GET_BO_BINDING(name,vk_name) const int Get##name(const AnsiString &obj_name)const{return GetBinding(VK_DESCRIPTOR_TYPE_##vk_name,obj_name);}
|
||||||
// GET_BO_BINDING(Sampler, SAMPLER)
|
// GET_BO_BINDING(Sampler, SAMPLER)
|
||||||
|
@@ -89,8 +89,8 @@ public: //Material
|
|||||||
const ShaderModule *CreateShaderModule(const OSString &filename,ShaderResource *shader_resource);
|
const ShaderModule *CreateShaderModule(const OSString &filename,ShaderResource *shader_resource);
|
||||||
const ShaderModule *CreateShaderModule(const OSString &filename);
|
const ShaderModule *CreateShaderModule(const OSString &filename);
|
||||||
|
|
||||||
Material * CreateMaterial(const OSString &vertex_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 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 &geometry_shader_filename,const OSString &fragment_shader_filename);
|
||||||
|
|
||||||
Material * CreateMaterial(const OSString &);
|
Material * CreateMaterial(const OSString &);
|
||||||
MaterialInstance * CreateMaterialInstance(Material *);
|
MaterialInstance * CreateMaterialInstance(Material *);
|
||||||
|
@@ -44,7 +44,7 @@ const ShaderModule *RenderResource::CreateShaderModule(const OSString &filename)
|
|||||||
return sm;
|
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);
|
const ShaderModule *vs=CreateShaderModule(vertex_shader_filename);
|
||||||
|
|
||||||
@@ -56,10 +56,10 @@ Material *RenderResource::CreateMaterial(const OSString &vertex_shader_filename,
|
|||||||
if(!fs)
|
if(!fs)
|
||||||
return(nullptr);
|
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);
|
const ShaderModule *vs=CreateShaderModule(vertex_shader_filename);
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ Material *RenderResource::CreateMaterial(const OSString &vertex_shader_filename,
|
|||||||
if(!fs)
|
if(!fs)
|
||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
return(device->CreateMaterial((VertexShaderModule *)vs,gs,fs));
|
return(device->CreateMaterial(mtl_name,(VertexShaderModule *)vs,gs,fs));
|
||||||
}
|
}
|
||||||
|
|
||||||
Material *RenderResource::CreateMaterial(const OSString &filename)
|
Material *RenderResource::CreateMaterial(const OSString &filename)
|
||||||
@@ -163,7 +163,7 @@ Material *RenderResource::CreateMaterial(const OSString &filename)
|
|||||||
|
|
||||||
if(result)
|
if(result)
|
||||||
{
|
{
|
||||||
mtl=device->CreateMaterial(smm);
|
mtl=device->CreateMaterial(ToUTF8String(filename),smm);
|
||||||
Add(mtl);
|
Add(mtl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user