Interface XRSession

    EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them.

    MDN Reference

    interface XRSession {
        depthDataFormat?: XRDepthDataFormat;
        depthUsage?: XRDepthUsage;
        domOverlayState?: XRDOMOverlayState;
        enabledFeatures?: string[];
        environmentBlendMode: XREnvironmentBlendMode;
        frameRate?: number;
        inputSources: XRInputSourceArray;
        isSystemKeyboardSupported: boolean;
        onend: XRSessionEventHandler;
        onframeratechange: XRSessionEventHandler;
        oninputsourceschange: XRInputSourcesChangeEventHandler;
        onselect: XRInputSourceEventHandler;
        onselectend: XRInputSourceEventHandler;
        onselectstart: XRInputSourceEventHandler;
        onsqueeze: XRInputSourceEventHandler;
        onsqueezeend: XRInputSourceEventHandler;
        onsqueezestart: XRInputSourceEventHandler;
        onvisibilitychange: XRSessionEventHandler;
        renderState: XRRenderState;
        requestHitTest?: ((ray: XRRay, referenceSpace: XRReferenceSpace) => Promise<XRHitResult[]>);
        requestHitTestSource?: ((options: XRHitTestOptionsInit) => Promise<XRHitTestSource>);
        requestHitTestSourceForTransientInput?: ((options: XRTransientInputHitTestOptionsInit) => Promise<XRTransientInputHitTestSource>);
        supportedFrameRates?: Float32Array;
        visibilityState: XRVisibilityState;
        addEventListener<K>(type: K, listener: ((this: XRSession, ev: XRSessionEventMap[K]) => any), options?: boolean | AddEventListenerOptions): void;
        addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
        cancelAnimationFrame(id: number): void;
        dispatchEvent(event: Event): boolean;
        end(): Promise<void>;
        initiateRoomCapture?(): Promise<undefined>;
        removeEventListener<K>(type: K, listener: ((this: XRSession, ev: XRSessionEventMap[K]) => any), options?: boolean | EventListenerOptions): void;
        removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
        requestAnimationFrame(callback: XRFrameRequestCallback): number;
        requestReferenceSpace(type: XRReferenceSpaceType): Promise<XRBoundedReferenceSpace | XRReferenceSpace>;
        updateRenderState(renderStateInit?: XRRenderStateInit): Promise<void>;
        updateTargetFrameRate(rate: number): Promise<void>;
    }
    Hierarchy

    Properties

    depthDataFormat?: XRDepthDataFormat
    depthUsage?: XRDepthUsage
    domOverlayState?: XRDOMOverlayState
    enabledFeatures?: string[]
    environmentBlendMode: XREnvironmentBlendMode
    frameRate?: number
    inputSources: XRInputSourceArray

    Returns a list of this session's XRInputSources, each representing an input device used to control the camera and/or scene.

    isSystemKeyboardSupported: boolean
    onframeratechange: XRSessionEventHandler
    oninputsourceschange: XRInputSourcesChangeEventHandler
    onvisibilitychange: XRSessionEventHandler
    renderState: XRRenderState

    object which contains options affecting how the imagery is rendered. This includes things such as the near and far clipping planes

    requestHitTest?: ((ray: XRRay, referenceSpace: XRReferenceSpace) => Promise<XRHitResult[]>)
    requestHitTestSource?: ((options: XRHitTestOptionsInit) => Promise<XRHitTestSource>)
    requestHitTestSourceForTransientInput?: ((options: XRTransientInputHitTestOptionsInit) => Promise<XRTransientInputHitTestSource>)
    supportedFrameRates?: Float32Array
    visibilityState: XRVisibilityState

    Methods

    • Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.

      The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.

      When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.

      When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.

      When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.

      If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.

      The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.

      MDN Reference

      Type Parameters

      Parameters

      Returns void

    • Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched.

      The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture.

      When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET.

      When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in § 2.8 Observing event listeners.

      When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed.

      If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted.

      The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture.

      MDN Reference

      Parameters

      Returns void

    • Removes a callback from the animation frame painting callback from XRSession's set of animation frame rendering callbacks, given the identifying handle returned by a previous call to requestAnimationFrame().

      Parameters

      • id: number

      Returns void

    • Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.

      MDN Reference

      Parameters

      Returns boolean

    • Ends the WebXR session. Returns a promise which resolves when the session has been shut down.

      Returns Promise<void>

    • XRSession is extended to contain the initiateRoomCapture method which, if supported, will ask the XR Compositor to capture the current room layout. It is up to the XRCompositor if this will replace or augment the set of tracked planes. The user agent MAY also ignore this call, for instance if it doesn’t support a manual room capture more or if it determines that the room is already set up. The initiateRoomCapture method MUST only be able to be called once per XRSession.

      Returns Promise<undefined>

    • Schedules the specified method to be called the next time the user agent is working on rendering an animation frame for the WebXR device. Returns an integer value which can be used to identify the request for the purposes of canceling the callback using cancelAnimationFrame(). This method is comparable to the Window.requestAnimationFrame() method.

      Parameters

      Returns number

    • Parameters

      • rate: number

      Returns Promise<void>