From 5a060c28f2b5d71dab15737f9cfa0844b2ac690c Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Mon, 4 Nov 2024 20:56:10 +0900 Subject: [PATCH] support wivrn passthru mode --- src/backend/openxr/mod.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/backend/openxr/mod.rs b/src/backend/openxr/mod.rs index d6e04cd..54a50ec 100644 --- a/src/backend/openxr/mod.rs +++ b/src/backend/openxr/mod.rs @@ -66,8 +66,14 @@ pub fn openxr_run(running: Arc, show_by_default: bool) -> Result<(), } }; - let environment_blend_mode = - xr_instance.enumerate_environment_blend_modes(system, VIEW_TYPE)?[0]; + let environment_blend_mode = { + let modes = xr_instance.enumerate_environment_blend_modes(system, VIEW_TYPE)?; + if modes.contains(&xr::EnvironmentBlendMode::ALPHA_BLEND) { + xr::EnvironmentBlendMode::ALPHA_BLEND + } else { + modes[0] + } + }; log::info!("Using environment blend mode: {:?}", environment_blend_mode); let mut app_state = { @@ -141,7 +147,11 @@ pub fn openxr_run(running: Arc, show_by_default: bool) -> Result<(), stage_offset: Affine3A::IDENTITY, }; - let mut skybox = create_skybox(&xr_state, &app_state); + let mut skybox = if environment_blend_mode == xr::EnvironmentBlendMode::OPAQUE { + create_skybox(&xr_state, &app_state) + } else { + None + }; let pointer_lines = [ lines.allocate(&xr_state, app_state.graphics.clone())?,