Fix issue with freeing resources

This commit is contained in:
Georg Hagen
2024-07-11 13:22:01 +02:00
parent 22cb48be89
commit 313b01db1b
16 changed files with 300 additions and 156 deletions

View File

@@ -18,6 +18,8 @@ namespace OpenVulkano::Vulkan
UniformBuffer* m_buffer = nullptr;
public:
~VulkanCamera() override { if (m_camera) VulkanCamera::Close(); }
void Init(Scene::Camera* camera, UniformBuffer* uniformBuffer)
{
m_camera = camera;
@@ -32,7 +34,10 @@ namespace OpenVulkano::Vulkan
void Close() override
{
m_camera->renderCamera = nullptr;
m_buffer->Close();
m_camera = nullptr;
delete m_buffer;
}
};
}

View File

@@ -22,8 +22,8 @@ namespace OpenVulkano::Vulkan
vk::DeviceSize m_offsets = 0;
public:
VulkanGeometry() : m_geometry(nullptr), m_vertexBuffer(nullptr, nullptr)
, m_indexBuffer(nullptr, nullptr), m_indexType(vk::IndexType::eUint32)
VulkanGeometry() : m_geometry(nullptr), m_vertexBuffer(nullptr)
, m_indexBuffer(nullptr), m_indexType(vk::IndexType::eUint32)
{}
VulkanGeometry(Scene::Geometry* geo, ManagedBuffer::Ptr& vertexBuffer, ManagedBuffer::Ptr& indexBuffer)

View File

@@ -37,6 +37,11 @@ namespace OpenVulkano::Vulkan
texture->renderTexture = this;
}
virtual ~VulkanTexture() override
{
if (m_texture) Close();
}
void Close() override
{
Image::Close();