Struct SystemInfo

Source
#[repr(C)]
pub struct SystemInfo { /* private fields */ }
Expand description

Information about a system’s capabilities and properties! https://stereokit.net/Pages/StereoKit/SystemInfo.html

see also: SkInfo::get_system Sk::get_system

§Examples

use stereokit_rust::sk::{Sk, SkSettings, SystemInfo, AppMode};
use stereokit_rust::system::LogLevel;

let mut settings = SkSettings::default();
settings.app_name("Test").mode(AppMode::Offscreen);
let sk = Sk::init(&settings).unwrap();
let system_info: SystemInfo = sk.get_system();
// 0 everywhere:
assert_eq!(system_info, SystemInfo::default());
Sk::shutdown();

Implementations§

Source§

impl SystemInfo

Source

pub fn get_display_width(&self) -> i32

Width of the display surface, in pixels! For a stereo display, this will be the width of a single eye. https://stereokit.net/Pages/StereoKit/SystemInfo/displayWidth.html

Source

pub fn get_display_height(&self) -> i32

Height of the display surface, in pixels! For a stereo display, this will be the height of a single eye. https://stereokit.net/Pages/StereoKit/SystemInfo/displayHeight.html

Source

pub fn get_spatial_bridge_present(&self) -> bool

Does the device we’re currently on have the spatial graph bridge extension? The extension is provided through the function crate::system::World::from_spatial_node. This allows OpenXR to talk with certain windows APIs, such as the QR code API that provides Graph Node GUIDs for the pose. https://stereokit.net/Pages/StereoKit/SystemInfo/spatialBridgePresent.html

Source

pub fn get_perception_bridge_present(&self) -> bool

Can the device work with externally provided spatial anchors, like UWP’s Windows.Perception.Spatial.SpatialAnchor https://stereokit.net/Pages/StereoKit/SystemInfo/perceptionBridgePresent.html

Source

pub fn get_eye_tracking_present(&self) -> bool

Does the device we’re on have eye tracking support present? This is not an indicator that the user has given the application permission to access this information. See Input.Gaze for how to use this data. https://stereokit.net/Pages/StereoKit/SystemInfo/eyeTrackingPresent.html

Source

pub fn get_overlay_app(&self) -> bool

This tells if the app was successfully started as an overlay application. If this is true, then expect this application to be composited with other content below it! https://stereokit.net/Pages/StereoKit/SystemInfo/overlayApp.html

Source

pub fn get_world_occlusion_present(&self) -> bool

Does this device support world occlusion of digital objects? If this is true, then World.OcclusionEnabled can be set to true, and crate::system::World::occlusion_material can be modified. https://stereokit.net/Pages/StereoKit/SystemInfo/worldOcclusionPresent.html

Source

pub fn get_world_raycast_present(&self) -> bool

Can this device get ray intersections from the environment? If this is true, then crate::system::World::raycast_enabled can be set to true, and crate::system::World::raycast can be used. https://stereokit.net/Pages/StereoKit/SystemInfo/worldRaycastPresent.html

Trait Implementations§

Source§

impl Clone for SystemInfo

Source§

fn clone(&self) -> SystemInfo

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SystemInfo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SystemInfo

Source§

fn default() -> SystemInfo

Returns the “default value” for a type. Read more
Source§

impl PartialEq for SystemInfo

Source§

fn eq(&self, other: &SystemInfo) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for SystemInfo

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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