| // GENERATED CONTENT - DO NOT EDIT |
| // Content was automatically extracted by Reffy into reffy-reports |
| // (https://github.com/tidoust/reffy-reports) |
| // Source: WebXR Device API (https://immersive-web.github.io/webxr/) |
| |
| partial interface Navigator { |
| [SecureContext, SameObject] readonly attribute XR xr; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XR : EventTarget { |
| // Methods |
| Promise<void> supportsSession(XRSessionMode mode); |
| Promise<XRSession> requestSession(XRSessionMode mode, optional XRSessionInit options = {}); |
| |
| // Events |
| attribute EventHandler ondevicechange; |
| }; |
| |
| enum XRSessionMode { |
| "inline", |
| "immersive-vr" |
| }; |
| |
| dictionary XRSessionInit { |
| sequence<any> requiredFeatures; |
| sequence<any> optionalFeatures; |
| }; |
| |
| enum XRVisibilityState { |
| "visible", |
| "visible-blurred", |
| "hidden", |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRSession : EventTarget { |
| // Attributes |
| readonly attribute XRVisibilityState visibilityState; |
| [SameObject] readonly attribute XRRenderState renderState; |
| [SameObject] readonly attribute XRInputSourceArray inputSources; |
| |
| // Methods |
| void updateRenderState(optional XRRenderStateInit state = {}); |
| Promise<XRReferenceSpace> requestReferenceSpace(XRReferenceSpaceType type); |
| |
| long requestAnimationFrame(XRFrameRequestCallback callback); |
| void cancelAnimationFrame(long handle); |
| |
| Promise<void> end(); |
| |
| // Events |
| attribute EventHandler onend; |
| attribute EventHandler onselect; |
| attribute EventHandler oninputsourceschange; |
| attribute EventHandler onselectstart; |
| attribute EventHandler onselectend; |
| attribute EventHandler onvisibilitychange; |
| }; |
| |
| dictionary XRRenderStateInit { |
| double depthNear; |
| double depthFar; |
| double inlineVerticalFieldOfView; |
| XRWebGLLayer? baseLayer; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRRenderState { |
| readonly attribute double depthNear; |
| readonly attribute double depthFar; |
| readonly attribute double? inlineVerticalFieldOfView; |
| readonly attribute XRWebGLLayer? baseLayer; |
| }; |
| |
| callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame); |
| |
| [SecureContext, Exposed=Window] interface XRFrame { |
| [SameObject] readonly attribute XRSession session; |
| |
| XRViewerPose? getViewerPose(XRReferenceSpace referenceSpace); |
| XRPose? getPose(XRSpace space, XRSpace baseSpace); |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRSpace : EventTarget { |
| |
| }; |
| |
| enum XRReferenceSpaceType { |
| "viewer", |
| "local", |
| "local-floor", |
| "bounded-floor", |
| "unbounded" |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRReferenceSpace : XRSpace { |
| XRReferenceSpace getOffsetReferenceSpace(XRRigidTransform originOffset); |
| |
| attribute EventHandler onreset; |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRBoundedReferenceSpace : XRReferenceSpace { |
| readonly attribute FrozenArray<DOMPointReadOnly> boundsGeometry; |
| }; |
| |
| enum XREye { |
| "none", |
| "left", |
| "right" |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRView { |
| readonly attribute XREye eye; |
| readonly attribute Float32Array projectionMatrix; |
| [SameObject] readonly attribute XRRigidTransform transform; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRViewport { |
| readonly attribute long x; |
| readonly attribute long y; |
| readonly attribute long width; |
| readonly attribute long height; |
| }; |
| |
| [SecureContext, Exposed=Window, |
| Constructor(optional DOMPointInit position = {}, optional DOMPointInit orientation = {})] |
| interface XRRigidTransform { |
| [SameObject] readonly attribute DOMPointReadOnly position; |
| [SameObject] readonly attribute DOMPointReadOnly orientation; |
| readonly attribute Float32Array matrix; |
| [SameObject] readonly attribute XRRigidTransform inverse; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRPose { |
| [SameObject] readonly attribute XRRigidTransform transform; |
| readonly attribute boolean emulatedPosition; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRViewerPose : XRPose { |
| [SameObject] readonly attribute FrozenArray<XRView> views; |
| }; |
| |
| enum XRHandedness { |
| "none", |
| "left", |
| "right" |
| }; |
| |
| enum XRTargetRayMode { |
| "gaze", |
| "tracked-pointer", |
| "screen" |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRInputSource { |
| readonly attribute XRHandedness handedness; |
| readonly attribute XRTargetRayMode targetRayMode; |
| [SameObject] readonly attribute XRSpace targetRaySpace; |
| [SameObject] readonly attribute XRSpace? gripSpace; |
| [SameObject] readonly attribute FrozenArray<DOMString> profiles; |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRInputSourceArray { |
| iterable<XRInputSource>; |
| readonly attribute unsigned long length; |
| getter XRInputSource(unsigned long index); |
| }; |
| |
| typedef (WebGLRenderingContext or |
| WebGL2RenderingContext) XRWebGLRenderingContext; |
| |
| dictionary XRWebGLLayerInit { |
| boolean antialias = true; |
| boolean depth = true; |
| boolean stencil = false; |
| boolean alpha = true; |
| boolean ignoreDepthValues = false; |
| double framebufferScaleFactor = 1.0; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(XRSession session, |
| XRWebGLRenderingContext context, |
| optional XRWebGLLayerInit layerInit = {})] |
| interface XRWebGLLayer { |
| // Attributes |
| readonly attribute boolean antialias; |
| readonly attribute boolean ignoreDepthValues; |
| |
| [SameObject] readonly attribute WebGLFramebuffer framebuffer; |
| readonly attribute unsigned long framebufferWidth; |
| readonly attribute unsigned long framebufferHeight; |
| |
| // Methods |
| XRViewport? getViewport(XRView view); |
| |
| // Static Methods |
| static double getNativeFramebufferScaleFactor(XRSession session); |
| }; |
| |
| partial dictionary WebGLContextAttributes { |
| boolean xrCompatible = null; |
| }; |
| |
| partial interface mixin WebGLRenderingContextBase { |
| Promise<void> makeXRCompatible(); |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)] |
| interface XRSessionEvent : Event { |
| [SameObject] readonly attribute XRSession session; |
| }; |
| |
| dictionary XRSessionEventInit : EventInit { |
| required XRSession session; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRInputSourceEventInit eventInitDict)] |
| interface XRInputSourceEvent : Event { |
| [SameObject] readonly attribute XRFrame frame; |
| [SameObject] readonly attribute XRInputSource inputSource; |
| }; |
| |
| dictionary XRInputSourceEventInit : EventInit { |
| required XRFrame frame; |
| required XRInputSource inputSource; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRInputSourcesChangeEventInit eventInitDict)] |
| interface XRInputSourcesChangeEvent : Event { |
| [SameObject] readonly attribute XRSession session; |
| [SameObject] readonly attribute FrozenArray<XRInputSource> added; |
| [SameObject] readonly attribute FrozenArray<XRInputSource> removed; |
| }; |
| |
| dictionary XRInputSourcesChangeEventInit : EventInit { |
| required XRSession session; |
| required FrozenArray<XRInputSource> added; |
| required FrozenArray<XRInputSource> removed; |
| |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRReferenceSpaceEventInit eventInitDict)] |
| interface XRReferenceSpaceEvent : Event { |
| [SameObject] readonly attribute XRReferenceSpace referenceSpace; |
| [SameObject] readonly attribute XRRigidTransform? transform; |
| }; |
| |
| dictionary XRReferenceSpaceEventInit : EventInit { |
| required XRReferenceSpace referenceSpace; |
| XRRigidTransform transform; |
| }; |