From 474d53835cec0ad6e054dca3c97c98ae2dcff9f0 Mon Sep 17 00:00:00 2001 From: Daniel Adams <70986246+msub2@users.noreply.github.com> Date: Sat, 17 Aug 2024 15:49:40 -1000 Subject: [PATCH] Surface predicted display time on Frame object (#240) Signed-off-by: Daniel Adams --- webxr-api/frame.rs | 3 +++ webxr/glwindow/mod.rs | 1 + webxr/headless/mod.rs | 1 + webxr/openxr/mod.rs | 1 + 4 files changed, 6 insertions(+) diff --git a/webxr-api/frame.rs b/webxr-api/frame.rs index 7f0a3cf..2589953 100644 --- a/webxr-api/frame.rs +++ b/webxr-api/frame.rs @@ -33,6 +33,9 @@ pub struct Frame { /// The hit test results for this frame, if any pub hit_test_results: Vec, + + /// The average point in time this XRFrame is expected to be displayed on the devices' display + pub predicted_display_time: f64, } #[derive(Clone, Debug)] diff --git a/webxr/glwindow/mod.rs b/webxr/glwindow/mod.rs index 586bdd4..28eb76b 100644 --- a/webxr/glwindow/mod.rs +++ b/webxr/glwindow/mod.rs @@ -192,6 +192,7 @@ impl DeviceAPI for GlWindowDevice { events: vec![], sub_images, hit_test_results: vec![], + predicted_display_time: 0.0, }) } diff --git a/webxr/headless/mod.rs b/webxr/headless/mod.rs index d0decaa..f00ff60 100644 --- a/webxr/headless/mod.rs +++ b/webxr/headless/mod.rs @@ -362,6 +362,7 @@ impl HeadlessDeviceData { events: vec![], sub_images, hit_test_results: vec![], + predicted_display_time: 0.0, } } diff --git a/webxr/openxr/mod.rs b/webxr/openxr/mod.rs index da4dcb2..da9d275 100644 --- a/webxr/openxr/mod.rs +++ b/webxr/openxr/mod.rs @@ -1469,6 +1469,7 @@ impl DeviceAPI for OpenXrDevice { events: vec![], sub_images, hit_test_results: vec![], + predicted_display_time: frame_state.predicted_display_time.as_nanos() as f64, }; if let Some(right_select) = right.select {