@@ -251,17 +251,6 @@ module.exports.AScene = registerElement('a-scene', {
251251 vrDisplay = utils . device . getVRDisplay ( ) ;
252252 vrManager . setDevice ( vrDisplay ) ;
253253 vrManager . enabled = true ;
254-
255- if ( this . camera ) {
256- vrManager . setPoseTarget ( this . camera . el . object3D ) ;
257- }
258- // If the camera was not available, we skip setPoseTarget.
259- // We expect it to be set as a result of the camera-set-active event at a later point
260- // (usually shortly after entering VR).
261- this . addEventListener ( 'camera-set-active' , function ( ) {
262- vrManager . setPoseTarget ( self . camera . el . object3D ) ;
263- } ) ;
264-
265254 return vrDisplay . requestPresent ( [ { source : this . canvas } ] )
266255 . then ( enterVRSuccess , enterVRFailure ) ;
267256 }
@@ -494,6 +483,7 @@ module.exports.AScene = registerElement('a-scene', {
494483
495484 setupRenderer : {
496485 value : function ( ) {
486+ var self = this ;
497487 var renderer ;
498488 renderer = this . renderer = new THREE . WebGLRenderer ( {
499489 canvas : this . canvas ,
@@ -502,6 +492,11 @@ module.exports.AScene = registerElement('a-scene', {
502492 } ) ;
503493 renderer . setPixelRatio ( window . devicePixelRatio ) ;
504494 renderer . sortObjects = false ;
495+ // We expect camera-set-active to be triggered at least once in the life of an a-frame app. Usually soon after
496+ // it is initialized.
497+ this . addEventListener ( 'camera-set-active' , function ( ) {
498+ renderer . vr . setPoseTarget ( self . camera . el . object3D ) ;
499+ } ) ;
505500 } ,
506501 writable : window . debug
507502 } ,
0 commit comments