Explorar o código

Add the option for configuration in the default experience

Raanan Weber %!s(int64=5) %!d(string=hai) anos
pai
achega
4c49784b55

+ 4 - 1
src/Cameras/XR/webXRDefaultExperience.ts

@@ -7,6 +7,7 @@ import { WebXRControllerTeleportation } from './webXRControllerTeleportation';
 import { WebXRRenderTarget } from './webXRTypes';
 import { WebXREnterExitUI } from './webXREnterExitUI';
 import { AbstractMesh } from '../../Meshes/abstractMesh';
+import { WebXRManagedOutputCanvasOptions } from './webXRManagedOutputCanvas';
 
 /**
  * Options for the default xr helper
@@ -21,6 +22,8 @@ export class WebXRDefaultExperienceOptions {
      * Enable or disable default UI to enter XR
      */
     public disableDefaultUI: boolean;
+
+    public outputCanvasOptions? : WebXRManagedOutputCanvasOptions;
 }
 
 /**
@@ -79,7 +82,7 @@ export class WebXRDefaultExperience {
             }
 
             // Create the WebXR output target
-            result.renderTarget = result.baseExperience.sessionManager.getWebXRRenderTarget(xrHelper.onStateChangedObservable);
+            result.renderTarget = result.baseExperience.sessionManager.getWebXRRenderTarget(xrHelper.onStateChangedObservable, options.outputCanvasOptions);
 
             if (!options.disableDefaultUI) {
                 // Create ui for entering/exiting xr

+ 3 - 3
src/Cameras/XR/webXRSessionManager.ts

@@ -5,7 +5,7 @@ import { IDisposable, Scene } from "../../scene";
 import { InternalTexture, InternalTextureSource } from "../../Materials/Textures/internalTexture";
 import { RenderTargetTexture } from "../../Materials/Textures/renderTargetTexture";
 import { WebXRRenderTarget, WebXRState } from './webXRTypes';
-import { WebXRManagedOutputCanvas } from './webXRManagedOutputCanvas';
+import { WebXRManagedOutputCanvas, WebXRManagedOutputCanvasOptions } from './webXRManagedOutputCanvas';
 
 interface IRenderTargetProvider {
     getRenderTargetForEye(eye: XREye): RenderTargetTexture;
@@ -220,12 +220,12 @@ export class WebXRSessionManager implements IDisposable {
      * @param onStateChangedObservable optional, mechanism for enabling/disabling XR rendering canvas, used only on Web
      * @returns a WebXR render target to which the session can render
      */
-    public getWebXRRenderTarget(onStateChangedObservable?: Observable<WebXRState>) : WebXRRenderTarget {
+    public getWebXRRenderTarget(onStateChangedObservable?: Observable<WebXRState>, options?: WebXRManagedOutputCanvasOptions) : WebXRRenderTarget {
         if (this._xrNavigator.xr.native) {
             return this._xrNavigator.xr.getWebXRRenderTarget(this.scene.getEngine());
         }
         else {
-            return new WebXRManagedOutputCanvas(this.scene.getEngine(), this.scene.getEngine().getRenderingCanvas() as HTMLCanvasElement, onStateChangedObservable!);
+            return new WebXRManagedOutputCanvas(this.scene.getEngine(), this.scene.getEngine().getRenderingCanvas() as HTMLCanvasElement, onStateChangedObservable!, options);
         }
     }