diff options
| author | Dave SIMmONs <simon@lindenlab.com> | 2010-10-12 13:50:17 -0700 |
|---|---|---|
| committer | Dave SIMmONs <simon@lindenlab.com> | 2010-10-12 13:50:17 -0700 |
| commit | 58f0e78cb491833440d85e105593bccc2d2aa4ab (patch) | |
| tree | d599675efbc6cd5fe13e172119786c4c95ae5746 /indra/newview/llviewerobjectlist.cpp | |
| parent | d3a9d6a6cef6630995c652b4cc04c8807dbe6d4e (diff) | |
Initial work on viewer motion interpolation. Changes include:
* InterpolationTime and InterpolationPhaseOut values in settings.xml to control new object interpolation code. Use zero to revert to old logic
* Viewer motion interpolation lasts InterpolationTime and will start to phase out after InterpolationPhaseOut seconds
* Changed LLWorld::getMinAllowedZ() to take a world-position as a parameter
* Added LLVOAvatarSelf::resetRegionCrossingTimer()
* Actually reset LLVOAvatarSelf::mRegionCrossingTimer so we get sensible timing data for region crossings
* LLVOAvatarSelf::updateRegion() will update position value due to region changes
Code reviewed by Ambroff
*
Diffstat (limited to 'indra/newview/llviewerobjectlist.cpp')
| -rw-r--r-- | indra/newview/llviewerobjectlist.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 05695193a5..fa9e51c152 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -654,9 +654,24 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent) void LLViewerObjectList::update(LLAgent &agent, LLWorld &world) { LLMemType mt(LLMemType::MTYPE_OBJECT); + // Update globals - gVelocityInterpolate = gSavedSettings.getBOOL("VelocityInterpolate"); - gPingInterpolate = gSavedSettings.getBOOL("PingInterpolate"); + LLViewerObject::setVelocityInterpolate( gSavedSettings.getBOOL("VelocityInterpolate") ); + LLViewerObject::setPingInterpolate( gSavedSettings.getBOOL("PingInterpolate") ); + + F32 interp_time = gSavedSettings.getF32("InterpolationTime"); + F32 phase_out_time = gSavedSettings.getF32("InterpolationPhaseOut"); + if (interp_time < 0.0 || + phase_out_time < 0.0 || + phase_out_time > interp_time) + { + llwarns << "Invalid values for InterpolationTime or InterpolationPhaseOut, resetting to defaults" << llendl; + interp_time = 3.0f; + phase_out_time = 1.0f; + } + LLViewerObject::setPhaseOutUpdateInterpolationTime( interp_time ); + LLViewerObject::setMaxUpdateInterpolationTime( phase_out_time ); + gAnimateTextures = gSavedSettings.getBOOL("AnimateTextures"); // update global timer |
