@@ -756,10 +756,11 @@ async function setFrameRate(session: XRSession, frameRate: FrameRateOption): Pro
756756 if ( value === false ) {
757757 return
758758 }
759- return session . updateTargetFrameRate ( value )
759+ await session . updateTargetFrameRate ( value )
760+ return
760761 }
761762 const multiplier = frameRate === 'high' ? 1 : frameRate === 'mid' ? 0.5 : 0
762- return session . updateTargetFrameRate ( supportedFrameRates [ Math . ceil ( ( supportedFrameRates . length - 1 ) * multiplier ) ] )
763+ await session . updateTargetFrameRate ( supportedFrameRates [ Math . ceil ( ( supportedFrameRates . length - 1 ) * multiplier ) ] )
763764}
764765
765766async function enterXRSession (
@@ -779,20 +780,19 @@ async function enterXRSession(
779780 )
780781 }
781782 const session = await navigator . xr . requestSession ( mode , buildXRSessionInit ( mode , domOverlayRoot , options ) )
782- setupXRSession ( session , manager , options )
783+ await setupXRSession ( session , manager , options )
783784 return session
784785}
785786
786- function setupXRSession (
787+ async function setupXRSession (
787788 session : XRSession ,
788789 manager : WebXRManager ,
789790 options : XRStoreOptions < XRElementImplementations > | undefined ,
790791) {
791- setFrameRate ( session , options ?. frameRate ?? 'high' )
792- setupXRManager ( manager , session , options )
792+ await Promise . all ( [ setFrameRate ( session , options ?. frameRate ?? 'high' ) , setupXRManager ( manager , session , options ) ] )
793793}
794794
795- function setupXRManager (
795+ async function setupXRManager (
796796 xr : WebXRManager ,
797797 session : XRSession ,
798798 options : XRStoreOptions < XRElementImplementations > | undefined ,
@@ -812,7 +812,7 @@ function setupXRManager(
812812 if ( frameBufferScaling != null ) {
813813 xr ?. setFramebufferScaleFactor ( frameBufferScaling )
814814 }
815- xr ?. setSession ( session )
815+ await xr ?. setSession ( session )
816816}
817817
818818const allSessionModes : Array < XRSessionMode > = [ 'immersive-ar' , 'immersive-vr' , 'inline' ]
0 commit comments