pub struct Backend;
Expand description
This class exposes some of StereoKit’s backend functionality. This allows for tighter integration with certain platforms, but also means your code becomes less portable. Everything in this class should be guarded by availability checks.
https://stereokit.net/Pages/StereoKit/Backend.html
§Examples
use stereokit_rust::system::{Backend, BackendGraphics, BackendPlatform, BackendXRType, BackendOpenXR};
let graphics = Backend::graphics();
let platform = Backend::platform();
let xr_type = Backend::xr_type();
if cfg!(target_os = "windows") {
assert_eq!(graphics, BackendGraphics::D3D11);
assert_eq!(platform, BackendPlatform::Win32);
} else {
assert_eq!(graphics, BackendGraphics::OpenGLESEGL);
assert_eq!(platform, BackendPlatform::Linux);
}
assert_eq!(xr_type, BackendXRType::None);
assert_eq!(BackendOpenXR::eyes_sample_time(), 0);
Implementations§
Source§impl Backend
impl Backend
Sourcepub fn graphics() -> BackendGraphics
pub fn graphics() -> BackendGraphics
This describes the graphics API thatStereoKit is using for rendering. StereoKit uses D3D11 for Windows platforms, and a flavor of OpenGL for Linux, Android, and Web. https://stereokit.net/Pages/StereoKit/Backend/Graphics.html
see also backend_graphics_get
§Examples
use stereokit_rust::system::{Backend, BackendGraphics};
let graphics = Backend::graphics();
if cfg!(target_os = "windows") {
assert_eq!(graphics, BackendGraphics::D3D11);
} else {
assert_eq!(graphics, BackendGraphics::OpenGLESEGL);
}
Sourcepub fn platform() -> BackendPlatform
pub fn platform() -> BackendPlatform
What kind of platform is StereoKit running on? This can be important to tell you what APIs or functionality is available to the app. https://stereokit.net/Pages/StereoKit/Backend/Platform.html
see also backend_platform_get
§Examples
use stereokit_rust::system::{Backend, BackendPlatform};
let platform = Backend::platform();
if cfg!(target_os = "windows") {
assert_eq!(platform, BackendPlatform::Win32);
} else {
assert_eq!(platform, BackendPlatform::Linux);
}
Sourcepub fn xr_type() -> BackendXRType
pub fn xr_type() -> BackendXRType
What technology is being used to drive StereoKit’s XR functionality? OpenXR is the most likely candidate here, but if you’re running the flatscreen Simulator, or running in the web with WebXR, then this will reflect that. https://stereokit.net/Pages/StereoKit/Backend/XRType.html
see also backend_xr_get_type
§Examples
use stereokit_rust::system::{Backend, BackendXRType};
let xr_type = Backend::xr_type();
assert_eq!(xr_type, BackendXRType::None);
Auto Trait Implementations§
impl Freeze for Backend
impl RefUnwindSafe for Backend
impl Send for Backend
impl Sync for Backend
impl Unpin for Backend
impl UnwindSafe for Backend
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.