2024-12-17 13:57:21 +08:00
|
|
|
|
#pragma once
|
2024-10-23 02:09:01 +08:00
|
|
|
|
|
|
|
|
|
#include<hgl/graph/module/RenderModule.h>
|
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
|
|
class SwapchainModule:public GraphModule
|
|
|
|
|
{
|
2024-10-29 00:50:32 +08:00
|
|
|
|
Swapchain *swapchain=nullptr;
|
|
|
|
|
|
|
|
|
|
RTSwapchain *swapchain_rt=nullptr;
|
|
|
|
|
|
2024-11-09 00:58:13 +08:00
|
|
|
|
RenderPass *swapchain_rp=nullptr;
|
|
|
|
|
|
2024-11-12 01:50:40 +08:00
|
|
|
|
RenderCmdBuffer **cmd_buf=nullptr;
|
|
|
|
|
|
2024-11-09 00:10:27 +08:00
|
|
|
|
protected:
|
|
|
|
|
|
2024-11-09 00:58:13 +08:00
|
|
|
|
bool CreateSwapchainFBO();
|
2024-11-09 00:10:27 +08:00
|
|
|
|
bool CreateSwapchain();
|
2024-11-09 19:28:31 +08:00
|
|
|
|
bool CreateSwapchainRenderTarget();
|
|
|
|
|
|
2024-11-12 01:50:40 +08:00
|
|
|
|
void InitRenderCmdBuffer();
|
|
|
|
|
void ClearRenderCmdBuffer();
|
|
|
|
|
|
2024-11-09 19:28:31 +08:00
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
virtual void OnResize(const VkExtent2D &)override; ///<窗口大小改变
|
2024-11-09 00:10:27 +08:00
|
|
|
|
|
2024-10-23 02:09:01 +08:00
|
|
|
|
public:
|
|
|
|
|
|
2024-11-09 00:10:27 +08:00
|
|
|
|
GRAPH_MODULE_CONSTRUCT(SwapchainModule)
|
2024-11-09 00:58:13 +08:00
|
|
|
|
virtual ~SwapchainModule();
|
2024-10-23 02:09:01 +08:00
|
|
|
|
|
2024-12-17 13:57:21 +08:00
|
|
|
|
bool Init(GraphModulesMap *) override;
|
2024-11-11 01:49:48 +08:00
|
|
|
|
|
|
|
|
|
bool BeginFrame();
|
|
|
|
|
void EndFrame();
|
2024-11-11 01:18:28 +08:00
|
|
|
|
|
|
|
|
|
public:
|
2024-11-09 00:10:27 +08:00
|
|
|
|
|
2024-11-09 00:58:13 +08:00
|
|
|
|
RenderPass * GetRenderPass () {return swapchain_rp;}
|
|
|
|
|
|
2024-11-09 00:10:27 +08:00
|
|
|
|
RTSwapchain * GetRenderTarget () {return swapchain_rt;}
|
|
|
|
|
|
|
|
|
|
const VkExtent2D & GetSwapchainSize()const {return swapchain_rt->GetExtent();}
|
2024-11-11 01:18:28 +08:00
|
|
|
|
|
2024-11-14 00:24:13 +08:00
|
|
|
|
RenderCmdBuffer *GetRenderCmdBuffer();
|
|
|
|
|
|
2024-11-09 00:10:27 +08:00
|
|
|
|
};//class SwapchainModule:public GraphModule
|
2024-10-23 02:09:01 +08:00
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_END
|