feat(renderer): implement Drop trait for resource cleanup

Ensured that the Logical Device, Debug Messenger, and Instance are destroyed in the correct reverse order when the Renderer is dropped. Added documentation for the cleanup process.
This commit is contained in:
Serkyo 2026-04-30 14:26:18 +02:00
parent 92764f6f2d
commit 70e08dd883

View file

@ -175,6 +175,21 @@ impl Renderer {
} }
} }
/// Ensures all Vulkan resources are destroyed in the correct order.
impl Drop for Renderer {
fn drop(&mut self) {
unsafe {
self.device.destroy_device(None);
if let Some(utils) = &self.debug_utils {
utils.destroy_debug_utils_messenger(self.debug_messenger, None);
}
self.instance.destroy_instance(None);
}
}
}
/// The callback function invoked by Vulkan's validation layers. /// The callback function invoked by Vulkan's validation layers.
/// ///
/// This function translates Vulkan debug messages into `tracing` events. /// This function translates Vulkan debug messages into `tracing` events.