Browse Source

use isSessionSupported instead of supportsSession

Raanan Weber 5 years ago
parent
commit
c5e406bf76
1 changed files with 9 additions and 4 deletions
  1. 9 4
      src/Cameras/XR/webXRSessionManager.ts

+ 9 - 4
src/Cameras/XR/webXRSessionManager.ts

@@ -182,7 +182,7 @@ export class WebXRSessionManager implements IDisposable {
      * @param eye the eye for which to get the render target
      * @returns the render target for the specified eye
      */
-    public getRenderTargetTextureForEye(eye: XREye) : RenderTargetTexture {
+    public getRenderTargetTextureForEye(eye: XREye): RenderTargetTexture {
         return this._rttProvider!.getRenderTargetForEye(eye);
     }
 
@@ -203,10 +203,15 @@ export class WebXRSessionManager implements IDisposable {
      * @returns true if supported
      */
     public supportsSessionAsync(sessionMode: XRSessionMode) {
-        if (!(navigator as any).xr || !(navigator as any).xr.supportsSession) {
+        if (!(navigator as any).xr) {
+            return Promise.resolve(false);
+        }
+        // When the specs are final, remove supportsSession!
+        const functionToUse = (navigator as any).xr.isSessionSupported || (navigator as any).xr.supportsSession;
+        if (!functionToUse) {
             return Promise.resolve(false);
         } else {
-            return (navigator as any).xr.supportsSession(sessionMode).then(() => {
+            return functionToUse.call((navigator as any).xr, sessionMode).then(() => {
                 return Promise.resolve(true);
             }).catch((e: any) => {
                 Logger.Warn(e);
@@ -221,7 +226,7 @@ export class WebXRSessionManager implements IDisposable {
      * @param options optional options to provide when creating a new render target
      * @returns a WebXR render target to which the session can render
      */
-    public getWebXRRenderTarget(onStateChangedObservable?: Observable<WebXRState>, options?: WebXRManagedOutputCanvasOptions) : WebXRRenderTarget {
+    public getWebXRRenderTarget(onStateChangedObservable?: Observable<WebXRState>, options?: WebXRManagedOutputCanvasOptions): WebXRRenderTarget {
         if (this._xrNavigator.xr.native) {
             return this._xrNavigator.xr.getWebXRRenderTarget(this.scene.getEngine());
         }