Removed mtl_name from MaterialCreateConfig

This commit is contained in:
2025-05-18 01:33:48 +08:00
parent 5a04295f17
commit 692eeff4a3
11 changed files with 31 additions and 45 deletions

View File

@@ -74,18 +74,16 @@ namespace hgl
return render_pass->CreatePipeline(args...);
}
graph::MaterialInstance *CreateMaterialInstance(const graph::mtl::MaterialCreateInfo *mci,const graph::VILConfig *vil_cfg=nullptr)
graph::MaterialInstance *CreateMaterialInstance(const AnsiString &mi_name,const graph::mtl::MaterialCreateInfo *mci,const graph::VILConfig *vil_cfg=nullptr)
{
return db->CreateMaterialInstance(mci,vil_cfg);
return db->CreateMaterialInstance(mi_name,mci,vil_cfg);
}
graph::MaterialInstance *CreateMaterialInstance(const AnsiString &mtl_name,graph::mtl::MaterialCreateConfig *mtl_cfg,const graph::VILConfig *vil_cfg=nullptr)
{
AutoDelete<graph::mtl::MaterialCreateInfo> mci=graph::mtl::CreateMaterialCreateInfo(
GetDevAttr(),
"VertexColor2D",mtl_cfg); //这个是使用名称创建
AutoDelete<graph::mtl::MaterialCreateInfo> mci=graph::mtl::CreateMaterialCreateInfo(GetDevAttr(),mtl_name,mtl_cfg);
return db->CreateMaterialInstance(mci,vil_cfg);
return db->CreateMaterialInstance(mtl_name,mci,vil_cfg);
}
graph::Primitive *CreatePrimitive( const AnsiString &name,

View File

@@ -127,7 +127,7 @@ public: //Material
const ShaderModule *CreateShaderModule(const AnsiString &shader_module_name,const ShaderCreateInfo *);
Material * CreateMaterial(const mtl::MaterialCreateInfo *);
Material * CreateMaterial(const AnsiString &mtl_name,const mtl::MaterialCreateInfo *);
Material * LoadMaterial(const AnsiString &,mtl::Material2DCreateConfig *);
Material * LoadMaterial(const AnsiString &,mtl::Material3DCreateConfig *);
@@ -141,7 +141,7 @@ public: //Material
return CreateMaterialInstance(mtl,vil_cfg,data,sizeof(T));
}
MaterialInstance * CreateMaterialInstance(const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
MaterialInstance * CreateMaterialInstance(const AnsiString &mtl_name,const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
Renderable * CreateRenderable(Primitive *r,MaterialInstance *mi,Pipeline *p);
Renderable * CreateRenderable(PrimitiveCreater *pc,MaterialInstance *mi,Pipeline *p);

View File

@@ -16,14 +16,17 @@ struct Material2DCreateConfig:public MaterialCreateConfig,public Comparator<Mate
public:
Material2DCreateConfig(const AnsiString &name,const PrimitiveType &p):MaterialCreateConfig(name,p)
Material2DCreateConfig(const PrimitiveType &p,
const CoordinateSystem2D &cs=CoordinateSystem2D::NDC,
const WithLocalToWorld &l2w=WithLocalToWorld::Without)
:MaterialCreateConfig(p)
{
rt_output.color=1; //输出一个颜色
rt_output.depth=false; //不输出深度
rt_output.stencil=false; //不输出stencil
coordinate_system=CoordinateSystem2D::NDC;
local_to_world=false;
coordinate_system=cs;
local_to_world=(l2w==WithLocalToWorld::With);
if(prim==PrimitiveType::SolidRectangles
||prim==PrimitiveType::WireRectangles)

View File

@@ -19,7 +19,7 @@ struct Material3DCreateConfig:public MaterialCreateConfig,public Comparator<Mate
public:
Material3DCreateConfig(const AnsiString &name,const PrimitiveType &p):MaterialCreateConfig(name,p)
Material3DCreateConfig(const PrimitiveType &p):MaterialCreateConfig(p)
{
rt_output.color=1; //输出一个颜色
rt_output.depth=true; //不输出深度

View File

@@ -14,8 +14,6 @@ class MaterialCreateInfo;
*/
struct MaterialCreateConfig:public Comparator<MaterialCreateConfig>
{
AnsiString mtl_name; ///<材质名称
bool material_instance; ///<是否包含材质实例
RenderTargetOutputConfig rt_output; ///<渲染目标输出配置
@@ -26,10 +24,8 @@ struct MaterialCreateConfig:public Comparator<MaterialCreateConfig>
public:
MaterialCreateConfig(const AnsiString &name,const PrimitiveType &p)
MaterialCreateConfig(const PrimitiveType &p)
{
mtl_name=name;
material_instance=false;
hgl_zero(rt_output);

View File

@@ -23,9 +23,11 @@ namespace hgl::graph
namespace mtl
{
namespace func
enum class WithLocalToWorld:uint8
{
}//namespace func
Without=0,
With
};
class MaterialCreateInfo;
struct MaterialCreateConfig;

View File

@@ -45,8 +45,6 @@ namespace hgl::graph
public:
const AnsiString &GetName ()const{return config->mtl_name;}
const uint32 GetShaderStage ()const{return config->shader_stage_flag_bit;}
bool hasShader (const VkShaderStageFlagBits ss)const{return config->shader_stage_flag_bit&ss;}