diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2020-01-13 15:13:08 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2020-01-21 15:47:30 -0800 |
commit | 9c34a6585b50b7c20468060dafca717d1d363e6c (patch) | |
tree | 8161e4603b6e7f2f737bdc8296f4e6879f6d86c1 /components/script/dom/fakexrinputcontroller.rs | |
parent | e9221e6ce02b4fc16676bda2895105bea8e95e7f (diff) | |
download | servo-9c34a6585b50b7c20468060dafca717d1d363e6c.tar.gz servo-9c34a6585b50b7c20468060dafca717d1d363e6c.zip |
Handle SetTargetRayMode and SetHandedness
Diffstat (limited to 'components/script/dom/fakexrinputcontroller.rs')
-rw-r--r-- | components/script/dom/fakexrinputcontroller.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/components/script/dom/fakexrinputcontroller.rs b/components/script/dom/fakexrinputcontroller.rs index 67e6f72cf70..7c145a3ed20 100644 --- a/components/script/dom/fakexrinputcontroller.rs +++ b/components/script/dom/fakexrinputcontroller.rs @@ -6,6 +6,9 @@ use crate::dom::bindings::codegen::Bindings::FakeXRDeviceBinding::FakeXRRigidTra use crate::dom::bindings::codegen::Bindings::FakeXRInputControllerBinding::{ self, FakeXRInputControllerMethods, }; +use crate::dom::bindings::codegen::Bindings::XRInputSourceBinding::{ + XRHandedness, XRTargetRayMode, +}; use crate::dom::bindings::error::Fallible; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; use crate::dom::bindings::root::DomRoot; @@ -13,7 +16,9 @@ use crate::dom::fakexrdevice::get_origin; use crate::dom::globalscope::GlobalScope; use dom_struct::dom_struct; use ipc_channel::ipc::IpcSender; -use webxr_api::{InputId, MockDeviceMsg, MockInputMsg, SelectEvent, SelectKind}; +use webxr_api::{ + Handedness, InputId, MockDeviceMsg, MockInputMsg, SelectEvent, SelectKind, TargetRayMode, +}; #[dom_struct] pub struct FakeXRInputController { @@ -103,4 +108,24 @@ impl FakeXRInputControllerMethods for FakeXRInputController { SelectEvent::Select, )) } + + /// https://immersive-web.github.io/webxr-test-api/#dom-fakexrinputcontroller-sethandedness + fn SetHandedness(&self, handedness: XRHandedness) { + let h = match handedness { + XRHandedness::None => Handedness::None, + XRHandedness::Left => Handedness::Left, + XRHandedness::Right => Handedness::Right, + }; + let _ = self.send_message(MockInputMsg::SetHandedness(h)); + } + + /// https://immersive-web.github.io/webxr-test-api/#dom-fakexrinputcontroller-settargetraymode + fn SetTargetRayMode(&self, target_ray_mode: XRTargetRayMode) { + let t = match target_ray_mode { + XRTargetRayMode::Gaze => TargetRayMode::Gaze, + XRTargetRayMode::Tracked_pointer => TargetRayMode::TrackedPointer, + XRTargetRayMode::Screen => TargetRayMode::Screen, + }; + let _ = self.send_message(MockInputMsg::SetTargetRayMode(t)); + } } |