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