|
@@ -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());
|
|
|
}
|