From 712d4d60e56811371eaf6f8b4b825aef23c049aa Mon Sep 17 00:00:00 2001 From: Jayden Grubb Date: Wed, 30 Apr 2025 17:48:05 +1000 Subject: [PATCH] Add Framebuffer creation to RenderDriver::resize_swapchain() --- engine/src/drivers/vulkan/render_driver.cpp | 22 ++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/engine/src/drivers/vulkan/render_driver.cpp b/engine/src/drivers/vulkan/render_driver.cpp index 0d7113c..555b47c 100644 --- a/engine/src/drivers/vulkan/render_driver.cpp +++ b/engine/src/drivers/vulkan/render_driver.cpp @@ -564,7 +564,27 @@ void VulkanRenderDriver::resize_swapchain(SwapchainID p_swapchain) { } } - // TODO: Create framebuffers + VkFramebufferCreateInfo fb_create {}; + fb_create.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; + fb_create.renderPass = p_swapchain->render_pass->handle; + fb_create.attachmentCount = 1; + fb_create.width = extent.width; + fb_create.height = extent.height; + fb_create.layers = 1; // TODO: Support VR + + p_swapchain->framebuffers.resize(image_count); + for (u32 i = 0; i < image_count; i++) { + fb_create.pAttachments = &p_swapchain->image_views[i]; + if (vkCreateFramebuffer( + m_device, + &fb_create, + get_allocator(VK_OBJECT_TYPE_FRAMEBUFFER), + &p_swapchain->framebuffers[i] + ) + != VK_SUCCESS) { + throw std::runtime_error("Failed to create framebuffer"); + } + } } RenderPassID VulkanRenderDriver::get_swapchain_render_pass(SwapchainID p_swapchain) const {