BeginFrame/EndFrame for SwapchainModule/RenderFramework
This commit is contained in:
parent
9f37373631
commit
b775ffa920
@ -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(); ///<主循环
|
||||
|
||||
|
@ -8,6 +8,13 @@
|
||||
#include<hgl/graph/VKQueue.h>
|
||||
#include<hgl/graph/VKPipeline.h>
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
工作:
|
||||
|
||||
1.RT支持多FBO,同交换链一样
|
||||
2.RT内包含CommandBuffer
|
||||
|
||||
|
||||
/**
|
||||
* 渲染目标
|
||||
*/
|
||||
|
@ -30,7 +30,9 @@ public:
|
||||
virtual ~SwapchainModule();
|
||||
|
||||
bool Init() override;
|
||||
void Swap();
|
||||
|
||||
bool BeginFrame();
|
||||
void EndFrame();
|
||||
|
||||
public:
|
||||
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user