diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts index 7ac00cc96b1a8ec89bab5ce2018e05b923e3d157..4c1ec427a6485262252022450b2be60eb858927f 100644 --- a/src/mol-canvas3d/canvas3d.ts +++ b/src/mol-canvas3d/canvas3d.ts @@ -360,12 +360,12 @@ namespace Canvas3D { helper.handle.scene.update(void 0, true); helper.camera.scene.update(void 0, true); const prevPickDirty = pickHelper.dirty; - draw(true); + draw(true, true); pickHelper.dirty = prevPickDirty; // marking does not change picking buffers } } - function render(force: boolean) { + function render(force: boolean, allowMulti: boolean) { if (webgl.isContextLost) return false; let resized = false; @@ -396,7 +396,7 @@ namespace Canvas3D { } if (MultiSamplePass.isEnabled(p.multiSample)) { - if (!cameraChanged) { + if (!cameraChanged && allowMulti && !controls.props.spin) { while (!multiSampleHelper.render(renderer, cam, scene, helper, true, p.transparentBackground, p)); } else { multiSampleHelper.render(renderer, cam, scene, helper, true, p.transparentBackground, p); @@ -416,9 +416,9 @@ namespace Canvas3D { let currentTime = 0; let drawPaused = false; - function draw(force?: boolean) { + function draw(force?: boolean, allowMulti?: boolean) { if (drawPaused) return; - if (render(!!force) && notifyDidDraw) { + if (render(!!force, !!allowMulti) && notifyDidDraw) { didDraw.next(now() - startTime as now.Timestamp); } }