From 9334e8fa9efaaacb18f7ef7aa00ca56e3d995f71 Mon Sep 17 00:00:00 2001 From: Janis Date: Sun, 5 Jan 2025 01:13:48 +0100 Subject: [PATCH] Image: allow alias on &Arc, then clone parent or self --- crates/renderer/src/images.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/renderer/src/images.rs b/crates/renderer/src/images.rs index 674e021..2974a33 100644 --- a/crates/renderer/src/images.rs +++ b/crates/renderer/src/images.rs @@ -2,7 +2,7 @@ use std::{borrow::Cow, collections::HashMap, sync::Arc}; use crate::{ define_device_owned_handle, - device::{self, DeviceOwned, QueueFlags}, + device::{DeviceOwned, QueueFlags}, }; use super::Device; @@ -237,8 +237,8 @@ impl Image { self.size.depth } - fn get_parent(self: Arc) -> Arc { - self.parent.clone().unwrap_or(self) + fn get_parent(self: &Arc) -> Arc { + self.parent.clone().unwrap_or_else(|| self.clone()) } fn get_alloc(&self) -> Option<&vk_mem::Allocation> { @@ -247,7 +247,7 @@ impl Image { .or(self.parent.as_ref().and_then(|image| image.get_alloc())) } - pub unsafe fn get_alias(self: Arc, desc: ImageDesc) -> VkResult> { + pub unsafe fn get_alias(self: &Arc, desc: ImageDesc) -> VkResult> { self.get_parent().get_alias_inner(desc) }