diff --git a/src/compositor/mod.rs b/src/compositor/mod.rs index 4fe49b2..eeac552 100644 --- a/src/compositor/mod.rs +++ b/src/compositor/mod.rs @@ -54,8 +54,8 @@ impl<'a> Compositor<'a> { pub fn wait_get_poses(&self) -> Result { unsafe { let mut result: WaitPoses = mem::uninitialized(); - let e = (self.0.WaitGetPoses.unwrap())(result.render.data.as_mut().as_mut_ptr() as *mut _, result.render.data.len() as u32, - result.game.data.as_mut().as_mut_ptr() as *mut _, result.game.data.len() as u32); + let e = (self.0.WaitGetPoses.unwrap())(result.render.as_mut().as_mut_ptr() as *mut _, result.render.len() as u32, + result.game.as_mut().as_mut_ptr() as *mut _, result.game.len() as u32); if e == sys::EVRCompositorError_EVRCompositorError_VRCompositorError_None { Ok(result) } else { diff --git a/src/lib.rs b/src/lib.rs index 3e623fe..e4bb737 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,7 +1,7 @@ extern crate openvr_sys; use std::sync::atomic::{Ordering, AtomicBool, ATOMIC_BOOL_INIT}; -use std::{fmt, error, slice}; +use std::{fmt, error}; use std::ffi::CStr; use openvr_sys as sys; diff --git a/src/system/mod.rs b/src/system/mod.rs index 3cda889..2624261 100644 --- a/src/system/mod.rs +++ b/src/system/mod.rs @@ -81,7 +81,7 @@ impl<'a> System<'a> { unsafe { let mut result: TrackedDevicePoses = mem::uninitialized(); (self.0.GetDeviceToAbsoluteTrackingPose.unwrap())(origin as sys::ETrackingUniverseOrigin, predicted_seconds_to_photons_from_now, - result.data.as_mut().as_mut_ptr() as *mut _, result.data.len() as u32); + result.as_mut().as_mut_ptr() as *mut _, result.len() as u32); result } } diff --git a/src/tracking.rs b/src/tracking.rs index 4ba1746..d6904e1 100644 --- a/src/tracking.rs +++ b/src/tracking.rs @@ -65,20 +65,4 @@ pub enum TrackedControllerRole { RightHand = sys::ETrackedControllerRole_ETrackedControllerRole_TrackedControllerRole_RightHand as isize, } -#[derive(Debug, Copy, Clone)] -pub struct TrackedDevicePoses { - data: [TrackedDevicePose; sys::k_unMaxTrackedDeviceCount as usize] -} - -impl TrackedDevicePoses { - pub fn iter(&self) -> slice::Iter { self.data.iter() } - pub fn len(&self) -> usize { self.data.len() } -} - -impl ::std::ops::Index for TrackedDevicePoses { - type Output = TrackedDevicePose; - - fn index(&self, index: TrackedDeviceIndex) -> &TrackedDevicePose { - &self.data[index as usize] - } -} +pub type TrackedDevicePoses = [TrackedDevicePose; sys::k_unMaxTrackedDeviceCount as usize];