Fix issue freeing node resources

This commit is contained in:
2024-07-04 12:12:51 +02:00
parent b4619be858
commit de12a1d637

View File

@@ -19,6 +19,11 @@ namespace OpenVulkano::Vulkan
Scene::Node* node = nullptr; Scene::Node* node = nullptr;
UniformBuffer* buffer = nullptr; UniformBuffer* buffer = nullptr;
~VulkanNode() override
{
if (node) VulkanNode::Close();
}
virtual void Init(Scene::Node* node, UniformBuffer* uniformBuffer) virtual void Init(Scene::Node* node, UniformBuffer* uniformBuffer)
{ {
this->node = node; this->node = node;
@@ -30,7 +35,13 @@ namespace OpenVulkano::Vulkan
buffer->Record(context); buffer->Record(context);
} }
void Close() override {} void Close() override
{
if (node) node->renderNode = nullptr;
delete buffer;
node = nullptr;
buffer = nullptr;
}
}; };
struct VulkanNodeDynamic : VulkanNode struct VulkanNodeDynamic : VulkanNode
@@ -52,7 +63,5 @@ namespace OpenVulkano::Vulkan
} }
buffer->Record(context); buffer->Record(context);
} }
void Close() override{}
}; };
} }