From b29cf7cb4533bea493d026b6198091d3ab7a8ec9 Mon Sep 17 00:00:00 2001 From: Sean Lilley Date: Tue, 25 Sep 2018 18:38:44 -0400 Subject: [PATCH] Update viewer on postUpdate rather than clock tick --- Source/Scene/Scene.js | 4 ++++ Source/Widgets/Viewer/Viewer.js | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Scene/Scene.js b/Source/Scene/Scene.js index 07039bba2dbd..c5de702c87e3 100644 --- a/Source/Scene/Scene.js +++ b/Source/Scene/Scene.js @@ -3286,6 +3286,10 @@ define([ var us = context.uniformState; var frameState = this._frameState; + // Update with previous frame's time, assuming that render is called before picking. + this._preUpdate.raiseEvent(this, frameState.time); + this._postUpdate.raiseEvent(this, frameState.time); + var view = this._defaultView; this._view = view; diff --git a/Source/Widgets/Viewer/Viewer.js b/Source/Widgets/Viewer/Viewer.js index 528fddd8f1ad..93273259ec1b 100644 --- a/Source/Widgets/Viewer/Viewer.js +++ b/Source/Widgets/Viewer/Viewer.js @@ -457,7 +457,7 @@ Either specify options.terrainProvider instead or set options.baseLayerPicker to var eventHelper = new EventHelper(); - eventHelper.add(clock.onTick, Viewer.prototype._onTick, this); + eventHelper.add(scene.postUpdate, Viewer.prototype._onUpdate, this); eventHelper.add(scene.morphStart, Viewer.prototype._clearTrackedObject, this); // Selection Indicator @@ -1586,9 +1586,7 @@ Either specify options.terrainProvider instead or set options.baseLayerPicker to /** * @private */ - Viewer.prototype._onTick = function(clock) { - var time = clock.currentTime; - + Viewer.prototype._onUpdate = function(scene, time) { var isUpdated = this._dataSourceDisplay.update(time); if (this._allowDataSourcesToSuspendAnimation) { this._clockViewModel.canAnimate = isUpdated;