diff --git a/Cargo.toml b/Cargo.toml index 7f6c888..e7323da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ edition = "2021" anyhow = "1.0.75" ash = "0.37.3" bevy = { git = "https://github.com/awtterpip/bevy", default-features = false, features = ["bevy_render"] } -openxr = { version = "0.17.1", features = ["mint"] } +openxr = { version = "0.17.1", features = ["mint", "static", "linked"] } mint = "0.5.9" wgpu = "0.16.0" wgpu-core = { version = "0.16.0", features = ["vulkan"] } diff --git a/src/graphics/vulkan.rs b/src/graphics/vulkan.rs index f247e84..794e9dc 100644 --- a/src/graphics/vulkan.rs +++ b/src/graphics/vulkan.rs @@ -40,7 +40,7 @@ pub fn initialize_xr_graphics( )> { use wgpu_hal::{api::Vulkan as V, Api}; - let xr_entry = unsafe { xr::Entry::load() }?; + let xr_entry = xr::Entry::linked(); let available_extensions = xr_entry.enumerate_extensions()?; assert!(available_extensions.khr_vulkan_enable2); diff --git a/src/lib.rs b/src/lib.rs index 765223e..ee55240 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11,7 +11,7 @@ use bevy::app::PluginGroupBuilder; use bevy::ecs::system::SystemState; use bevy::prelude::*; use bevy::render::camera::{ManualTextureView, ManualTextureViewHandle, ManualTextureViews}; -use bevy::render::pipelined_rendering::RenderExtractApp; +use bevy::render::pipelined_rendering::{RenderExtractApp, PipelinedRenderingPlugin}; use bevy::render::renderer::{ render_system, RenderAdapter, RenderAdapterInfo, RenderDevice, RenderQueue, }; @@ -105,7 +105,7 @@ impl Plugin for OpenXrPlugin { render_adapter, Mutex::new(instance), ), - })); + }).disable::()); } fn ready(&self, app: &App) -> bool { diff --git a/src/xr_input/mod.rs b/src/xr_input/mod.rs index 8dd16e7..314336b 100644 --- a/src/xr_input/mod.rs +++ b/src/xr_input/mod.rs @@ -3,6 +3,7 @@ pub mod oculus_touch; pub mod xr_camera; use crate::resources::XrSession; +use crate::xr_begin_frame; use crate::xr_input::controllers::XrControllerType; use crate::xr_input::oculus_touch::{setup_oculus_controller, ActionSets}; use crate::xr_input::xr_camera::{ @@ -38,7 +39,7 @@ impl Plugin for OpenXrInput { } } app.add_systems(PreUpdate, action_set_system); - app.add_systems(PreUpdate, xr_camera_head_sync); + app.add_systems(PreUpdate, xr_camera_head_sync.after(xr_begin_frame)); app.add_systems( PostUpdate, update_frusta::