diff --git a/inc/hgl/WorkObject.h b/inc/hgl/WorkObject.h index 3869e9e7..cedfcc02 100644 --- a/inc/hgl/WorkObject.h +++ b/inc/hgl/WorkObject.h @@ -78,6 +78,11 @@ namespace hgl public: + graph::Material *CreateMaterial(const AnsiString &mi_name,const graph::mtl::MaterialCreateInfo *mci) + { + return render_framework?render_framework->CreateMaterial(mi_name,mci):nullptr; + } + #define WO_FUNC_FROM_RENDER_FRAMEWORK(name,return_type) template return_type name(ARGS...args){return render_framework?render_framework->name(args...):nullptr;} WO_FUNC_FROM_RENDER_FRAMEWORK(CreatePipeline,graph::Pipeline *) diff --git a/inc/hgl/graph/RenderFramework.h b/inc/hgl/graph/RenderFramework.h index 115d0587..d5f274fd 100644 --- a/inc/hgl/graph/RenderFramework.h +++ b/inc/hgl/graph/RenderFramework.h @@ -181,6 +181,20 @@ public: return GetDefaultRenderPass()->CreatePipeline(args...); } + graph::Material *CreateMaterial(const AnsiString &mi_name,const graph::mtl::MaterialCreateInfo *mci) + { + return render_resource->CreateMaterial(mi_name,mci); + } + + template + graph::MaterialInstance *CreateMaterialInstance(graph::Material *mtl,const graph::VILConfig *vil_config=nullptr,const T *data=nullptr) + { + if(!mtl) + return(nullptr); + + return render_resource->CreateMaterialInstance(mtl,vil_config,data); + } + graph::MaterialInstance *CreateMaterialInstance(const AnsiString &mi_name,const graph::mtl::MaterialCreateInfo *mci,const graph::VILConfig *vil_cfg=nullptr) { return render_resource->CreateMaterialInstance(mi_name,mci,vil_cfg);