Quantcast
Channel: Bugs Latest Topics
Viewing all articles
Browse latest Browse all 760

screenCanvas2D is capturing event from other scenes

$
0
0

Hey everyone :)

 

I am not sure why but if I create two ScreenSpaceCanvas2D in two different scenes, one of the scenes being shown and not the other (stored in a parent object). The function Canvas2D.prototype._updatePointerInfo is called twice each time I move the mouse, once for the shown Canvas, and once for the canvas that is in the stored scene. 

Since I did not declare a camera in that stored scene the bit of code in babylon.max.js 44657 :

Canvas2D.prototype._updatePointerInfo = function (eventData, localPosition) { 
  ...
  var camera = this._scene.cameraToUseForPointers || this._scene.activeCamera;

  ...
}

return camera as undefined. 

And later on while the function tries to access camera.viewport it returns an error.

 

This report is not really about solving the bug because if I declare a random camera for the stored scene (like a normal human being not trying to find bugs everywhere) i do not get the error. But I think it was not on purpose that events are captured on a canvas in a scene that is not currently rendered. All in all it is not a real problem for me but it might cause trouble for other people.

 

To change between scenes I use this bit of code 

/* --- Start the render loop --- */
taskObject.engine.runRenderLoop(function () {
  taskObject.scenes[taskObject.currentScene].render();
});

 

This is the call stack for the error:

    1. Uncaught TypeError: Cannot read property 'viewport' of undefined @babylon.max.js:44665
    2. Canvas2D._updatePointerInfo @ babylon.max.js:44665
      Canvas2D._handlePointerEventForInteraction @ babylon.max.js:44628
      (anonymous function) @ babylon.max.js:44549
      Observable.notifyObservers @ babylon.max.js:3399
      _onPointerMove @ babylon.max.js:15232

 

It seems the observables are set up at scene creation and down the callback chain there is no test to check wether the scene is currently being rendered (is that even possible?).

 


Viewing all articles
Browse latest Browse all 760

Trending Articles