diff --git a/crates/renderer/src/buffers.rs b/crates/renderer/src/buffers.rs index 0aef8e2..e74d1f2 100644 --- a/crates/renderer/src/buffers.rs +++ b/crates/renderer/src/buffers.rs @@ -73,6 +73,13 @@ define_device_owned_handle! { } } +impl Eq for Buffer {} +impl PartialEq for Buffer { + fn eq(&self, other: &Self) -> bool { + self.inner == other.inner + } +} + impl Buffer { pub fn new(device: Device, desc: BufferDesc) -> VkResult { let queue_families = device.queue_families().family_indices(desc.queue_families); diff --git a/crates/renderer/src/device.rs b/crates/renderer/src/device.rs index a072c54..806271d 100644 --- a/crates/renderer/src/device.rs +++ b/crates/renderer/src/device.rs @@ -337,6 +337,13 @@ pub struct DeviceOwnedDebugObject { name: Option>, } +impl Eq for DeviceOwnedDebugObject {} +impl PartialEq for DeviceOwnedDebugObject { + fn eq(&self, other: &Self) -> bool { + std::sync::Arc::ptr_eq(&self.device.0, &other.device.0) && self.object == other.object + } +} + impl std::fmt::Debug for DeviceOwnedDebugObject { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut fmt = f.debug_struct(core::any::type_name::()); diff --git a/crates/renderer/src/images.rs b/crates/renderer/src/images.rs index 8295fb2..674e021 100644 --- a/crates/renderer/src/images.rs +++ b/crates/renderer/src/images.rs @@ -143,6 +143,13 @@ define_device_owned_handle! { } } +impl Eq for Image {} +impl PartialEq for Image { + fn eq(&self, other: &Self) -> bool { + self.inner == other.inner + } +} + impl Image { pub fn new(device: Device, desc: ImageDesc) -> VkResult { let ImageDesc {