Create swapchain image views
This commit is contained in:
parent
1824b73d66
commit
f5a06e6ac1
@ -20,6 +20,7 @@ namespace nf::client::render {
|
||||
, m_swapchain()
|
||||
, m_swapchainImageFormat()
|
||||
, m_swapchainImages()
|
||||
, m_swapchainImageViews()
|
||||
{
|
||||
NFLog("Initializing render engine");
|
||||
m_window->setDisplay(m_display);
|
||||
@ -233,6 +234,20 @@ namespace nf::client::render {
|
||||
vkGetSwapchainImagesKHR(m_device, m_swapchain, &numSwapchainImages, nullptr);
|
||||
m_swapchainImages.resize(numSwapchainImages);
|
||||
vkGetSwapchainImagesKHR(m_device, m_swapchain, &numSwapchainImages, m_swapchainImages.data());
|
||||
|
||||
m_swapchainImageViews.resize(numSwapchainImages);
|
||||
for (int i = 0; i < m_swapchainImageViews.size(); i++) {
|
||||
VkImageViewCreateInfo imageViewCI = { VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO };
|
||||
imageViewCI.image = m_swapchainImages[i];
|
||||
imageViewCI.viewType = VK_IMAGE_VIEW_TYPE_2D;
|
||||
imageViewCI.format = m_swapchainImageFormat;
|
||||
imageViewCI.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
imageViewCI.subresourceRange.levelCount = 1;
|
||||
imageViewCI.subresourceRange.layerCount = 1;
|
||||
|
||||
if (vkCreateImageView(m_device, &imageViewCI, nullptr, &m_swapchainImageViews[i]) != VK_SUCCESS)
|
||||
NFError("Could not create Vulkan swapchain image view");
|
||||
}
|
||||
}
|
||||
|
||||
void RenderEngine::createRenderPass() {
|
||||
@ -267,6 +282,10 @@ namespace nf::client::render {
|
||||
|
||||
RenderEngine::~RenderEngine() {
|
||||
vkDestroyRenderPass(m_device, m_renderPassOutput, nullptr);
|
||||
|
||||
for (int i = 0; i < m_swapchainImageViews.size(); i++)
|
||||
vkDestroyImageView(m_device, m_swapchainImageViews[i], nullptr);
|
||||
|
||||
vkDestroySwapchainKHR(m_device, m_swapchain, nullptr);
|
||||
vkDestroyDevice(m_device, nullptr);
|
||||
vkDestroySurfaceKHR(m_instance, m_surface, nullptr);
|
||||
|
@ -21,6 +21,7 @@ namespace nf::client::render {
|
||||
std::shared_ptr<Window> m_window;
|
||||
DisplayConfig m_display;
|
||||
|
||||
// Global state
|
||||
VkInstance m_instance;
|
||||
VkSurfaceKHR m_surface;
|
||||
VkPhysicalDevice m_physicalDevice;
|
||||
@ -28,8 +29,11 @@ namespace nf::client::render {
|
||||
VkDevice m_device;
|
||||
VkQueue m_queueGraphics, m_queuePresent;
|
||||
VkRenderPass m_renderPassOutput;
|
||||
|
||||
// Swapchain
|
||||
VkSwapchainKHR m_swapchain;
|
||||
VkFormat m_swapchainImageFormat;
|
||||
std::vector<VkImage> m_swapchainImages;
|
||||
std::vector<VkImageView> m_swapchainImageViews;
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user