BeginFrame/EndFrame for SwapchainModule/RenderFramework

This commit is contained in:
hyzboy 2024-11-11 01:49:48 +08:00
parent 9f37373631
commit b775ffa920
5 changed files with 41 additions and 13 deletions

View File

@ -97,8 +97,8 @@ public:
*/
virtual void Update(const double delta_time){}
virtual void BeginFrame(){}; ///<开始当前帧
virtual void EndFrame(){}; ///<当前帧结束
virtual void BeginFrame(); ///<开始当前帧
virtual void EndFrame(); ///<当前帧结束
virtual void MainLoop(); ///<主循环

View File

@ -8,6 +8,13 @@
#include<hgl/graph/VKQueue.h>
#include<hgl/graph/VKPipeline.h>
VK_NAMESPACE_BEGIN
1.RT支持多FBO,
2.RT内包含CommandBuffer
/**
*
*/

View File

@ -30,7 +30,9 @@ public:
virtual ~SwapchainModule();
bool Init() override;
void Swap();
bool BeginFrame();
void EndFrame();
public:

View File

@ -31,13 +31,27 @@ RenderFramework::~RenderFramework()
void RenderFramework::StartTime()
{
last_time=cur_time=GetDoubleTime();
frame_count++;
}
void RenderFramework::BeginFrame()
{
cur_time=GetDoubleTime();
swapchain_module->BeginFrame();
}
void RenderFramework::EndFrame()
{
swapchain_module->EndFrame();
device->WaitIdle();
last_time=cur_time;
++frame_count;
}
void RenderFramework::MainLoop()
{
cur_time=GetDoubleTime();
const double delta_time=cur_time-last_time;
for(auto rm:module_list)
@ -61,10 +75,6 @@ void RenderFramework::MainLoop()
}
EndFrame();
swapchain_module->Swap();
last_time=cur_time;
++frame_count;
}
bool RenderFramework::Init()

View File

@ -235,14 +235,23 @@ void SwapchainModule::OnResize(const VkExtent2D &extent)
CreateSwapchainRenderTarget();
}
void SwapchainModule::Swap()
bool SwapchainModule::BeginFrame()
{
int index=swapchain_rt->AcquireNextImage();
if(index<0||index>=swapchain->image_count)
return;
return(false);
return(true);
}
void SwapchainModule::EndFrame()
{
int index=swapchain_rt->GetCurrentFrameIndices();
swapchain_rt->Submit();
}
VK_NAMESPACE_END