Fix issue freeing node resources
This commit is contained in:
@@ -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{}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user