Add session parameter to XRSpace

This commit is contained in:
Manish Goregaokar 2019-03-14 15:18:47 -07:00
parent ffacb1179e
commit 8f14007979
3 changed files with 22 additions and 11 deletions

View file

@ -9,6 +9,7 @@ use crate::dom::bindings::root::{DomRoot, MutDom};
use crate::dom::dompointreadonly::DOMPointReadOnly; use crate::dom::dompointreadonly::DOMPointReadOnly;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::dom::xrrigidtransform::XRRigidTransform; use crate::dom::xrrigidtransform::XRRigidTransform;
use crate::dom::xrsession::XRSession;
use crate::dom::xrspace::XRSpace; use crate::dom::xrspace::XRSpace;
use dom_struct::dom_struct; use dom_struct::dom_struct;
@ -19,9 +20,9 @@ pub struct XRReferenceSpace {
} }
impl XRReferenceSpace { impl XRReferenceSpace {
pub fn new_inherited(transform: &XRRigidTransform) -> XRReferenceSpace { pub fn new_inherited(session: &XRSession, transform: &XRRigidTransform) -> XRReferenceSpace {
XRReferenceSpace { XRReferenceSpace {
xrspace: XRSpace::new_inherited(), xrspace: XRSpace::new_inherited(session),
transform: MutDom::new(transform), transform: MutDom::new(transform),
} }
} }
@ -29,12 +30,13 @@ impl XRReferenceSpace {
#[allow(unused)] #[allow(unused)]
pub fn new( pub fn new(
global: &Window, global: &Window,
session: &XRSession,
position: &DOMPointReadOnly, position: &DOMPointReadOnly,
orientation: &DOMPointReadOnly, orientation: &DOMPointReadOnly,
) -> DomRoot<XRReferenceSpace> { ) -> DomRoot<XRReferenceSpace> {
let transform = XRRigidTransform::identity(global); let transform = XRRigidTransform::identity(global);
reflect_dom_object( reflect_dom_object(
Box::new(XRReferenceSpace::new_inherited(&transform)), Box::new(XRReferenceSpace::new_inherited(session, &transform)),
global, global,
XRReferenceSpaceBinding::Wrap, XRReferenceSpaceBinding::Wrap,
) )

View file

@ -4,27 +4,30 @@
use crate::dom::bindings::codegen::Bindings::XRSpaceBinding; use crate::dom::bindings::codegen::Bindings::XRSpaceBinding;
use crate::dom::bindings::reflector::reflect_dom_object; use crate::dom::bindings::reflector::reflect_dom_object;
use crate::dom::bindings::root::DomRoot; use crate::dom::bindings::root::{Dom, DomRoot};
use crate::dom::eventtarget::EventTarget; use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::GlobalScope;
use crate::dom::xrsession::XRSession;
use dom_struct::dom_struct; use dom_struct::dom_struct;
#[dom_struct] #[dom_struct]
pub struct XRSpace { pub struct XRSpace {
eventtarget: EventTarget, eventtarget: EventTarget,
session: Dom<XRSession>,
} }
impl XRSpace { impl XRSpace {
pub fn new_inherited() -> XRSpace { pub fn new_inherited(session: &XRSession) -> XRSpace {
XRSpace { XRSpace {
eventtarget: EventTarget::new_inherited(), eventtarget: EventTarget::new_inherited(),
session: Dom::from_ref(session),
} }
} }
#[allow(unused)] #[allow(unused)]
pub fn new(global: &GlobalScope) -> DomRoot<XRSpace> { pub fn new(global: &GlobalScope, session: &XRSession) -> DomRoot<XRSpace> {
reflect_dom_object( reflect_dom_object(
Box::new(XRSpace::new_inherited()), Box::new(XRSpace::new_inherited(session)),
global, global,
XRSpaceBinding::Wrap, XRSpaceBinding::Wrap,
) )

View file

@ -8,6 +8,7 @@ use crate::dom::bindings::root::DomRoot;
use crate::dom::window::Window; use crate::dom::window::Window;
use crate::dom::xrreferencespace::XRReferenceSpace; use crate::dom::xrreferencespace::XRReferenceSpace;
use crate::dom::xrrigidtransform::XRRigidTransform; use crate::dom::xrrigidtransform::XRRigidTransform;
use crate::dom::xrsession::XRSession;
use dom_struct::dom_struct; use dom_struct::dom_struct;
#[dom_struct] #[dom_struct]
@ -17,16 +18,21 @@ pub struct XRStationaryReferenceSpace {
#[allow(unused)] #[allow(unused)]
impl XRStationaryReferenceSpace { impl XRStationaryReferenceSpace {
pub fn new_inherited(transform: &XRRigidTransform) -> XRStationaryReferenceSpace { pub fn new_inherited(
session: &XRSession,
transform: &XRRigidTransform,
) -> XRStationaryReferenceSpace {
XRStationaryReferenceSpace { XRStationaryReferenceSpace {
xrreferencespace: XRReferenceSpace::new_inherited(transform), xrreferencespace: XRReferenceSpace::new_inherited(session, transform),
} }
} }
pub fn new(window: &Window) -> DomRoot<XRStationaryReferenceSpace> { pub fn new(window: &Window, session: &XRSession) -> DomRoot<XRStationaryReferenceSpace> {
let transform = XRRigidTransform::identity(window); let transform = XRRigidTransform::identity(window);
reflect_dom_object( reflect_dom_object(
Box::new(XRStationaryReferenceSpace::new_inherited(&transform)), Box::new(XRStationaryReferenceSpace::new_inherited(
session, &transform,
)),
window, window,
XRStationaryReferenceSpaceBinding::Wrap, XRStationaryReferenceSpaceBinding::Wrap,
) )