From 58582fb6212a3ccd8ff2f52a59a398b4041bba79 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Fri, 15 Mar 2019 14:44:52 +0200 Subject: SL-10672 Fixed Sun transitioned to image from previous keyframe --- indra/newview/llenvironment.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp index 18777e53d1..3defe68a0e 100644 --- a/indra/newview/llenvironment.cpp +++ b/indra/newview/llenvironment.cpp @@ -297,9 +297,18 @@ namespace void onFinishedSpan() { - LLSettingsDay::TrackBound_t next = getBoundingEntries(getAdjustedNow()); + LLSettingsBase::Seconds adjusted_now = getAdjustedNow(); + LLSettingsDay::TrackBound_t next = getBoundingEntries(adjusted_now); LLSettingsBase::Seconds nextspan = getSpanTime(next); + reset((*next.first).second, (*next.second).second, nextspan); + + // Recalculate (reinitialize) position. Because: + // - 'delta' from applyTimeDelta accumulates errors (probably should be fixed/changed to absolute time) + // - freezes and lag can result in reset being called too late, so we need to add missed time + // - occasional time corrections can happen + // - some transition switches can happen outside applyTimeDelta thus causing 'desync' from 'delta' (can be fixed by getting rid of delta) + initializeTarget(adjusted_now); } }; -- cgit v1.2.3