diff --git a/CMSceneGraph b/CMSceneGraph index 32472ad3..5a6f171f 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit 32472ad33cf7a8f36a9aadb90ef84b406c585f1c +Subproject commit 5a6f171f90dbd1001e5fc6c696fecc54c57cb1a2 diff --git a/example/Vulkan/texture_quad.cpp b/example/Vulkan/texture_quad.cpp index 1f49aa38..05aa2105 100644 --- a/example/Vulkan/texture_quad.cpp +++ b/example/Vulkan/texture_quad.cpp @@ -43,6 +43,7 @@ private: Texture2D * texture =nullptr; Sampler * sampler =nullptr; + Material * material =nullptr; MaterialInstance * material_instance =nullptr; Renderable * render_obj =nullptr; Pipeline * pipeline =nullptr; @@ -58,13 +59,13 @@ private: AutoDelete mci=mtl::CreatePureTexture2D(&cfg); - material_instance=db->CreateMaterialInstance(mci); + material=db->CreateMaterial(mci); - if(!material_instance) + if(!material) return(false); // pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d")); - pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D,Prim::Fan); //等同上一行,为Framework重载,默认使用swapchain的render target + pipeline=CreatePipeline(material,InlinePipeline::Solid2D,Prim::Fan); //等同上一行,为Framework重载,默认使用swapchain的render target if(!pipeline) return(false); @@ -74,12 +75,14 @@ private: sampler=db->CreateSampler(); - if(!material_instance->BindImageSampler(DescriptorSetType::PerMaterial, ///<描述符合集 - mtl::SamplerName::Color, ///<采样器名称 - texture, ///<纹理 - sampler)) ///<采样器 + if(!material->BindImageSampler( DescriptorSetType::PerMaterial, ///<描述符合集 + mtl::SamplerName::Color, ///<采样器名称 + texture, ///<纹理 + sampler)) ///<采样器 return(false); + material_instance=db->CreateMaterialInstance(material); + return(true); } diff --git a/inc/hgl/graph/mtl/2d/Material2DCreateConfig.h b/inc/hgl/graph/mtl/2d/Material2DCreateConfig.h index 0a34a0eb..468585fa 100644 --- a/inc/hgl/graph/mtl/2d/Material2DCreateConfig.h +++ b/inc/hgl/graph/mtl/2d/Material2DCreateConfig.h @@ -11,6 +11,8 @@ struct Material2DCreateConfig:public MaterialCreateConfig bool local_to_world; ///<包含LocalToWorld矩阵 + + public: Material2DCreateConfig(const GPUDeviceAttribute *da,const AnsiString &name):MaterialCreateConfig(da,name)