diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/script/dom/navigator.rs | 1 | ||||
-rw-r--r-- | components/script/dom/webidls/XRSession.webidl | 6 | ||||
-rw-r--r-- | components/script/dom/webidls/XRSpace.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/xr.rs | 2 | ||||
-rw-r--r-- | components/script/dom/xrframe.rs | 2 | ||||
-rw-r--r-- | components/script/dom/xrsession.rs | 9 | ||||
-rw-r--r-- | components/script/dom/xrviewerpose.rs | 1 | ||||
-rw-r--r-- | components/script/dom/xrwebgllayer.rs | 6 |
8 files changed, 27 insertions, 2 deletions
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs index 0253bb306f0..aa49701709a 100644 --- a/components/script/dom/navigator.rs +++ b/components/script/dom/navigator.rs @@ -158,6 +158,7 @@ impl NavigatorMethods for Navigator { promise } + /// https://immersive-web.github.io/webxr/#dom-navigator-xr fn Xr(&self) -> DomRoot<XR> { self.xr.or_init(|| XR::new(&self.global())) } diff --git a/components/script/dom/webidls/XRSession.webidl b/components/script/dom/webidls/XRSession.webidl index b16e9513e75..7cf25bf8c36 100644 --- a/components/script/dom/webidls/XRSession.webidl +++ b/components/script/dom/webidls/XRSession.webidl @@ -12,7 +12,8 @@ enum XREnvironmentBlendMode { callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame); -[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] interface XRSession : EventTarget { +[SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] +interface XRSession : EventTarget { // // Attributes readonly attribute XRSessionMode mode; // readonly attribute XRPresentationContext outputContext; @@ -23,7 +24,8 @@ callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame) attribute XRLayer? baseLayer; // // Methods - // Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type, optional XRReferenceSpaceOptions options); + // Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type, + // optional XRReferenceSpaceOptions options); // FrozenArray<XRInputSource> getInputSources(); diff --git a/components/script/dom/webidls/XRSpace.webidl b/components/script/dom/webidls/XRSpace.webidl index 96c07f217a0..54401b051c8 100644 --- a/components/script/dom/webidls/XRSpace.webidl +++ b/components/script/dom/webidls/XRSpace.webidl @@ -2,6 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +// https://immersive-web.github.io/webxr/#xrspace-interface + [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] interface XRSpace : EventTarget { // XRRigidTransform? getTransformTo(XRSpace other); diff --git a/components/script/dom/xr.rs b/components/script/dom/xr.rs index 3f1e963666c..b381ef56aa1 100644 --- a/components/script/dom/xr.rs +++ b/components/script/dom/xr.rs @@ -58,6 +58,7 @@ impl Drop for XR { impl XRMethods for XR { #[allow(unrooted_must_root)] + /// https://immersive-web.github.io/webxr/#dom-xr-supportssessionmode fn SupportsSessionMode(&self, mode: XRSessionMode) -> Rc<Promise> { // XXXManishearth this should select an XR device first let promise = Promise::new(&self.global()); @@ -72,6 +73,7 @@ impl XRMethods for XR { } #[allow(unrooted_must_root)] + /// https://immersive-web.github.io/webxr/#dom-xr-requestsession fn RequestSession(&self, options: &XRSessionCreationOptions) -> Rc<Promise> { let promise = Promise::new(&self.global()); if options.mode != XRSessionMode::Immersive_vr { diff --git a/components/script/dom/xrframe.rs b/components/script/dom/xrframe.rs index 2430c1a3812..8343bb76420 100644 --- a/components/script/dom/xrframe.rs +++ b/components/script/dom/xrframe.rs @@ -46,10 +46,12 @@ impl XRFrame { } impl XRFrameMethods for XRFrame { + /// https://immersive-web.github.io/webxr/#dom-xrframe-session fn Session(&self) -> DomRoot<XRSession> { DomRoot::from_ref(&self.session) } + /// https://immersive-web.github.io/webxr/#dom-xrframe-getviewerpose fn GetViewerPose(&self, reference: Option<&XRReferenceSpace>) -> Option<DomRoot<XRViewerPose>> { // We assume the reference space is eye level for now // since it's the only one 3DOF devices support diff --git a/components/script/dom/xrsession.rs b/components/script/dom/xrsession.rs index 3dc4797d3c5..8432603e4e7 100644 --- a/components/script/dom/xrsession.rs +++ b/components/script/dom/xrsession.rs @@ -50,26 +50,32 @@ impl XRSession { } impl XRSessionMethods for XRSession { + /// https://immersive-web.github.io/webxr/#dom-xrsession-depthnear fn DepthNear(&self) -> Finite<f64> { Finite::wrap(self.depth_near.get()) } + /// https://immersive-web.github.io/webxr/#dom-xrsession-depthfar fn DepthFar(&self) -> Finite<f64> { Finite::wrap(self.depth_far.get()) } + /// https://immersive-web.github.io/webxr/#dom-xrsession-depthnear fn SetDepthNear(&self, d: Finite<f64>) { self.depth_near.set(*d) } + /// https://immersive-web.github.io/webxr/#dom-xrsession-depthfar fn SetDepthFar(&self, d: Finite<f64>) { self.depth_far.set(*d) } + /// https://immersive-web.github.io/webxr/#dom-xrsession-mode fn Mode(&self) -> XRSessionMode { XRSessionMode::Immersive_vr } + /// https://immersive-web.github.io/webxr/#dom-xrsession-baselayer fn SetBaseLayer(&self, layer: Option<&XRLayer>) { self.base_layer.set(layer); if let Some(layer) = layer { @@ -81,14 +87,17 @@ impl XRSessionMethods for XRSession { } } + /// https://immersive-web.github.io/webxr/#dom-xrsession-baselayer fn GetBaseLayer(&self) -> Option<DomRoot<XRLayer>> { self.base_layer.get() } + /// https://immersive-web.github.io/webxr/#dom-xrsession-requestanimationframe fn RequestAnimationFrame(&self, callback: Rc<XRFrameRequestCallback>) -> i32 { self.display.xr_raf(callback) as i32 } + /// https://immersive-web.github.io/webxr/#dom-xrsession-cancelanimationframe fn CancelAnimationFrame(&self, frame: i32) { self.display.xr_cancel_raf(frame) } diff --git a/components/script/dom/xrviewerpose.rs b/components/script/dom/xrviewerpose.rs index 258308a211b..72420fc0530 100644 --- a/components/script/dom/xrviewerpose.rs +++ b/components/script/dom/xrviewerpose.rs @@ -36,6 +36,7 @@ impl XRViewerPose { } impl XRViewerPoseMethods for XRViewerPose { + /// https://immersive-web.github.io/webxr/#dom-xrviewerpose-views fn Views(&self) -> Vec<DomRoot<XRView>> { vec![ DomRoot::from_ref(&self.left), diff --git a/components/script/dom/xrwebgllayer.rs b/components/script/dom/xrwebgllayer.rs index c9b6377e879..7af8a6cedae 100644 --- a/components/script/dom/xrwebgllayer.rs +++ b/components/script/dom/xrwebgllayer.rs @@ -72,26 +72,32 @@ impl XRWebGLLayer { } impl XRWebGLLayerMethods for XRWebGLLayer { + /// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-depth fn Depth(&self) -> bool { self.depth.get() } + /// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-stencil fn Stencil(&self) -> bool { self.stencil.get() } + /// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-antialias fn Antialias(&self) -> bool { self.antialias.get() } + /// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-alpha fn Alpha(&self) -> bool { self.alpha.get() } + /// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-context fn Context(&self) -> DomRoot<WebGLRenderingContext> { DomRoot::from_ref(&self.context) } + /// https://immersive-web.github.io/webxr/#dom-xrwebgllayer-getviewport fn GetViewport(&self, view: &XRView) -> Option<DomRoot<XRViewport>> { if self.session != view.session() { return None; |