mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
Expose targetRayMode
This commit is contained in:
parent
11e882385d
commit
7046f543a1
2 changed files with 12 additions and 3 deletions
|
@ -19,7 +19,7 @@ enum XRTargetRayMode {
|
|||
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
|
||||
interface XRInputSource {
|
||||
readonly attribute XRHandedness handedness;
|
||||
// [SameObject] readonly attribute XRTargetRayMode targetRayMode;
|
||||
readonly attribute XRTargetRayMode targetRayMode;
|
||||
[SameObject] readonly attribute XRSpace targetRaySpace;
|
||||
[SameObject] readonly attribute XRSpace? gripSpace;
|
||||
// [SameObject] readonly attribute Gamepad? gamepad;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
use crate::dom::bindings::codegen::Bindings::XRInputSourceBinding;
|
||||
use crate::dom::bindings::codegen::Bindings::XRInputSourceBinding::{
|
||||
XRHandedness, XRInputSourceMethods,
|
||||
XRHandedness, XRInputSourceMethods, XRTargetRayMode,
|
||||
};
|
||||
use crate::dom::bindings::reflector::{reflect_dom_object, DomObject, Reflector};
|
||||
use crate::dom::bindings::root::{Dom, DomRoot, MutNullableDom};
|
||||
|
@ -12,7 +12,7 @@ use crate::dom::globalscope::GlobalScope;
|
|||
use crate::dom::xrsession::XRSession;
|
||||
use crate::dom::xrspace::XRSpace;
|
||||
use dom_struct::dom_struct;
|
||||
use webxr_api::{Handedness, InputId, InputSource};
|
||||
use webxr_api::{Handedness, InputId, InputSource, TargetRayMode};
|
||||
|
||||
#[dom_struct]
|
||||
pub struct XRInputSource {
|
||||
|
@ -64,6 +64,15 @@ impl XRInputSourceMethods for XRInputSource {
|
|||
}
|
||||
}
|
||||
|
||||
/// https://immersive-web.github.io/webxr/#dom-xrinputsource-targetraymode
|
||||
fn TargetRayMode(&self) -> XRTargetRayMode {
|
||||
match self.info.target_ray_mode {
|
||||
TargetRayMode::Gaze => XRTargetRayMode::Gaze,
|
||||
TargetRayMode::TrackedPointer => XRTargetRayMode::Tracked_pointer,
|
||||
TargetRayMode::Screen => XRTargetRayMode::Screen,
|
||||
}
|
||||
}
|
||||
|
||||
/// https://immersive-web.github.io/webxr/#dom-xrinputsource-targetrayspace
|
||||
fn TargetRaySpace(&self) -> DomRoot<XRSpace> {
|
||||
self.target_ray_space.or_init(|| {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue