/* This Source Code Form is subject to the terms of the Mozilla Public * 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/#xrsession-interface enum XREnvironmentBlendMode { "opaque", "additive", "alpha-blend", }; callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame); [SecureContext, Exposed=Window, Pref="dom.webxr.enabled"] interface XRSession : EventTarget { // // Attributes readonly attribute XRSessionMode mode; // readonly attribute XRPresentationContext outputContext; // readonly attribute XREnvironmentBlendMode environmentBlendMode; attribute double depthNear; attribute double depthFar; attribute XRLayer? baseLayer; // // Methods // Promise requestReferenceSpace(XRReferenceSpaceType type, // optional XRReferenceSpaceOptions options); // FrozenArray getInputSources(); long requestAnimationFrame(XRFrameRequestCallback callback); void cancelAnimationFrame(long handle); // Promise end(); // // Events // attribute EventHandler onblur; // attribute EventHandler onfocus; // attribute EventHandler onend; // attribute EventHandler onselect; // attribute EventHandler oninputsourceschange; // attribute EventHandler onselectstart; // attribute EventHandler onselectend; };