Fix issue with freeing geometries

This commit is contained in:
Georg Hagen
2024-07-03 15:54:05 +02:00
parent 002206e9d6
commit 5b6fde2aaf
3 changed files with 7 additions and 0 deletions

View File

@@ -85,6 +85,8 @@ namespace OpenVulkano::Vulkan
cmdPools = nullptr;
cmdBuffers = nullptr;
semaphores = nullptr;
geometries.clear();
nodes.clear();
device.destroyDescriptorPool(descriptorPool);
allocations.clear();
lastAllocation = nullptr;
@@ -134,6 +136,7 @@ namespace OpenVulkano::Vulkan
CreateDeviceOnlyBufferWithData(Utils::EnumAsInt(geometry->indexType) * geometry->GetIndexCount(), vk::BufferUsageFlagBits::eIndexBuffer, geometry->GetIndices()),
freeFunction);
VulkanGeometry* vkGeo = new VulkanGeometry(geometry, vertexBuffer, indexBuffer);
geometries.emplace_back(vkGeo);
geometry->renderGeo = vkGeo;
return vkGeo;
}
@@ -176,6 +179,7 @@ namespace OpenVulkano::Vulkan
uBuffer->Init(buffer, frameSize, allocSize, GetDescriptorLayoutSet(Scene::Node::DESCRIPTOR_SET_LAYOUT_BINDING), Scene::Node::DESCRIPTOR_SET_LAYOUT_BINDING, 0);
vkNode->Init(node, uBuffer);
node->renderNode = vkNode;
nodes.emplace_back(vkNode);
}
return static_cast<VulkanNode*>(node->renderNode);
}