|
@@ -115,8 +115,11 @@ function WebXRManager( renderer ) {
|
|
|
|
|
|
frameOfReference = value;
|
|
|
|
|
|
- renderer.setFramebuffer( session.baseLayer.framebuffer );
|
|
|
+ if ( session.baseLayer && session.baseLayer.framebuffer ) {
|
|
|
|
|
|
+ renderer.setFramebuffer( session.baseLayer.framebuffer );
|
|
|
+
|
|
|
+ }
|
|
|
animation.setContext( session );
|
|
|
animation.start();
|
|
|
|
|
@@ -145,7 +148,15 @@ function WebXRManager( renderer ) {
|
|
|
session.addEventListener( 'selectend', onSessionEvent );
|
|
|
session.addEventListener( 'end', onSessionEnd );
|
|
|
|
|
|
- session.baseLayer = new XRWebGLLayer( session, gl, { framebufferScaleFactor: framebufferScaleFactor } );
|
|
|
+ if ( session.updateRenderState !== undefined ) {
|
|
|
+
|
|
|
+ session.updateRenderState( { baseLayer: new XRWebGLLayer( session, gl ) } );
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ session.baseLayer = new XRWebGLLayer( session, gl, { framebufferScaleFactor: framebufferScaleFactor } );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
if ( session.requestFrameOfReference !== undefined ) {
|
|
|
|
|
@@ -247,9 +258,15 @@ function WebXRManager( renderer ) {
|
|
|
|
|
|
if ( pose !== null ) {
|
|
|
|
|
|
- var layer = session.baseLayer;
|
|
|
+ var layer = 'renderState' in session ? session.renderState.baseLayer : session.baseLayer;
|
|
|
var views = frame.views || pose.views;
|
|
|
|
|
|
+ if ( 'renderState' in session ) {
|
|
|
+
|
|
|
+ renderer.setFramebuffer( session.renderState.baseLayer.framebuffer );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
for ( var i = 0; i < views.length; i ++ ) {
|
|
|
|
|
|
var view = views[ i ];
|