VulkanAppFramework增加SetClearColor函数,并产生对应功能。

This commit is contained in:
hyzboy 2020-10-18 19:12:00 +08:00
parent 217f712ca5
commit 4822c9ce53
3 changed files with 16 additions and 3 deletions

2
CMCore

@ -1 +1 @@
Subproject commit 1f1d1b80350a40bfeaf50ab6cf8c6be8a613c374 Subproject commit 74d603fd234daca29114b7b23245604a1bb5170c

View File

@ -140,7 +140,7 @@ public:
rect.material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/Texture2D")); rect.material_instance=db->CreateMaterialInstance(OS_TEXT("res/material/Texture2D"));
if(!rect.material_instance)return(false); if(!rect.material_instance)return(false);
rect.pipeline=CreatePipeline(rect.material_instance,vulkan::InlinePipeline::Solid2D); rect.pipeline=CreatePipeline(rect.material_instance,vulkan::InlinePipeline::Alpha2D);
if(!rect.pipeline)return(false); if(!rect.pipeline)return(false);
rect.sampler=db->CreateSampler(); rect.sampler=db->CreateSampler();
@ -170,6 +170,8 @@ public:
if(!VulkanApplicationFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT)) if(!VulkanApplicationFramework::Init(SCREEN_WIDTH,SCREEN_HEIGHT))
return(false); return(false);
SetClearColor(COLOR::MozillaCharcoal);
if(!InitOffscreen()) if(!InitOffscreen())
return(false); return(false);

View File

@ -55,6 +55,8 @@ protected:
vulkan::CommandBuffer ** cmd_buf =nullptr; vulkan::CommandBuffer ** cmd_buf =nullptr;
Color4f clear_color;
protected: protected:
vulkan::Database * db =nullptr; vulkan::Database * db =nullptr;
@ -77,6 +79,8 @@ public:
{ {
hgl_zero(key_status); hgl_zero(key_status);
clear_color.Zero();
#ifdef _DEBUG #ifdef _DEBUG
if(!vulkan::CheckStrideBytesByFormat()) if(!vulkan::CheckStrideBytesByFormat())
return(false); return(false);
@ -187,6 +191,11 @@ public:
cb->End(); cb->End();
} }
void SetClearColor(COLOR cc)
{
clear_color.Use(cc,1.0);
}
void BuildCommandBuffer(uint32_t index,vulkan::RenderableInstance *ri) void BuildCommandBuffer(uint32_t index,vulkan::RenderableInstance *ri)
{ {
if(!ri) if(!ri)
@ -196,6 +205,8 @@ public:
vulkan::CommandBuffer *cb=cmd_buf[index]; vulkan::CommandBuffer *cb=cmd_buf[index];
cb->SetClearColor(0,clear_color.r,clear_color.g,clear_color.b);
cb->Begin(); cb->Begin();
cb->BindFramebuffer(sc_render_target->GetRenderPass(),sc_render_target->GetFramebuffer(index)); cb->BindFramebuffer(sc_render_target->GetRenderPass(),sc_render_target->GetFramebuffer(index));
cb->BindPipeline(ri->GetPipeline()); cb->BindPipeline(ri->GetPipeline());