correct pipelining

This commit is contained in:
awtterpip
2024-07-03 19:37:40 -05:00
parent c2a0d786b9
commit 3264bb9605
17 changed files with 660 additions and 720 deletions

View File

@@ -1,8 +1,7 @@
// a simple example showing basic actions using the xr utils actions
use bevy::{math::vec3, prelude::*};
use bevy_openxr::{
add_xr_plugins, helper_traits::ToQuat, init::OxrTrackingRoot, resources::OxrViews,
};
use bevy_openxr::{add_xr_plugins, helper_traits::ToQuat, resources::OxrViews};
use bevy_xr::session::XrTrackingRoot;
use bevy_xr_utils::xr_utils_actions::{
ActiveSet, XRUtilsAction, XRUtilsActionSet, XRUtilsActionState, XRUtilsActionSystemSet,
XRUtilsActionsPlugin, XRUtilsBinding,
@@ -114,7 +113,7 @@ fn read_action_with_marker_component(
//lets add some flycam stuff
fn handle_flight_input(
action_query: Query<&XRUtilsActionState, With<FlightActionMarker>>,
mut oxr_root: Query<&mut Transform, With<OxrTrackingRoot>>,
mut oxr_root: Query<&mut Transform, With<XrTrackingRoot>>,
time: Res<Time>,
//use the views for hmd orientation
views: ResMut<OxrViews>,

View File

@@ -2,9 +2,9 @@
use bevy::prelude::*;
use bevy_openxr::{add_xr_plugins, init::OxrInitPlugin, types::OxrExtensions};
use bevy_xr::session::XrStatus;
use openxr::EnvironmentBlendMode;
use wgpu::TextureFormat;
use bevy_xr::session::XrState;
// use openxr::EnvironmentBlendMode;
// use wgpu::TextureFormat;
fn main() {
App::new()
@@ -40,11 +40,12 @@ fn main() {
fn handle_input(
keys: Res<ButtonInput<KeyCode>>,
mut end: EventWriter<bevy_xr::session::EndXrSession>,
mut _destroy: EventWriter<bevy_xr::session::DestroyXrSession>,
mut _begin: EventWriter<bevy_xr::session::BeginXrSession>,
mut create: EventWriter<bevy_xr::session::CreateXrSession>,
state: Res<XrStatus>,
mut end: EventWriter<bevy_xr::session::XrEndSessionEvent>,
mut destroy: EventWriter<bevy_xr::session::XrDestroySessionEvent>,
mut begin: EventWriter<bevy_xr::session::XrBeginSessionEvent>,
mut create: EventWriter<bevy_xr::session::XrCreateSessionEvent>,
mut request_exit: EventWriter<bevy_xr::session::XrRequestExitEvent>,
state: Res<XrState>,
) {
if keys.just_pressed(KeyCode::KeyE) {
info!("sending end");
@@ -54,6 +55,18 @@ fn handle_input(
info!("sending create");
create.send_default();
}
if keys.just_pressed(KeyCode::KeyD) {
info!("sending destroy");
destroy.send_default();
}
if keys.just_pressed(KeyCode::KeyB) {
info!("sending begin");
begin.send_default();
}
if keys.just_pressed(KeyCode::KeyR) {
info!("sending request exit");
request_exit.send_default();
}
if keys.just_pressed(KeyCode::KeyI) {
info!("current state: {:?}", *state);
}

View File

@@ -6,13 +6,13 @@ use bevy_openxr::{
action_set_attaching::OxrAttachActionSet,
action_set_syncing::{OxrActionSetSyncSet, OxrSyncActionSet},
add_xr_plugins,
init::OxrTrackingRoot,
init::create_xr_session,
resources::OxrInstance,
session::OxrSession,
spaces::OxrSpaceExt,
};
use bevy_xr::{
session::{session_available, XrSessionCreated},
session::{session_available, XrCreateSession, XrTrackingRoot},
spaces::XrSpace,
types::XrPose,
};
@@ -21,8 +21,8 @@ use openxr::Posef;
fn main() {
let mut app = App::new();
app.add_plugins(add_xr_plugins(DefaultPlugins));
app.add_systems(XrSessionCreated, spawn_hands);
app.add_systems(XrSessionCreated, attach_set);
app.add_systems(XrCreateSession, spawn_hands.after(create_xr_session));
app.add_systems(XrCreateSession, attach_set.after(create_xr_session));
app.add_systems(PreUpdate, sync_actions.before(OxrActionSetSyncSet));
app.add_systems(OxrSendActionBindings, suggest_action_bindings);
app.add_systems(Startup, create_actions.run_if(session_available));
@@ -108,7 +108,7 @@ fn create_actions(instance: Res<OxrInstance>, mut cmds: Commands) {
fn spawn_hands(
actions: Res<ControllerActions>,
mut cmds: Commands,
root: Query<Entity, With<OxrTrackingRoot>>,
root: Query<Entity, With<XrTrackingRoot>>,
session: Res<OxrSession>,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,

View File

@@ -2,11 +2,11 @@
use bevy::prelude::*;
use bevy_openxr::add_xr_plugins;
use bevy_xr::session::{ XrStatus};
use bevy_xr::session::{XrSessionPlugin, XrState};
fn main() {
App::new()
.add_plugins(add_xr_plugins(DefaultPlugins))
.add_plugins(add_xr_plugins(DefaultPlugins).set(XrSessionPlugin { auto_handle: false }))
.add_plugins(bevy_xr_utils::hand_gizmos::HandGizmosPlugin)
.add_systems(Startup, setup)
.add_systems(Update, handle_input)
@@ -16,11 +16,12 @@ fn main() {
fn handle_input(
keys: Res<ButtonInput<KeyCode>>,
mut end: EventWriter<bevy_xr::session::EndXrSession>,
mut _destroy: EventWriter<bevy_xr::session::DestroyXrSession>,
mut _begin: EventWriter<bevy_xr::session::BeginXrSession>,
mut create: EventWriter<bevy_xr::session::CreateXrSession>,
state: Res<XrStatus>,
mut end: EventWriter<bevy_xr::session::XrEndSessionEvent>,
mut destroy: EventWriter<bevy_xr::session::XrDestroySessionEvent>,
mut begin: EventWriter<bevy_xr::session::XrBeginSessionEvent>,
mut create: EventWriter<bevy_xr::session::XrCreateSessionEvent>,
mut request_exit: EventWriter<bevy_xr::session::XrRequestExitEvent>,
state: Res<XrState>,
) {
if keys.just_pressed(KeyCode::KeyE) {
info!("sending end");
@@ -30,6 +31,18 @@ fn handle_input(
info!("sending create");
create.send_default();
}
if keys.just_pressed(KeyCode::KeyD) {
info!("sending destroy");
destroy.send_default();
}
if keys.just_pressed(KeyCode::KeyB) {
info!("sending begin");
begin.send_default();
}
if keys.just_pressed(KeyCode::KeyR) {
info!("sending request exit");
request_exit.send_default();
}
if keys.just_pressed(KeyCode::KeyI) {
info!("current state: {:?}", *state);
}