diff --git a/src/backend/input.rs b/src/backend/input.rs index 3ba3a18..61728d1 100644 --- a/src/backend/input.rs +++ b/src/backend/input.rs @@ -2,8 +2,6 @@ use std::{collections::VecDeque, time::Instant}; use glam::{Affine3A, Vec2, Vec3A}; -#[cfg(feature = "openvr")] -use ovr_overlay::TrackedDeviceIndex; use smallvec::{smallvec, SmallVec}; use crate::backend::common::snap_upright; @@ -16,9 +14,6 @@ use super::{ }; pub struct TrackedDevice { - #[cfg(feature = "openvr")] - pub index: TrackedDeviceIndex, - pub valid: bool, pub soc: Option, pub charging: bool, pub role: TrackedDeviceRole, diff --git a/src/backend/openvr/input.rs b/src/backend/openvr/input.rs index 37bcbc0..5ee5a81 100644 --- a/src/backend/openvr/input.rs +++ b/src/backend/openvr/input.rs @@ -309,8 +309,6 @@ fn get_tracked_device( } Some(TrackedDevice { - valid: true, - index, soc, charging, role, diff --git a/src/backend/uidev/mod.rs b/src/backend/uidev/mod.rs index 091c045..890495f 100644 --- a/src/backend/uidev/mod.rs +++ b/src/backend/uidev/mod.rs @@ -25,10 +25,13 @@ use crate::{ Canvas, }, hid::USE_UINPUT, - state::AppState, + state::{AppState, ScreenMeta}, }; -use super::overlay::OverlayRenderer; +use super::{ + input::{TrackedDevice, TrackedDeviceRole}, + overlay::OverlayRenderer, +}; static LAST_SIZE: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); @@ -114,6 +117,9 @@ pub fn uidev_run(panel_name: &str) -> anyhow::Result<()> { USE_UINPUT.store(false, std::sync::atomic::Ordering::Relaxed); let mut state = AppState::from_graphics(graphics.clone())?; + add_dummy_devices(&mut state); + add_dummy_screens(&mut state); + let mut preview = Some(PreviewState::new( &mut state, surface.clone(), @@ -257,3 +263,54 @@ fn create_swapchain( Ok((swapchain, image_views)) } + +fn add_dummy_devices(app: &mut AppState) { + app.input_state.devices.push(TrackedDevice { + role: TrackedDeviceRole::Hmd, + soc: Some(0.42), + charging: true, + }); + app.input_state.devices.push(TrackedDevice { + role: TrackedDeviceRole::LeftHand, + soc: Some(0.72), + charging: false, + }); + app.input_state.devices.push(TrackedDevice { + role: TrackedDeviceRole::RightHand, + soc: Some(0.73), + charging: false, + }); + app.input_state.devices.push(TrackedDevice { + role: TrackedDeviceRole::Tracker, + soc: Some(0.65), + charging: false, + }); + app.input_state.devices.push(TrackedDevice { + role: TrackedDeviceRole::Tracker, + soc: Some(0.67), + charging: false, + }); + app.input_state.devices.push(TrackedDevice { + role: TrackedDeviceRole::Tracker, + soc: Some(0.69), + charging: false, + }); +} + +fn add_dummy_screens(app: &mut AppState) { + app.screens.push(ScreenMeta { + name: "HDMI-A-1".into(), + id: 0, + native_handle: 0, + }); + app.screens.push(ScreenMeta { + name: "DP-2".into(), + id: 0, + native_handle: 0, + }); + app.screens.push(ScreenMeta { + name: "DP-3".into(), + id: 0, + native_handle: 0, + }); +}