diff --git a/openVulkanoCpp/Vulkan/Renderer.cpp b/openVulkanoCpp/Vulkan/Renderer.cpp index bdc3189..92b57a0 100644 --- a/openVulkanoCpp/Vulkan/Renderer.cpp +++ b/openVulkanoCpp/Vulkan/Renderer.cpp @@ -32,7 +32,9 @@ namespace OpenVulkano::Vulkan for (int i = 0; i < context.swapChain.GetImageCount(); i++) { waitSemaphores.emplace_back(); - waitSemaphores[i].renderComplete.push_back(context.device->device.createSemaphore({})); + vk::Semaphore sema = context.device->device.createSemaphore({}); + semaphores.push_back(sema); + waitSemaphores[i].renderComplete.push_back(sema); waitSemaphores[i].renderReady.resize(2); } resourceManager.Init(&context, context.swapChain.GetImageCount()); @@ -73,9 +75,9 @@ namespace OpenVulkano::Vulkan void Renderer::Close() { context.device->WaitIdle(); - for (int i = 0; i < context.swapChain.GetImageCount(); i++) + for (auto& sema : semaphores) { - //context.device->device.destroySemaphore(waitSemaphores[i]); + context.device->device.destroySemaphore(sema); } uiRenderer.Close(); resourceManager.Close(); diff --git a/openVulkanoCpp/Vulkan/Renderer.hpp b/openVulkanoCpp/Vulkan/Renderer.hpp index f981bae..39e1d2d 100644 --- a/openVulkanoCpp/Vulkan/Renderer.hpp +++ b/openVulkanoCpp/Vulkan/Renderer.hpp @@ -30,6 +30,7 @@ namespace OpenVulkano::Vulkan { Context context; std::shared_ptr logger; + std::vector semaphores; std::vector waitSemaphores; Scene::Scene* scene = nullptr; ResourceManager resourceManager;