diff --git a/src/xr_init/mod.rs b/src/xr_init/mod.rs index 7ab857c..50377ef 100644 --- a/src/xr_init/mod.rs +++ b/src/xr_init/mod.rs @@ -176,12 +176,12 @@ pub(crate) struct CleanupXrData; fn start_xr_session( mut commands: Commands, mut status: ResMut, - instance: Res, + instance: Option>, primary_window: Query<&RawHandleWrapper, With>, - setup_info: NonSend, - render_device: Res, - render_adapter: Res, - render_instance: Res, + setup_info: Option>, + render_device: Option>, + render_adapter: Option>, + render_instance: Option>, ) { info!("start Session"); match *status { @@ -199,6 +199,23 @@ fn start_xr_session( return; } } + let ( + Some(instance), + Some(setup_info), + Some(render_device), + Some(render_adapter), + Some(render_instance), + ) = ( + instance, + setup_info, + render_device, + render_adapter, + render_instance, + ) + else { + error!("Missing resources after passing status check"); + return; + }; let ( xr_session, xr_resolution,