Create swapchain framebuffers
This commit is contained in:
parent
72d32fba6f
commit
b1ac87d304
@ -22,6 +22,7 @@ namespace nf::client::render {
|
|||||||
, m_swapchainImageFormat()
|
, m_swapchainImageFormat()
|
||||||
, m_swapchainImages()
|
, m_swapchainImages()
|
||||||
, m_swapchainImageViews()
|
, m_swapchainImageViews()
|
||||||
|
, m_swapchainFramebuffers()
|
||||||
, m_pipelineLayoutOutput()
|
, m_pipelineLayoutOutput()
|
||||||
, m_pipelineOutput()
|
, m_pipelineOutput()
|
||||||
{
|
{
|
||||||
@ -359,9 +360,27 @@ namespace nf::client::render {
|
|||||||
|
|
||||||
if (vkCreateGraphicsPipelines(m_device, nullptr, 1, &pipelineCI, nullptr, &m_pipelineOutput) != VK_SUCCESS)
|
if (vkCreateGraphicsPipelines(m_device, nullptr, 1, &pipelineCI, nullptr, &m_pipelineOutput) != VK_SUCCESS)
|
||||||
NFError("Could not create graphics pipeline.");
|
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() {
|
RenderEngine::~RenderEngine() {
|
||||||
|
for (int i = 0; i < m_swapchainFramebuffers.size(); i++)
|
||||||
|
vkDestroyFramebuffer(m_device, m_swapchainFramebuffers[i], nullptr);
|
||||||
|
|
||||||
vkDestroyPipeline(m_device, m_pipelineOutput, nullptr);
|
vkDestroyPipeline(m_device, m_pipelineOutput, nullptr);
|
||||||
vkDestroyPipelineLayout(m_device, m_pipelineLayoutOutput, nullptr);
|
vkDestroyPipelineLayout(m_device, m_pipelineLayoutOutput, nullptr);
|
||||||
vkDestroyRenderPass(m_device, m_renderPassOutput, nullptr);
|
vkDestroyRenderPass(m_device, m_renderPassOutput, nullptr);
|
||||||
|
@ -36,6 +36,7 @@ namespace nf::client::render {
|
|||||||
VkFormat m_swapchainImageFormat;
|
VkFormat m_swapchainImageFormat;
|
||||||
std::vector<VkImage> m_swapchainImages;
|
std::vector<VkImage> m_swapchainImages;
|
||||||
std::vector<VkImageView> m_swapchainImageViews;
|
std::vector<VkImageView> m_swapchainImageViews;
|
||||||
|
std::vector<VkFramebuffer> m_swapchainFramebuffers;
|
||||||
|
|
||||||
// Pipelines
|
// Pipelines
|
||||||
VkPipelineLayout m_pipelineLayoutOutput;
|
VkPipelineLayout m_pipelineLayoutOutput;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user