diff options
Diffstat (limited to 'components/script/dom/xrviewerpose.rs')
-rw-r--r-- | components/script/dom/xrviewerpose.rs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/components/script/dom/xrviewerpose.rs b/components/script/dom/xrviewerpose.rs index 9fc06c671dd..258308a211b 100644 --- a/components/script/dom/xrviewerpose.rs +++ b/components/script/dom/xrviewerpose.rs @@ -3,28 +3,43 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use crate::dom::bindings::codegen::Bindings::XRViewerPoseBinding; +use crate::dom::bindings::codegen::Bindings::XRViewerPoseBinding::XRViewerPoseMethods; 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::xrview::XRView; use dom_struct::dom_struct; #[dom_struct] pub struct XRViewerPose { reflector_: Reflector, + left: Dom<XRView>, + right: Dom<XRView>, } impl XRViewerPose { - fn new_inherited() -> XRViewerPose { + fn new_inherited(left: &XRView, right: &XRView) -> XRViewerPose { XRViewerPose { reflector_: Reflector::new(), + left: Dom::from_ref(left), + right: Dom::from_ref(right), } } - pub fn new(global: &GlobalScope) -> DomRoot<XRViewerPose> { + pub fn new(global: &GlobalScope, left: &XRView, right: &XRView) -> DomRoot<XRViewerPose> { reflect_dom_object( - Box::new(XRViewerPose::new_inherited()), + Box::new(XRViewerPose::new_inherited(left, right)), global, XRViewerPoseBinding::Wrap, ) } } + +impl XRViewerPoseMethods for XRViewerPose { + fn Views(&self) -> Vec<DomRoot<XRView>> { + vec![ + DomRoot::from_ref(&self.left), + DomRoot::from_ref(&self.right), + ] + } +} |