Create swapchain image views
This commit is contained in:
parent
1824b73d66
commit
f5a06e6ac1
@ -20,6 +20,7 @@ namespace nf::client::render {
|
|||||||
, m_swapchain()
|
, m_swapchain()
|
||||||
, m_swapchainImageFormat()
|
, m_swapchainImageFormat()
|
||||||
, m_swapchainImages()
|
, m_swapchainImages()
|
||||||
|
, m_swapchainImageViews()
|
||||||
{
|
{
|
||||||
NFLog("Initializing render engine");
|
NFLog("Initializing render engine");
|
||||||
m_window->setDisplay(m_display);
|
m_window->setDisplay(m_display);
|
||||||
@ -233,6 +234,20 @@ namespace nf::client::render {
|
|||||||
vkGetSwapchainImagesKHR(m_device, m_swapchain, &numSwapchainImages, nullptr);
|
vkGetSwapchainImagesKHR(m_device, m_swapchain, &numSwapchainImages, nullptr);
|
||||||
m_swapchainImages.resize(numSwapchainImages);
|
m_swapchainImages.resize(numSwapchainImages);
|
||||||
vkGetSwapchainImagesKHR(m_device, m_swapchain, &numSwapchainImages, m_swapchainImages.data());
|
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() {
|
void RenderEngine::createRenderPass() {
|
||||||
@ -267,6 +282,10 @@ namespace nf::client::render {
|
|||||||
|
|
||||||
RenderEngine::~RenderEngine() {
|
RenderEngine::~RenderEngine() {
|
||||||
vkDestroyRenderPass(m_device, m_renderPassOutput, nullptr);
|
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);
|
vkDestroySwapchainKHR(m_device, m_swapchain, nullptr);
|
||||||
vkDestroyDevice(m_device, nullptr);
|
vkDestroyDevice(m_device, nullptr);
|
||||||
vkDestroySurfaceKHR(m_instance, m_surface, nullptr);
|
vkDestroySurfaceKHR(m_instance, m_surface, nullptr);
|
||||||
|
@ -21,6 +21,7 @@ namespace nf::client::render {
|
|||||||
std::shared_ptr<Window> m_window;
|
std::shared_ptr<Window> m_window;
|
||||||
DisplayConfig m_display;
|
DisplayConfig m_display;
|
||||||
|
|
||||||
|
// Global state
|
||||||
VkInstance m_instance;
|
VkInstance m_instance;
|
||||||
VkSurfaceKHR m_surface;
|
VkSurfaceKHR m_surface;
|
||||||
VkPhysicalDevice m_physicalDevice;
|
VkPhysicalDevice m_physicalDevice;
|
||||||
@ -28,8 +29,11 @@ namespace nf::client::render {
|
|||||||
VkDevice m_device;
|
VkDevice m_device;
|
||||||
VkQueue m_queueGraphics, m_queuePresent;
|
VkQueue m_queueGraphics, m_queuePresent;
|
||||||
VkRenderPass m_renderPassOutput;
|
VkRenderPass m_renderPassOutput;
|
||||||
|
|
||||||
|
// Swapchain
|
||||||
VkSwapchainKHR m_swapchain;
|
VkSwapchainKHR m_swapchain;
|
||||||
VkFormat m_swapchainImageFormat;
|
VkFormat m_swapchainImageFormat;
|
||||||
std::vector<VkImage> m_swapchainImages;
|
std::vector<VkImage> m_swapchainImages;
|
||||||
|
std::vector<VkImageView> m_swapchainImageViews;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user