From 0f556fc054bc65dc97b8083aa166e262fcd7d875 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Sun, 15 Feb 2026 14:13:30 +0100 Subject: [PATCH] gfx: return formats by reference --- src/drm_feedback.rs | 2 +- src/gfx_api.rs | 2 +- src/gfx_apis/gl/renderer/context.rs | 6 +++--- src/gfx_apis/vulkan.rs | 4 ++-- src/ifs/zwp_linux_buffer_params_v1.rs | 2 +- src/it/test_gfx_api.rs | 4 ++-- src/portal/ptl_display.rs | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/drm_feedback.rs b/src/drm_feedback.rs index e83a092d..7ac9b0ee 100644 --- a/src/drm_feedback.rs +++ b/src/drm_feedback.rs @@ -103,7 +103,7 @@ fn create_fd_data(ctx: &dyn GfxContext) -> (Vec, AHashMap<(u32, Modifier), u let mut vec = vec![]; let mut map = AHashMap::new(); let mut pos = 0; - for (format, info) in &*ctx.formats() { + for (format, info) in &**ctx.formats() { for modifier in &info.read_modifiers { vec.write_u32::(*format).unwrap(); vec.write_u32::(0).unwrap(); diff --git a/src/gfx_api.rs b/src/gfx_api.rs index 6fbddab2..7adf80a5 100644 --- a/src/gfx_api.rs +++ b/src/gfx_api.rs @@ -747,7 +747,7 @@ pub trait GfxContext: Debug { fn render_node(&self) -> Option>; - fn formats(&self) -> Rc>; + fn formats(&self) -> &Rc>; fn fast_ram_access(&self) -> bool; diff --git a/src/gfx_apis/gl/renderer/context.rs b/src/gfx_apis/gl/renderer/context.rs index 2be8defb..17441ea3 100644 --- a/src/gfx_apis/gl/renderer/context.rs +++ b/src/gfx_apis/gl/renderer/context.rs @@ -187,8 +187,8 @@ impl GlRenderContext { self.render_node.clone() } - pub fn formats(&self) -> Rc> { - self.ctx.formats.clone() + pub fn formats(&self) -> &Rc> { + &self.ctx.formats } fn dmabuf_fb(self: &Rc, buf: &DmaBuf) -> Result, RenderError> { @@ -253,7 +253,7 @@ impl GfxContext for GlRenderContext { Some(self.render_node()) } - fn formats(&self) -> Rc> { + fn formats(&self) -> &Rc> { self.formats() } diff --git a/src/gfx_apis/vulkan.rs b/src/gfx_apis/vulkan.rs index 8ab6168f..ad0a5943 100644 --- a/src/gfx_apis/vulkan.rs +++ b/src/gfx_apis/vulkan.rs @@ -263,8 +263,8 @@ impl GfxContext for Context { Some(self.0.device.render_node.clone()) } - fn formats(&self) -> Rc> { - self.0.formats.clone() + fn formats(&self) -> &Rc> { + &self.0.formats } fn fast_ram_access(&self) -> bool { diff --git a/src/ifs/zwp_linux_buffer_params_v1.rs b/src/ifs/zwp_linux_buffer_params_v1.rs index 13b62538..eac91ff6 100644 --- a/src/ifs/zwp_linux_buffer_params_v1.rs +++ b/src/ifs/zwp_linux_buffer_params_v1.rs @@ -74,7 +74,7 @@ impl ZwpLinuxBufferParamsV1 { Some(ctx) => ctx, None => return Err(ZwpLinuxBufferParamsV1Error::NoRenderContext), }; - let formats = ctx.formats(); + let formats = ctx.formats().clone(); let format = match formats.get(&format) { Some(f) => f, None => return Err(ZwpLinuxBufferParamsV1Error::InvalidFormat(format)), diff --git a/src/it/test_gfx_api.rs b/src/it/test_gfx_api.rs index 596de1de..44993212 100644 --- a/src/it/test_gfx_api.rs +++ b/src/it/test_gfx_api.rs @@ -103,8 +103,8 @@ impl GfxContext for TestGfxCtx { None } - fn formats(&self) -> Rc> { - self.formats.clone() + fn formats(&self) -> &Rc> { + &self.formats } fn fast_ram_access(&self) -> bool { diff --git a/src/portal/ptl_display.rs b/src/portal/ptl_display.rs index 3b5c78fa..e52e2e0c 100644 --- a/src/portal/ptl_display.rs +++ b/src/portal/ptl_display.rs @@ -211,9 +211,9 @@ impl UsrJayRenderCtxOwner for PortalDisplay { if let Some(ctx) = render_ctx { let client_formats = ctx.ctx.formats(); let usable_formats = match &server_formats { - None => client_formats, + None => client_formats.clone(), Some(server_formats) => { - Rc::new(cross_intersect_formats(&client_formats, server_formats)) + Rc::new(cross_intersect_formats(client_formats, server_formats)) } }; self.render_ctx.set(Some(Rc::new(PortalServerRenderCtx {