Struct Backend

Source
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

Source

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);
}
Source

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);
}
Source

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§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more