From 32fa13b4fda9a46216a22e9b63a5f209f623897c Mon Sep 17 00:00:00 2001 From: awtterpip Date: Sun, 2 Jun 2024 19:30:12 -0500 Subject: [PATCH] add compatibility for both pipelined and unpipelined --- crates/bevy_openxr/src/openxr/init.rs | 6 +++--- crates/bevy_openxr/src/openxr/render.rs | 12 +++++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/crates/bevy_openxr/src/openxr/init.rs b/crates/bevy_openxr/src/openxr/init.rs index f77165f..d1da5bd 100644 --- a/crates/bevy_openxr/src/openxr/init.rs +++ b/crates/bevy_openxr/src/openxr/init.rs @@ -150,9 +150,9 @@ impl Plugin for OxrInitPlugin { .insert_non_send_resource(session_create_info) .configure_sets(OxrLast, OxrHandleEvents); - // app.world - // .resource_mut::() - // .insert_after(Last, OxrLast); + app.world + .resource_mut::() + .insert_after(Last, OxrLast); app.world .spawn((TransformBundle::default(), OxrTrackingRoot)); diff --git a/crates/bevy_openxr/src/openxr/render.rs b/crates/bevy_openxr/src/openxr/render.rs index 2923078..f4baea6 100644 --- a/crates/bevy_openxr/src/openxr/render.rs +++ b/crates/bevy_openxr/src/openxr/render.rs @@ -1,5 +1,5 @@ use bevy::{ - app::SubApp, + app::{MainScheduleOrder, SubApp}, ecs::{query::QuerySingleError, schedule::MainThreadExecutor}, prelude::*, render::{ @@ -33,6 +33,16 @@ impl Plugin for OxrRenderPlugin { if app.is_plugin_added::() { app.init_resource::(); + let mut schedule_order = app.world.resource_mut::(); + + if let Some(pos) = schedule_order + .labels + .iter() + .position(|label| (**label).eq(&OxrLast)) + { + schedule_order.labels.remove(pos); + } + if let Some(sub_app) = app.remove_sub_app(RenderExtractApp) { app.insert_sub_app(RenderExtractApp, SubApp::new(sub_app.app, update_rendering)); }