Implement KRRenderGraph::getFinalRenderPass()

This commit is contained in:
2025-04-08 23:45:12 -07:00
parent 3928e247eb
commit 51d6038187
5 changed files with 18 additions and 1 deletions

View File

@@ -146,6 +146,16 @@ KRRenderPass* KRRenderGraph::getRenderPass(RenderPassType type)
return nullptr;
}
KRRenderPass* KRRenderGraph::getFinalRenderPass()
{
for (KRRenderPass* pass : m_renderPasses) {
if (pass->isFinal()) {
return pass;
}
}
return nullptr;
}
void KRRenderGraph::render(VkCommandBuffer &commandBuffer, KRSurface& surface, KRScene* scene)
{
for(KRRenderPass* pass : m_renderPasses) {

View File

@@ -53,6 +53,7 @@ public:
int addAttachment(const char* name, VkFormat format);
void addRenderPass(KRDevice& device, const RenderPassInfo& info);
KRRenderPass* getRenderPass(RenderPassType type);
KRRenderPass* getFinalRenderPass();
void render(VkCommandBuffer &commandBuffer, KRSurface& surface, KRScene* scene);
void destroy(KRDevice& device);

View File

@@ -103,3 +103,8 @@ RenderPassType KRRenderPass::getType() const
{
return m_info.type;
}
bool KRRenderPass::isFinal() const
{
return m_info.finalPass;
}

View File

@@ -86,6 +86,7 @@ public:
void end(VkCommandBuffer& commandBuffer);
RenderPassType getType() const;
bool isFinal() const;
// private:
VkRenderPass m_renderPass;

View File

@@ -298,7 +298,7 @@ KrResult KRSurface::createSwapChain()
return res;
}
m_swapChain->create(*device, m_surface, m_surfaceFormat, depthImageFormat, swapExtent, imageCount, *m_renderGraph->getRenderPass(RenderPassType::RENDER_PASS_FORWARD_OPAQUE));
m_swapChain->create(*device, m_surface, m_surfaceFormat, depthImageFormat, swapExtent, imageCount, *m_renderGraph->getFinalRenderPass());
return KR_SUCCESS;
}