2025-01-25 17:17:55 +08:00
|
|
|
|
#pragma once
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
2025-01-19 19:42:38 +08:00
|
|
|
|
#include<hgl/graph/module/GraphModule.h>
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_BEGIN
|
|
|
|
|
|
2025-01-19 19:42:38 +08:00
|
|
|
|
GRAPH_MODULE_CLASS(SwapchainModule)
|
2025-01-19 18:13:06 +08:00
|
|
|
|
{
|
2025-01-25 20:27:26 +08:00
|
|
|
|
TextureManager * tex_manager =nullptr;
|
|
|
|
|
RenderTargetManager * rt_manager =nullptr;
|
|
|
|
|
RenderPassManager * rp_manager =nullptr;
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
2025-01-25 20:27:26 +08:00
|
|
|
|
RenderPass * sc_render_pass =nullptr;
|
|
|
|
|
|
2025-01-26 23:22:25 +08:00
|
|
|
|
SwapchainRenderTarget * sc_render_target=nullptr;
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
2025-01-26 23:47:04 +08:00
|
|
|
|
bool CreateSwapchainFBO(Swapchain *);
|
|
|
|
|
Swapchain *CreateSwapchain();
|
2025-01-19 18:13:06 +08:00
|
|
|
|
bool CreateSwapchainRenderTarget();
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
virtual void OnResize(const VkExtent2D &)override; ///<窗口大小改变
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2025-02-05 22:44:58 +08:00
|
|
|
|
SwapchainModule(RenderFramework *,TextureManager *tm,RenderTargetManager *rtm,RenderPassManager *rpm);
|
2025-01-19 18:13:06 +08:00
|
|
|
|
virtual ~SwapchainModule();
|
|
|
|
|
|
2025-01-28 20:03:44 +08:00
|
|
|
|
// RenderCmdBuffer *BeginRender();
|
2025-01-26 12:13:51 +08:00
|
|
|
|
|
2025-01-28 20:03:44 +08:00
|
|
|
|
//void EndRender();
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2025-01-26 23:22:25 +08:00
|
|
|
|
RenderPass * GetRenderPass ()const{return sc_render_pass;}
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
2025-03-06 01:23:39 +08:00
|
|
|
|
bool GetSwapchainSize(VkExtent2D *)const;
|
2025-01-25 17:17:55 +08:00
|
|
|
|
|
2025-01-26 23:22:25 +08:00
|
|
|
|
SwapchainRenderTarget * GetRenderTarget ()const{return sc_render_target;}
|
2025-03-12 01:25:49 +08:00
|
|
|
|
bool AcquireNextImage()const;
|
2025-01-19 23:22:26 +08:00
|
|
|
|
};//class SwapchainModule:public GraphModule
|
2025-01-19 18:13:06 +08:00
|
|
|
|
|
|
|
|
|
VK_NAMESPACE_END
|