aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2020-01-08 16:45:37 +0530
committerManish Goregaokar <manishsmail@gmail.com>2020-01-09 08:16:25 +0530
commit7046f543a1875ab419d30fad8cc33333e92e4373 (patch)
tree52dd2b256324b6487f6830958c705e9285b49fd7 /components/script/dom
parent11e882385d92dab96350adb5e3531d1b8c248c27 (diff)
downloadservo-7046f543a1875ab419d30fad8cc33333e92e4373.tar.gz
servo-7046f543a1875ab419d30fad8cc33333e92e4373.zip
Expose targetRayMode
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/webidls/XRInputSource.webidl2
-rw-r--r--components/script/dom/xrinputsource.rs13
2 files changed, 12 insertions, 3 deletions
diff --git a/components/script/dom/webidls/XRInputSource.webidl b/components/script/dom/webidls/XRInputSource.webidl
index 51efc645282..f07de183927 100644
--- a/components/script/dom/webidls/XRInputSource.webidl
+++ b/components/script/dom/webidls/XRInputSource.webidl
@@ -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;
diff --git a/components/script/dom/xrinputsource.rs b/components/script/dom/xrinputsource.rs
index d24e328d361..fed76937d9c 100644
--- a/components/script/dom/xrinputsource.rs
+++ b/components/script/dom/xrinputsource.rs
@@ -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(|| {