Skip to content

Commit e7ed1e4

Browse files
committed
Adjust renderer rerender conditions
Reflow some of the logic for when the renderer rerenders / re-applies settings.
1 parent 14fdb86 commit e7ed1e4

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

js/src/_base/Renderable.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ var RenderableView = widgets.DOMWidgetView.extend({
5454

5555
this.lazyRendererSetup();
5656

57+
this.setupEventListeners();
58+
},
59+
60+
setupEventListeners: function() {
5761
this.on('destroy', this.destroy, this);
5862
this.listenTo(this.model, 'rerender', this.tick.bind(this));
5963
this.listenTo(this.model, 'msg:custom', this.onCustomMessage.bind(this));

js/src/core/Renderer.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,18 @@ var RendererModel = RenderableModel.extend({
6767
var RendererView = RenderableView.extend({
6868

6969
lazyRendererSetup: function() {
70+
this.updateOwn();
71+
this.updateSize();
72+
this.renderScene();
73+
},
74+
75+
setupEventListeners: function() {
76+
RenderableView.prototype.setupEventListeners.call(this);
77+
78+
this.listenTo(this.model, 'change', this.updateOwn.bind(this));
79+
},
80+
81+
updateOwn: function() {
7082
this.camera = this.model.get('camera').obj;
7183
this.scene = this.model.get('scene').obj;
7284
controls = [];
@@ -76,16 +88,17 @@ var RendererView = RenderableView.extend({
7688
this.controls = controls;
7789
this.enableControls();
7890
//this.effect = this.model.get('effect').obj;
79-
this.updateSize();
80-
this.renderScene();
81-
},
82-
83-
acquireRenderer: function() {
84-
RenderableView.prototype.acquireRenderer.call(this);
8591

8692
var background = ThreeModel.prototype.convertColorModelToThree(this.model.get('background'));
8793
var background_opacity = ThreeModel.prototype.convertFloatModelToThree(this.model.get('background_opacity'));
8894
this.renderer.setClearColor(background, background_opacity);
95+
},
96+
97+
acquireRenderer: function() {
98+
RenderableView.prototype.acquireRenderer.call(this);
99+
// We need to ensure that renderer properties are applied
100+
// (we have no idea where the renderer has been...)
101+
this.updateOwn();
89102
}
90103

91104
});

0 commit comments

Comments
 (0)