From 5014f02285d5922ceab1033e6eb63055c5ff9f05 Mon Sep 17 00:00:00 2001 From: Benjamin Saunders Date: Tue, 4 Jul 2017 00:01:53 -0700 Subject: [PATCH] Update to OpenVR SDK 1.0.8 --- src/compositor/mod.rs | 6 +----- src/lib.rs | 5 +++++ src/system/mod.rs | 8 ++++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/compositor/mod.rs b/src/compositor/mod.rs index 82d5bd0..4041e50 100644 --- a/src/compositor/mod.rs +++ b/src/compositor/mod.rs @@ -136,6 +136,7 @@ pub mod compositor_error { pub const SHARED_TEXTURES_NOT_SUPPORTED: CompositorError = CompositorError(sys::EVRCompositorError_EVRCompositorError_VRCompositorError_SharedTexturesNotSupported); pub const INDEX_OUT_OF_RANGE: CompositorError = CompositorError(sys::EVRCompositorError_EVRCompositorError_VRCompositorError_IndexOutOfRange); pub const ALREADY_SUBMITTED: CompositorError = CompositorError(sys::EVRCompositorError_EVRCompositorError_VRCompositorError_AlreadySubmitted); + pub const INVALID_BOUNDS: CompositorError = CompositorError(sys::EVRCompositorError_EVRCompositorError_VRCompositorError_InvalidBounds); } impl fmt::Debug for CompositorError { @@ -168,8 +169,3 @@ impl fmt::Display for CompositorError { f.pad(error::Error::description(self)) } } - -pub use sys::VkPhysicalDevice_T; -pub use sys::VkDevice_T; -pub use sys::VkInstance_T; -pub use sys::VkQueue_T; diff --git a/src/lib.rs b/src/lib.rs index e4bb737..873132b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,6 +13,11 @@ mod compositor; pub use tracking::*; +pub use sys::VkPhysicalDevice_T; +pub use sys::VkDevice_T; +pub use sys::VkInstance_T; +pub use sys::VkQueue_T; + static INITIALIZED: AtomicBool = ATOMIC_BOOL_INIT; /// Initialize OpenVR diff --git a/src/system/mod.rs b/src/system/mod.rs index e505569..fe93b27 100644 --- a/src/system/mod.rs +++ b/src/system/mod.rs @@ -152,6 +152,14 @@ impl<'a> System<'a> { _ => None, } } + + pub fn vulkan_output_device(&self) -> Option<*mut VkPhysicalDevice_T> { + unsafe { + let mut device = mem::uninitialized(); + self.0.GetOutputDevice.unwrap()(&mut device, sys::ETextureType_ETextureType_TextureType_Vulkan); + if device == 0 { None } else { Some(device as usize as *mut _) } + } + } } /// Values represent the tangents of the half-angles from the center view axis