Fixed Mesh class and Model class memory leak.

This commit is contained in:
jonnxie 2022-03-22 11:08:38 +08:00
parent c15d44e855
commit 6b316e694f

View file

@ -499,6 +499,10 @@ vkglTF::Mesh::Mesh(vks::VulkanDevice *device, glm::mat4 matrix) {
vkglTF::Mesh::~Mesh() { vkglTF::Mesh::~Mesh() {
vkDestroyBuffer(device->logicalDevice, uniformBuffer.buffer, nullptr); vkDestroyBuffer(device->logicalDevice, uniformBuffer.buffer, nullptr);
vkFreeMemory(device->logicalDevice, uniformBuffer.memory, nullptr); vkFreeMemory(device->logicalDevice, uniformBuffer.memory, nullptr);
for(auto primitive : primitives)
{
delete primitive;
}
} }
/* /*
@ -735,6 +739,9 @@ vkglTF::Model::~Model()
for (auto node : nodes) { for (auto node : nodes) {
delete node; delete node;
} }
for (auto skin : skins) {
delete skin;
}
if (descriptorSetLayoutUbo != VK_NULL_HANDLE) { if (descriptorSetLayoutUbo != VK_NULL_HANDLE) {
vkDestroyDescriptorSetLayout(device->logicalDevice, descriptorSetLayoutUbo, nullptr); vkDestroyDescriptorSetLayout(device->logicalDevice, descriptorSetLayoutUbo, nullptr);
descriptorSetLayoutUbo = VK_NULL_HANDLE; descriptorSetLayoutUbo = VK_NULL_HANDLE;