pull webxr-refactor and make needed changes
Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
@@ -6,10 +6,11 @@ use bevy_xr::{
|
||||
};
|
||||
use openxr::SpaceLocationFlags;
|
||||
|
||||
use crate::resources::Pipelined;
|
||||
use crate::{
|
||||
init::OxrTrackingRoot,
|
||||
reference_space::{OxrPrimaryReferenceSpace, OxrReferenceSpace},
|
||||
resources::OxrTime,
|
||||
resources::OxrFrameState,
|
||||
session::OxrSession,
|
||||
};
|
||||
|
||||
@@ -130,18 +131,29 @@ pub struct OxrHandTracker(pub openxr::HandTracker);
|
||||
|
||||
fn locate_hands(
|
||||
default_ref_space: Res<OxrPrimaryReferenceSpace>,
|
||||
time: Res<OxrTime>,
|
||||
frame_state: Res<OxrFrameState>,
|
||||
tracker_query: Query<(
|
||||
&OxrHandTracker,
|
||||
Option<&OxrReferenceSpace>,
|
||||
&OxrHandBoneEntities,
|
||||
)>,
|
||||
mut bone_query: Query<(&HandBone, &mut HandBoneRadius, &mut Transform)>,
|
||||
pipelined: Option<Res<Pipelined>>,
|
||||
) {
|
||||
for (tracker, ref_space, hand_entities) in &tracker_query {
|
||||
let ref_space = ref_space.map(|v| &v.0).unwrap_or(&default_ref_space.0);
|
||||
// relate_hand_joints also provides velocities
|
||||
let joints = match ref_space.locate_hand_joints(tracker, **time) {
|
||||
let joints = match ref_space.locate_hand_joints(
|
||||
tracker,
|
||||
if pipelined.is_some() {
|
||||
openxr::Time::from_nanos(
|
||||
frame_state.predicted_display_time.as_nanos()
|
||||
+ frame_state.predicted_display_period.as_nanos(),
|
||||
)
|
||||
} else {
|
||||
frame_state.predicted_display_time
|
||||
},
|
||||
) {
|
||||
Ok(Some(v)) => v,
|
||||
Ok(None) => continue,
|
||||
Err(openxr::sys::Result::ERROR_EXTENSION_NOT_PRESENT) => {
|
||||
|
||||
Reference in New Issue
Block a user