This commit is contained in:
Schmarni
2024-02-05 02:27:27 +01:00
parent 5c81f135e7
commit 9704607c8c
6 changed files with 100 additions and 24 deletions

View File

@@ -4,10 +4,10 @@ use std::sync::Mutex;
use crate::input::XrInput;
// use crate::passthrough::XrPassthroughLayer;
use crate::resource_macros::*;
use crate::xr_init::XrStatus;
use crate::{resource_macros::*, xr_resource_wrapper_no_extract};
use bevy::prelude::*;
use bevy::render::extract_resource::ExtractResourcePlugin;
use bevy::render::extract_resource::{ExtractResource, ExtractResourcePlugin};
use openxr as xr;
xr_resource_wrapper!(XrInstance, xr::Instance);
@@ -15,12 +15,24 @@ xr_resource_wrapper!(XrSession, xr::Session<xr::AnyGraphics>);
xr_resource_wrapper!(XrEnvironmentBlendMode, xr::EnvironmentBlendMode);
xr_resource_wrapper!(XrResolution, UVec2);
xr_resource_wrapper!(XrFormat, wgpu::TextureFormat);
xr_resource_wrapper!(XrFrameState, xr::FrameState);
xr_resource_wrapper_no_extract!(XrFrameState, xr::FrameState);
xr_resource_wrapper!(XrViews, Vec<xr::View>);
xr_arc_resource_wrapper!(XrSessionRunning, AtomicBool);
xr_arc_resource_wrapper!(XrSwapchain, Swapchain);
xr_no_clone_resource_wrapper!(XrFrameWaiter, xr::FrameWaiter);
impl ExtractResource for XrFrameState {
type Source = Self;
fn extract_resource(source: &Self::Source) -> Self {
let mut state = *source;
state.predicted_display_time = xr::Time::from_nanos(
state.predicted_display_time.as_nanos() + state.predicted_display_period.as_nanos(),
);
state
}
}
pub(crate) struct VulkanOXrSessionSetupInfo {
pub(crate) device_ptr: *const c_void,
pub(crate) physical_device_ptr: *const c_void,