| // 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/) |
| |
| [SecureContext, Exposed=Window] interface XR : EventTarget { |
| // Methods |
| Promise<XRDevice?> requestDevice(); |
| |
| // Events |
| attribute EventHandler ondevicechange; |
| }; |
| |
| [SecureContext] |
| partial interface Navigator { |
| [SameObject] readonly attribute XR xr; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRDevice { |
| // Methods |
| Promise<void> supportsSession(optional XRSessionCreationOptions options); |
| Promise<XRSession> requestSession(optional XRSessionCreationOptions options); |
| }; |
| |
| dictionary XRSessionCreationOptions { |
| boolean immersive = false; |
| XRPresentationContext outputContext; |
| }; |
| |
| enum XREnvironmentBlendMode { |
| "opaque", |
| "additive", |
| "alpha-blend", |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRSession : EventTarget { |
| // Attributes |
| readonly attribute XRDevice device; |
| readonly attribute boolean immersive; |
| readonly attribute XRPresentationContext outputContext; |
| readonly attribute XREnvironmentBlendMode environmentBlendMode; |
| |
| attribute double depthNear; |
| attribute double depthFar; |
| attribute XRLayer baseLayer; |
| |
| // Methods |
| Promise<XRFrameOfReference> requestFrameOfReference(XRFrameOfReferenceType type, optional XRFrameOfReferenceOptions options); |
| |
| FrozenArray<XRInputSource> getInputSources(); |
| |
| long requestAnimationFrame(XRFrameRequestCallback callback); |
| void cancelAnimationFrame(long handle); |
| |
| Promise<void> end(); |
| |
| // Events |
| attribute EventHandler onblur; |
| attribute EventHandler onfocus; |
| attribute EventHandler onresetpose; |
| attribute EventHandler onend; |
| attribute EventHandler onselect; |
| attribute EventHandler onselectstart; |
| attribute EventHandler onselectend; |
| }; |
| |
| callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame); |
| |
| [SecureContext, Exposed=Window] interface XRFrame { |
| readonly attribute XRSession session; |
| readonly attribute FrozenArray<XRView> views; |
| |
| XRDevicePose? getDevicePose(XRCoordinateSystem coordinateSystem); |
| XRInputPose? getInputPose(XRInputSource inputSource, XRCoordinateSystem coordinateSystem); |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRCoordinateSystem : EventTarget { |
| Float32Array? getTransformTo(XRCoordinateSystem other); |
| }; |
| |
| enum XRFrameOfReferenceType { |
| "head-model", |
| "eye-level", |
| "stage", |
| }; |
| |
| dictionary XRFrameOfReferenceOptions { |
| boolean disableStageEmulation = false; |
| double stageEmulationHeight = 0.0; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRFrameOfReference : XRCoordinateSystem { |
| readonly attribute XRStageBounds? bounds; |
| readonly attribute double emulatedHeight; |
| |
| attribute EventHandler onboundschange; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRStageBounds { |
| readonly attribute FrozenArray<DOMPointReadOnly> geometry; |
| }; |
| |
| enum XREye { |
| "left", |
| "right" |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRView { |
| readonly attribute XREye eye; |
| readonly attribute Float32Array projectionMatrix; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRViewport { |
| readonly attribute long x; |
| readonly attribute long y; |
| readonly attribute long width; |
| readonly attribute long height; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRDevicePose { |
| readonly attribute Float32Array poseModelMatrix; |
| |
| Float32Array getViewMatrix(XRView view); |
| }; |
| |
| enum XRHandedness { |
| "", |
| "left", |
| "right" |
| }; |
| |
| enum XRTargetRayMode { |
| "gaze", |
| "tracked-pointer", |
| "screen" |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRInputSource { |
| readonly attribute XRHandedness handedness; |
| readonly attribute XRTargetRayMode targetRayMode; |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRRay { |
| readonly attribute DOMPointReadOnly origin; |
| readonly attribute DOMPointReadOnly direction; |
| readonly attribute Float32Array transformMatrix; |
| }; |
| |
| [SecureContext, Exposed=Window] |
| interface XRInputPose { |
| readonly attribute boolean emulatedPosition; |
| readonly attribute XRRay targetRay; |
| readonly attribute Float32Array? gripMatrix; |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRLayer {}; |
| |
| typedef (WebGLRenderingContext or |
| WebGL2RenderingContext) XRWebGLRenderingContext; |
| |
| dictionary XRWebGLLayerInit { |
| boolean antialias = true; |
| boolean depth = false; |
| boolean stencil = false; |
| boolean alpha = true; |
| boolean multiview = false; |
| double framebufferScaleFactor = 1.0; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(XRSession session, |
| XRWebGLRenderingContext context, |
| optional XRWebGLLayerInit layerInit)] |
| interface XRWebGLLayer : XRLayer { |
| // Attributes |
| readonly attribute XRWebGLRenderingContext context; |
| |
| readonly attribute boolean antialias; |
| readonly attribute boolean depth; |
| readonly attribute boolean stencil; |
| readonly attribute boolean alpha; |
| readonly attribute boolean multiview; |
| |
| readonly attribute WebGLFramebuffer framebuffer; |
| readonly attribute unsigned long framebufferWidth; |
| readonly attribute unsigned long framebufferHeight; |
| |
| // Methods |
| XRViewport? getViewport(XRView view); |
| void requestViewportScaling(double viewportScaleFactor); |
| |
| // Static Methods |
| static double getNativeFramebufferScaleFactor(XRSession session); |
| }; |
| |
| partial dictionary WebGLContextAttributes { |
| XRDevice compatibleXRDevice = null; |
| }; |
| |
| partial interface mixin WebGLRenderingContextBase { |
| Promise<void> setCompatibleXRDevice(XRDevice device); |
| }; |
| |
| [SecureContext, Exposed=Window] interface XRPresentationContext { |
| readonly attribute HTMLCanvasElement canvas; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRSessionEventInit eventInitDict)] |
| interface XRSessionEvent : Event { |
| readonly attribute XRSession session; |
| }; |
| |
| dictionary XRSessionEventInit : EventInit { |
| required XRSession session; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRInputSourceEventInit eventInitDict)] |
| interface XRInputSourceEvent : Event { |
| readonly attribute XRFrame frame; |
| readonly attribute XRInputSource inputSource; |
| }; |
| |
| dictionary XRInputSourceEventInit : EventInit { |
| required XRFrame frame; |
| required XRInputSource inputSource; |
| }; |
| |
| [SecureContext, Exposed=Window, Constructor(DOMString type, XRCoordinateSystemEventInit eventInitDict)] |
| interface XRCoordinateSystemEvent : Event { |
| readonly attribute XRCoordinateSystem coordinateSystem; |
| }; |
| |
| dictionary XRCoordinateSystemEventInit : EventInit { |
| required XRCoordinateSystem coordinateSystem; |
| }; |