feat: configurable openxr bindings

This commit is contained in:
galister
2024-06-04 14:57:04 +09:00
parent 773ff6885d
commit b8a0e3630d
9 changed files with 642 additions and 525 deletions
+3 -9
View File
@@ -5,15 +5,13 @@ use libloading::{Library, Symbol};
use crate::{backend::common::OverlayContainer, state::AppState};
use super::{helpers, input::DoubleClickCounter, overlay::OpenXrOverlayData};
use super::{helpers, overlay::OpenXrOverlayData};
pub(super) struct PlayspaceMover {
drag_hand: Option<usize>,
offset: Vec3A,
start_position: Vec3A,
double_click_counter: DoubleClickCounter,
libmonado: Library,
mnd_root: *mut c_void,
playspace_move: extern "C" fn(*mut c_void, f32, f32, f32) -> i32,
@@ -43,8 +41,6 @@ impl PlayspaceMover {
offset: Vec3A::ZERO,
start_position: Vec3A::ZERO,
double_click_counter: DoubleClickCounter::new(),
libmonado,
mnd_root: root,
playspace_move: playspace_move_raw,
@@ -75,10 +71,8 @@ impl PlayspaceMover {
self.apply_offset();
} else {
for (i, pointer) in state.input_state.pointers.iter().enumerate() {
if pointer.now.space_drag
&& !pointer.before.space_drag
&& self.double_click_counter.click()
{
if pointer.now.space_drag && !pointer.before.space_drag {
log::info!("Start space drag");
self.drag_hand = Some(i);
self.start_position = pointer.pose.translation;
break;