fixed jitter
This commit is contained in:
@@ -7,6 +7,7 @@ use bevy::render::renderer::{
|
|||||||
};
|
};
|
||||||
use bevy::render::settings::RenderCreation;
|
use bevy::render::settings::RenderCreation;
|
||||||
use bevy::render::{MainWorld, RenderApp, RenderPlugin};
|
use bevy::render::{MainWorld, RenderApp, RenderPlugin};
|
||||||
|
use bevy::winit::{UpdateMode, WinitSettings};
|
||||||
use bevy_xr::session::{
|
use bevy_xr::session::{
|
||||||
handle_session, session_available, session_running, status_equals, BeginXrSession,
|
handle_session, session_available, session_running, status_equals, BeginXrSession,
|
||||||
CreateXrSession, EndXrSession, XrSharedStatus, XrStatus,
|
CreateXrSession, EndXrSession, XrSharedStatus, XrStatus,
|
||||||
@@ -101,6 +102,10 @@ impl Plugin for XrInitPlugin {
|
|||||||
.insert_resource(instance.clone())
|
.insert_resource(instance.clone())
|
||||||
.insert_resource(system_id)
|
.insert_resource(system_id)
|
||||||
.insert_resource(status.clone())
|
.insert_resource(status.clone())
|
||||||
|
.insert_resource(WinitSettings {
|
||||||
|
focused_mode: UpdateMode::Continuous,
|
||||||
|
unfocused_mode: UpdateMode::Continuous,
|
||||||
|
})
|
||||||
.insert_non_send_resource(session_create_info);
|
.insert_non_send_resource(session_create_info);
|
||||||
|
|
||||||
let render_app = app.sub_app_mut(RenderApp);
|
let render_app = app.sub_app_mut(RenderApp);
|
||||||
@@ -419,6 +424,7 @@ pub fn create_xr_session(
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn begin_xr_session(session: Res<XrSession>, session_started: Res<XrSessionStarted>) {
|
pub fn begin_xr_session(session: Res<XrSession>, session_started: Res<XrSessionStarted>) {
|
||||||
|
let _span = info_span!("xr_begin_session");
|
||||||
session
|
session
|
||||||
.begin(openxr::ViewConfigurationType::PRIMARY_STEREO)
|
.begin(openxr::ViewConfigurationType::PRIMARY_STEREO)
|
||||||
.expect("Failed to begin session");
|
.expect("Failed to begin session");
|
||||||
@@ -426,6 +432,7 @@ pub fn begin_xr_session(session: Res<XrSession>, session_started: Res<XrSessionS
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn end_xr_session(session: Res<XrSession>, session_started: Res<XrSessionStarted>) {
|
pub fn end_xr_session(session: Res<XrSession>, session_started: Res<XrSessionStarted>) {
|
||||||
|
let _span = info_span!("xr_end_session");
|
||||||
session.end().expect("Failed to end session");
|
session.end().expect("Failed to end session");
|
||||||
session_started.set(false);
|
session_started.set(false);
|
||||||
}
|
}
|
||||||
@@ -475,6 +482,7 @@ pub fn poll_events(
|
|||||||
app_exiting: Res<AppExiting>,
|
app_exiting: Res<AppExiting>,
|
||||||
mut exit_app: EventWriter<AppExit>,
|
mut exit_app: EventWriter<AppExit>,
|
||||||
) {
|
) {
|
||||||
|
let _span = info_span!("xr_poll_events");
|
||||||
let mut buffer = Default::default();
|
let mut buffer = Default::default();
|
||||||
while let Some(event) = instance
|
while let Some(event) = instance
|
||||||
.poll_event(&mut buffer)
|
.poll_event(&mut buffer)
|
||||||
|
|||||||
Reference in New Issue
Block a user