Fix issue with freeing resources
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -37,6 +37,11 @@ namespace OpenVulkano::Vulkan
|
||||
texture->renderTexture = this;
|
||||
}
|
||||
|
||||
virtual ~VulkanTexture() override
|
||||
{
|
||||
if (m_texture) Close();
|
||||
}
|
||||
|
||||
void Close() override
|
||||
{
|
||||
Image::Close();
|
||||
|
||||
Reference in New Issue
Block a user