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; 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) void KRRenderGraph::render(VkCommandBuffer &commandBuffer, KRSurface& surface, KRScene* scene)
{ {
for(KRRenderPass* pass : m_renderPasses) { for(KRRenderPass* pass : m_renderPasses) {

View File

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

View File

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

View File

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

View File

@@ -298,7 +298,7 @@ KrResult KRSurface::createSwapChain()
return res; 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; return KR_SUCCESS;
} }