diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2018-12-21 14:26:11 -0800 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2018-12-21 14:43:41 -0800 |
commit | 7e043a33f17c5a084bb6e34ab3497932a285028a (patch) | |
tree | 0a3d767770db422509cb678f0ca702b5ac9be96e /components/script/dom/xrview.rs | |
parent | e259ff727ee815cbd3d4d87fbd2e17564f9c9e3d (diff) | |
download | servo-7e043a33f17c5a084bb6e34ab3497932a285028a.tar.gz servo-7e043a33f17c5a084bb6e34ab3497932a285028a.zip |
Support fetching viewport info
Diffstat (limited to 'components/script/dom/xrview.rs')
-rw-r--r-- | components/script/dom/xrview.rs | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/components/script/dom/xrview.rs b/components/script/dom/xrview.rs index c8f420b016c..f9d538cb946 100644 --- a/components/script/dom/xrview.rs +++ b/components/script/dom/xrview.rs @@ -3,28 +3,45 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::codegen::Bindings::XRViewBinding; +use crate::dom::bindings::codegen::Bindings::XRViewBinding::{XREye, XRViewMethods}; use crate::dom::bindings::reflector::{reflect_dom_object, Reflector}; -use crate::dom::bindings::root::DomRoot; +use crate::dom::bindings::root::{Dom, DomRoot}; use crate::dom::globalscope::GlobalScope; +use crate::dom::xrsession::XRSession; use dom_struct::dom_struct; #[dom_struct] pub struct XRView { reflector_: Reflector, + session: Dom<XRSession>, + eye: XREye, } impl XRView { - fn new_inherited() -> XRView { + fn new_inherited(session: &XRSession, eye: XREye) -> XRView { XRView { reflector_: Reflector::new(), + session: Dom::from_ref(session), + eye } } - pub fn new(global: &GlobalScope) -> DomRoot<XRView> { + pub fn new(global: &GlobalScope, session: &XRSession, eye: XREye) -> DomRoot<XRView> { reflect_dom_object( - Box::new(XRView::new_inherited()), + Box::new(XRView::new_inherited(session, eye)), global, XRViewBinding::Wrap, ) } + + pub fn session(&self) -> &XRSession { + &self.session + } } + +impl XRViewMethods for XRView { + /// https://immersive-web.github.io/webxr/#dom-xrview-eye + fn Eye(&self) -> XREye { + self.eye + } +}
\ No newline at end of file |