Explorar o código

running render loop is not async

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

+ 2 - 2
src/Cameras/XR/webXRExperienceHelper.ts

@@ -113,8 +113,8 @@ export class WebXRExperienceHelper implements IDisposable {
         }).then(() => {
             return this.sessionManager.updateRenderStateAsync({ depthFar: this.camera.maxZ, depthNear: this.camera.minZ, baseLayer: renderTarget.xrLayer! });
         }).then(() => {
-            return this.sessionManager.startRenderingToXRAsync();
-        }).then(() => {
+            // run the render loop
+            this.sessionManager.runXRRenderLoop();
             // Cache pre xr scene settings
             this._originalSceneAutoClear = this.scene.autoClear;
             this._nonVRCamera = this.scene.activeCamera;

+ 1 - 2
src/Cameras/XR/webXRSessionManager.ts

@@ -208,7 +208,7 @@ export class WebXRSessionManager implements IDisposable {
      * Starts rendering to the xr layer
      * @returns a promise that will resolve once rendering has started
      */
-    public startRenderingToXRAsync() {
+    public runXRRenderLoop() {
         const engine = this.scene.getEngine();
         // Tell the engine's render loop to be driven by the xr session's refresh rate and provide xr pose information
         engine.customAnimationFrameRequester = {
@@ -240,7 +240,6 @@ export class WebXRSessionManager implements IDisposable {
         // Stop window's animation frame and trigger sessions animation frame
         if (window.cancelAnimationFrame) { window.cancelAnimationFrame(engine._frameHandler); }
         engine._renderLoop();
-        return Promise.resolve();
     }
 
     /**