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{} }; }