From de12a1d637813b8472ef048ec30fb0c82da8e743 Mon Sep 17 00:00:00 2001 From: GeorgH93 Date: Thu, 4 Jul 2024 12:12:51 +0200 Subject: [PATCH] Fix issue freeing node resources --- openVulkanoCpp/Vulkan/Scene/VulkanNode.hpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/openVulkanoCpp/Vulkan/Scene/VulkanNode.hpp b/openVulkanoCpp/Vulkan/Scene/VulkanNode.hpp index fdab92a..73028ba 100644 --- a/openVulkanoCpp/Vulkan/Scene/VulkanNode.hpp +++ b/openVulkanoCpp/Vulkan/Scene/VulkanNode.hpp @@ -19,6 +19,11 @@ namespace OpenVulkano::Vulkan Scene::Node* node = nullptr; UniformBuffer* buffer = nullptr; + ~VulkanNode() override + { + if (node) VulkanNode::Close(); + } + virtual void Init(Scene::Node* node, UniformBuffer* uniformBuffer) { this->node = node; @@ -30,7 +35,13 @@ namespace OpenVulkano::Vulkan buffer->Record(context); } - void Close() override {} + void Close() override + { + if (node) node->renderNode = nullptr; + delete buffer; + node = nullptr; + buffer = nullptr; + } }; struct VulkanNodeDynamic : VulkanNode @@ -52,7 +63,5 @@ namespace OpenVulkano::Vulkan } buffer->Record(context); } - - void Close() override{} }; }