Add XRInputSource.handedness

This commit is contained in:
Manish Goregaokar 2019-04-29 20:15:18 -07:00
parent b693af6a54
commit e5716624d4
2 changed files with 16 additions and 2 deletions

View file

@ -18,7 +18,7 @@ enum XRTargetRayMode {
[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"]
interface XRInputSource {
// [SameObject] readonly attribute XRHandedness handedness;
readonly attribute XRHandedness handedness;
// [SameObject] readonly attribute XRTargetRayMode targetRayMode;
// [SameObject] readonly attribute XRSpace targetRaySpace;
// [SameObject] readonly attribute XRSpace? gripSpace;

View file

@ -4,12 +4,15 @@
use crate::dom::bindings::cell::DomRefCell;
use crate::dom::bindings::codegen::Bindings::XRInputSourceBinding;
use crate::dom::bindings::codegen::Bindings::XRInputSourceBinding::{
XRHandedness, XRInputSourceMethods,
};
use crate::dom::bindings::reflector::{reflect_dom_object, Reflector};
use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::globalscope::GlobalScope;
use crate::dom::xrsession::XRSession;
use dom_struct::dom_struct;
use webvr_traits::{WebVRGamepadData, WebVRGamepadState};
use webvr_traits::{WebVRGamepadData, WebVRGamepadHand, WebVRGamepadState};
#[dom_struct]
pub struct XRInputSource {
@ -52,3 +55,14 @@ impl XRInputSource {
*self.state.borrow_mut() = state;
}
}
impl XRInputSourceMethods for XRInputSource {
/// https://immersive-web.github.io/webxr/#dom-xrinputsource-handedness
fn Handedness(&self) -> XRHandedness {
match self.data.hand {
WebVRGamepadHand::Unknown => XRHandedness::None,
WebVRGamepadHand::Left => XRHandedness::Left,
WebVRGamepadHand::Right => XRHandedness::Right,
}
}
}