summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerobjectlist.cpp
diff options
context:
space:
mode:
authorDave SIMmONs <simon@lindenlab.com>2010-10-12 13:50:17 -0700
committerDave SIMmONs <simon@lindenlab.com>2010-10-12 13:50:17 -0700
commit58f0e78cb491833440d85e105593bccc2d2aa4ab (patch)
treed599675efbc6cd5fe13e172119786c4c95ae5746 /indra/newview/llviewerobjectlist.cpp
parentd3a9d6a6cef6630995c652b4cc04c8807dbe6d4e (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.cpp19
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