From c967672a4d9ca72b5072af20d15e667fc6d321e7 Mon Sep 17 00:00:00 2001 From: Sebastian Gaida <sebastian-gaida@gmx.de> Date: Mon, 30 Aug 2021 19:01:30 +0200 Subject: [PATCH] [#89] fixed destruction of Swapchain and Surface --- src/vkcv/SwapchainManager.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/vkcv/SwapchainManager.cpp b/src/vkcv/SwapchainManager.cpp index ef8f9c98..6295c103 100644 --- a/src/vkcv/SwapchainManager.cpp +++ b/src/vkcv/SwapchainManager.cpp @@ -34,8 +34,16 @@ namespace vkcv { vkcv_log(LogLevel::ERROR, "Invalid id"); return; } - m_context->getDevice().destroySwapchainKHR(m_swapchains[id].getSwapchain()); - m_context->getInstance().destroySurfaceKHR(m_swapchains[id].getSurface()); + Swapchain& swapchain = m_swapchains[id]; + + if(swapchain.m_Swapchain){ + m_context->getDevice().destroySwapchainKHR(swapchain.m_Swapchain); + } + if(swapchain.m_Surface.handle) { + m_context->getInstance().destroySurfaceKHR(swapchain.m_Surface.handle); + } + swapchain.m_Swapchain = nullptr; + swapchain.m_Surface.handle = nullptr; } void SwapchainManager::signalRecreation(const SwapchainHandle handle) { -- GitLab