added UpdatePipeline() at RenderableInstance

This commit is contained in:
hyzboy 2021-06-20 02:15:17 +08:00
parent 9abcda6aa6
commit 6a56909341
2 changed files with 13 additions and 4 deletions

View File

@ -41,6 +41,14 @@ private:
private: private:
bool RecreatePipeline()
{
// pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d"));
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D); //等同上一行为Framework重载默认使用swapchain的render target
return pipeline;
}
bool InitMaterial() bool InitMaterial()
{ {
material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D")); material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/VertexColor2D"));
@ -48,10 +56,7 @@ private:
if(!material_instance) if(!material_instance)
return(false); return(false);
// pipeline=db->CreatePipeline(material_instance,sc_render_target,OS_TEXT("res/pipeline/solid2d")); return RecreatePipeline();
pipeline=CreatePipeline(material_instance,InlinePipeline::Solid2D); //等同上一行为Framework重载默认使用swapchain的render target
return pipeline;
} }
bool InitUBO() bool InitUBO()
@ -125,6 +130,8 @@ public:
ubo_camera_info->Write(&cam.info); ubo_camera_info->Write(&cam.info);
RecreatePipeline();
render_instance->UpdatePipeline(pipeline);
BuildCommandBuffer(render_instance); BuildCommandBuffer(render_instance);
} }
};//class TestApp:public VulkanApplicationFramework };//class TestApp:public VulkanApplicationFramework

View File

@ -34,6 +34,8 @@ public:
virtual ~RenderableInstance(); virtual ~RenderableInstance();
void UpdatePipeline (Pipeline *p){pipeline=p;}
Pipeline * GetPipeline (){return pipeline;} Pipeline * GetPipeline (){return pipeline;}
VkPipelineLayout GetPipelineLayout (){return mat_inst->GetMaterial()->GetPipelineLayout();} VkPipelineLayout GetPipelineLayout (){return mat_inst->GetMaterial()->GetPipelineLayout();}
Material * GetMaterial (){return mat_inst->GetMaterial();} Material * GetMaterial (){return mat_inst->GetMaterial();}