diff --git a/inc/hgl/graph/VKRenderResource.h b/inc/hgl/graph/VKRenderResource.h index f29f4f7c..219a987d 100644 --- a/inc/hgl/graph/VKRenderResource.h +++ b/inc/hgl/graph/VKRenderResource.h @@ -95,6 +95,7 @@ public: //Material MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg=nullptr); MaterialInstance * CreateMaterialInstance(const OSString &,const VILConfig *vil_cfg=nullptr); + MaterialInstance * CreateMaterialInstance(const hgl::shadergen::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr); Primitive * CreatePrimitive(const uint32_t vertex_count=0); diff --git a/src/SceneGraph/Vulkan/VKRenderResource.cpp b/src/SceneGraph/Vulkan/VKRenderResource.cpp index dc763152..3fb6348e 100644 --- a/src/SceneGraph/Vulkan/VKRenderResource.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResource.cpp @@ -72,6 +72,16 @@ MaterialInstance *RenderResource::CreateMaterialInstance(const OSString &mtl_fil return CreateMaterialInstance(mtl,vil_cfg); } +MaterialInstance *RenderResource::CreateMaterialInstance(const hgl::shadergen::MaterialCreateInfo *mci,const VILConfig *vil_cfg) +{ + Material *mtl=this->CreateMaterial(mci); + + if(!mtl) + return(nullptr); + + return CreateMaterialInstance(mtl,vil_cfg); +} + Primitive *RenderResource::CreatePrimitive(const uint32_t vertex_count) { if(!vertex_count)return(nullptr);