From 26b196137608f5fecc4b43e69d1962dde9ba2c65 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Tue, 6 Feb 2024 01:07:24 +0100 Subject: [PATCH] pipewire: set xr swapchain size from first valid texture --- src/backend/openxr/overlay.rs | 4 ++-- src/overlays/screen.rs | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/backend/openxr/overlay.rs b/src/backend/openxr/overlay.rs index 0b85908..0f09a3d 100644 --- a/src/backend/openxr/overlay.rs +++ b/src/backend/openxr/overlay.rs @@ -34,9 +34,9 @@ impl OverlayData { log::warn!("{}: Will not show - image not ready", self.state.name); return None; }; + let extent = my_view.image().extent(); let data = self.data.swapchain.get_or_insert_with(|| { - let extent = self.backend.extent(); let srd = create_swapchain_render_data(xr, command_buffer.graphics.clone(), extent); log::info!( @@ -54,7 +54,7 @@ impl OverlayData { let posef = helpers::transform_to_posef(&self.state.transform); let scale_x = self.state.transform.matrix3.col(0).length(); - let aspect_ratio = self.backend.extent()[1] as f32 / self.backend.extent()[0] as f32; + let aspect_ratio = extent[1] as f32 / extent[0] as f32; let scale_y = scale_x * aspect_ratio; let quad = xr::CompositionLayerQuad::new() diff --git a/src/overlays/screen.rs b/src/overlays/screen.rs index 252016b..6f3ead2 100644 --- a/src/overlays/screen.rs +++ b/src/overlays/screen.rs @@ -287,7 +287,6 @@ impl ScreenRenderer { impl OverlayRenderer for ScreenRenderer { fn init(&mut self, app: &mut AppState) { let images = app.graphics.shared_images.read().unwrap(); - self.last_view = Some(images.get("fallback").unwrap().clone()); } fn render(&mut self, app: &mut AppState) { let receiver = self.receiver.get_or_insert_with(|| {