Create swapchain framebuffers

This commit is contained in:
Grayson Riffe 2025-02-11 19:33:58 -06:00
parent 72d32fba6f
commit b1ac87d304
2 changed files with 20 additions and 0 deletions

View File

@ -22,6 +22,7 @@ namespace nf::client::render {
, m_swapchainImageFormat()
, m_swapchainImages()
, m_swapchainImageViews()
, m_swapchainFramebuffers()
, m_pipelineLayoutOutput()
, m_pipelineOutput()
{
@ -359,9 +360,27 @@ namespace nf::client::render {
if (vkCreateGraphicsPipelines(m_device, nullptr, 1, &pipelineCI, nullptr, &m_pipelineOutput) != VK_SUCCESS)
NFError("Could not create graphics pipeline.");
// TODO: For now, create swapchain framebuffers
m_swapchainFramebuffers.resize(m_swapchainImageViews.size());
for (int i = 0; i < m_swapchainImageViews.size(); i++) {
VkFramebufferCreateInfo framebufferCI = { VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO };
framebufferCI.renderPass = m_renderPassOutput;
framebufferCI.attachmentCount = 1;
framebufferCI.pAttachments = &m_swapchainImageViews[i];
framebufferCI.width = m_display.width;
framebufferCI.height = m_display.height;
framebufferCI.layers = 1;
if (vkCreateFramebuffer(m_device, &framebufferCI, nullptr, &m_swapchainFramebuffers[i]) != VK_SUCCESS)
NFError("Could not create framebuffer.");
}
}
RenderEngine::~RenderEngine() {
for (int i = 0; i < m_swapchainFramebuffers.size(); i++)
vkDestroyFramebuffer(m_device, m_swapchainFramebuffers[i], nullptr);
vkDestroyPipeline(m_device, m_pipelineOutput, nullptr);
vkDestroyPipelineLayout(m_device, m_pipelineLayoutOutput, nullptr);
vkDestroyRenderPass(m_device, m_renderPassOutput, nullptr);

View File

@ -36,6 +36,7 @@ namespace nf::client::render {
VkFormat m_swapchainImageFormat;
std::vector<VkImage> m_swapchainImages;
std::vector<VkImageView> m_swapchainImageViews;
std::vector<VkFramebuffer> m_swapchainFramebuffers;
// Pipelines
VkPipelineLayout m_pipelineLayoutOutput;