SH-3419 Replace per-object time dilation factor with region-wide
Reviewed with Simonmaster
parent
1088810e64
commit
33efe8d3c2
|
|
@ -755,7 +755,7 @@ bool LLAppViewer::init()
|
|||
initLoggingAndGetLastDuration();
|
||||
|
||||
processMarkerFiles();
|
||||
|
||||
|
||||
//
|
||||
// OK to write stuff to logs now, we've now crash reported if necessary
|
||||
//
|
||||
|
|
@ -1230,8 +1230,8 @@ void LLAppViewer::checkMemory()
|
|||
}
|
||||
mMemCheckTimer.reset() ;
|
||||
|
||||
//update the availability of memory
|
||||
LLMemory::updateMemoryInfo() ;
|
||||
//update the availability of memory
|
||||
LLMemory::updateMemoryInfo() ;
|
||||
|
||||
bool is_low = LLMemory::isMemoryPoolLow() ;
|
||||
|
||||
|
|
@ -1761,7 +1761,7 @@ bool LLAppViewer::cleanup()
|
|||
gAudiop->setStreamingAudioImpl(NULL);
|
||||
|
||||
// shut down the audio subsystem
|
||||
gAudiop->shutdown();
|
||||
gAudiop->shutdown();
|
||||
|
||||
delete gAudiop;
|
||||
gAudiop = NULL;
|
||||
|
|
@ -2574,9 +2574,9 @@ bool LLAppViewer::initConfiguration()
|
|||
{
|
||||
llwarns << "Failed --set " << name << ": setting name unknown." << llendl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (clp.hasOption("logevents")) {
|
||||
LLViewerEventRecorder::instance().setEventLoggingOn();
|
||||
|
|
@ -2584,7 +2584,7 @@ bool LLAppViewer::initConfiguration()
|
|||
|
||||
std::string CmdLineChannel(gSavedSettings.getString("CmdLineChannel"));
|
||||
if(! CmdLineChannel.empty())
|
||||
{
|
||||
{
|
||||
LLVersionInfo::resetChannel(CmdLineChannel);
|
||||
}
|
||||
|
||||
|
|
@ -2596,16 +2596,16 @@ bool LLAppViewer::initConfiguration()
|
|||
LLFastTimer::sLog = TRUE;
|
||||
LLFastTimer::sLogName = std::string("performance");
|
||||
}
|
||||
|
||||
|
||||
std::string test_name(gSavedSettings.getString("LogMetrics"));
|
||||
if (! test_name.empty())
|
||||
{
|
||||
{
|
||||
LLFastTimer::sMetricLog = TRUE ;
|
||||
// '--logmetrics' is specified with a named test metric argument so the data gathering is done only on that test
|
||||
// In the absence of argument, every metric would be gathered (makes for a rather slow run and hard to decipher report...)
|
||||
llinfos << "'--logmetrics' argument : " << test_name << llendl;
|
||||
LLFastTimer::sLogName = test_name;
|
||||
}
|
||||
}
|
||||
|
||||
if (clp.hasOption("graphicslevel"))
|
||||
{
|
||||
|
|
@ -2614,14 +2614,14 @@ bool LLAppViewer::initConfiguration()
|
|||
// that value for validity.
|
||||
U32 graphicslevel = gSavedSettings.getU32("RenderQualityPerformance");
|
||||
if (LLFeatureManager::instance().isValidGraphicsLevel(graphicslevel))
|
||||
{
|
||||
{
|
||||
// graphicslevel is valid: save it and engage it later. Capture
|
||||
// the requested value separately from the settings variable
|
||||
// because, if this is the first run, LLViewerWindow's constructor
|
||||
// will call LLFeatureManager::applyRecommendedSettings(), which
|
||||
// overwrites this settings variable!
|
||||
mForceGraphicsLevel = graphicslevel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LLFastTimerView::sAnalyzePerformance = gSavedSettings.getBOOL("AnalyzePerformance");
|
||||
|
|
@ -2655,14 +2655,14 @@ bool LLAppViewer::initConfiguration()
|
|||
LLSLURL start_slurl;
|
||||
std::string CmdLineLoginLocation(gSavedSettings.getString("CmdLineLoginLocation"));
|
||||
if(! CmdLineLoginLocation.empty())
|
||||
{
|
||||
{
|
||||
start_slurl = CmdLineLoginLocation;
|
||||
LLStartUp::setStartSLURL(start_slurl);
|
||||
if(start_slurl.getType() == LLSLURL::LOCATION)
|
||||
{
|
||||
{
|
||||
LLGridManager::getInstance()->setGridChoice(start_slurl.getGrid());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//RN: if we received a URL, hand it off to the existing instance.
|
||||
// don't call anotherInstanceRunning() when doing URL handoff, as
|
||||
|
|
@ -2673,11 +2673,11 @@ bool LLAppViewer::initConfiguration()
|
|||
(gSavedSettings.getBOOL("SLURLPassToOtherInstance")))
|
||||
{
|
||||
if (sendURLToOtherInstance(start_slurl.getSLURLString()))
|
||||
{
|
||||
{
|
||||
// successfully handed off URL to existing instance, exit
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const LLControlVariable* skinfolder = gSavedSettings.getControl("SkinCurrent");
|
||||
if(skinfolder && LLStringUtil::null != skinfolder->getValue().asString())
|
||||
|
|
@ -2994,26 +2994,26 @@ namespace {
|
|||
{
|
||||
LL_WARNS("UpdaterService") << "no info url supplied - defaulting to hard coded release notes pattern" << LL_ENDL;
|
||||
|
||||
// truncate version at the rightmost '.'
|
||||
std::string version_short(data["version"]);
|
||||
size_t short_length = version_short.rfind('.');
|
||||
if (short_length != std::string::npos)
|
||||
{
|
||||
version_short.resize(short_length);
|
||||
}
|
||||
// truncate version at the rightmost '.'
|
||||
std::string version_short(data["version"]);
|
||||
size_t short_length = version_short.rfind('.');
|
||||
if (short_length != std::string::npos)
|
||||
{
|
||||
version_short.resize(short_length);
|
||||
}
|
||||
|
||||
LLUIString relnotes_url("[RELEASE_NOTES_BASE_URL][CHANNEL_URL]/[VERSION_SHORT]");
|
||||
relnotes_url.setArg("[VERSION_SHORT]", version_short);
|
||||
LLUIString relnotes_url("[RELEASE_NOTES_BASE_URL][CHANNEL_URL]/[VERSION_SHORT]");
|
||||
relnotes_url.setArg("[VERSION_SHORT]", version_short);
|
||||
|
||||
// *TODO thread the update service's response through to this point
|
||||
std::string const & channel = LLVersionInfo::getChannel();
|
||||
boost::shared_ptr<char> channel_escaped(curl_escape(channel.c_str(), channel.size()), &curl_free);
|
||||
// *TODO thread the update service's response through to this point
|
||||
std::string const & channel = LLVersionInfo::getChannel();
|
||||
boost::shared_ptr<char> channel_escaped(curl_escape(channel.c_str(), channel.size()), &curl_free);
|
||||
|
||||
relnotes_url.setArg("[CHANNEL_URL]", channel_escaped.get());
|
||||
relnotes_url.setArg("[RELEASE_NOTES_BASE_URL]", LLTrans::getString("RELEASE_NOTES_BASE_URL"));
|
||||
relnotes_url.setArg("[CHANNEL_URL]", channel_escaped.get());
|
||||
relnotes_url.setArg("[RELEASE_NOTES_BASE_URL]", LLTrans::getString("RELEASE_NOTES_BASE_URL"));
|
||||
substitutions["INFO_URL"] = relnotes_url.getString();
|
||||
}
|
||||
|
||||
|
||||
LLNotificationsUtil::add(notification_name, substitutions, LLSD(), apply_callback);
|
||||
}
|
||||
|
||||
|
|
@ -3202,7 +3202,7 @@ bool LLAppViewer::initWindow()
|
|||
LLFeatureManager::getInstance()->setGraphicsLevel(*mForceGraphicsLevel, false);
|
||||
gSavedSettings.setU32("RenderQualityPerformance", *mForceGraphicsLevel);
|
||||
}
|
||||
|
||||
|
||||
// Set this flag in case we crash while initializing GL
|
||||
gSavedSettings.setBOOL("RenderInitError", TRUE);
|
||||
gSavedSettings.saveToFile( gSavedSettings.getString("ClientSettingsFile"), TRUE );
|
||||
|
|
@ -3485,9 +3485,9 @@ void LLAppViewer::handleViewerCrash()
|
|||
if (gDirUtilp)
|
||||
{
|
||||
std::string crash_marker_file_name = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
|
||||
gLLErrorActivated
|
||||
? LLERROR_MARKER_FILE_NAME
|
||||
: ERROR_MARKER_FILE_NAME);
|
||||
gLLErrorActivated
|
||||
? LLERROR_MARKER_FILE_NAME
|
||||
: ERROR_MARKER_FILE_NAME);
|
||||
LLAPRFile crash_marker_file ;
|
||||
crash_marker_file.open(crash_marker_file_name, LL_APR_WB);
|
||||
if (crash_marker_file.getFileHandle())
|
||||
|
|
@ -3498,7 +3498,7 @@ void LLAppViewer::handleViewerCrash()
|
|||
else
|
||||
{
|
||||
LL_WARNS("MarkerFile") << "Cannot create error marker file " << crash_marker_file_name << LL_ENDL;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -3637,7 +3637,7 @@ void LLAppViewer::processMarkerFiles()
|
|||
}
|
||||
|
||||
if (mSecondInstance)
|
||||
{
|
||||
{
|
||||
LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' owned by another instance" << LL_ENDL;
|
||||
}
|
||||
else if (marker_is_same_version)
|
||||
|
|
@ -3651,7 +3651,7 @@ void LLAppViewer::processMarkerFiles()
|
|||
{
|
||||
LL_INFOS("MarkerFile") << "Exec marker '"<< mMarkerFileName << "' found, but versions did not match" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
}
|
||||
else // marker did not exist... last exec (if any) did not freeze
|
||||
{
|
||||
// Create the marker file for this execution & lock it; it will be deleted on a clean exit
|
||||
|
|
@ -3705,12 +3705,12 @@ void LLAppViewer::processMarkerFiles()
|
|||
{
|
||||
gLastExecEvent = LAST_EXEC_LOGOUT_CRASH;
|
||||
LL_INFOS("MarkerFile") << "LLError marker '"<< llerror_marker_file << "' crashed, setting LastExecEvent to LOGOUT_CRASH" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
gLastExecEvent = LAST_EXEC_LLERROR_CRASH;
|
||||
LL_INFOS("MarkerFile") << "LLError marker '"<< llerror_marker_file << "' crashed, setting LastExecEvent to LLERROR_CRASH" << LL_ENDL;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -3723,20 +3723,20 @@ void LLAppViewer::processMarkerFiles()
|
|||
if(LLAPRFile::isExist(error_marker_file, NULL, LL_APR_RB))
|
||||
{
|
||||
if (markerIsSameVersion(error_marker_file))
|
||||
{
|
||||
{
|
||||
if (gLastExecEvent == LAST_EXEC_LOGOUT_FROZE)
|
||||
{
|
||||
{
|
||||
gLastExecEvent = LAST_EXEC_LOGOUT_CRASH;
|
||||
LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' crashed, setting LastExecEvent to LOGOUT_CRASH" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
gLastExecEvent = LAST_EXEC_OTHER_CRASH;
|
||||
LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gLastExecEvent = LAST_EXEC_OTHER_CRASH;
|
||||
LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' crashed, setting LastExecEvent to " << gLastExecEvent << LL_ENDL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_INFOS("MarkerFile") << "Error marker '"<< error_marker_file << "' marker found, but versions did not match" << LL_ENDL;
|
||||
}
|
||||
LLAPRFile::remove(error_marker_file);
|
||||
|
|
@ -3748,29 +3748,29 @@ void LLAppViewer::removeMarkerFile(bool leave_logout_marker)
|
|||
if (!mSecondInstance)
|
||||
{
|
||||
LL_DEBUGS("MarkerFile") << (leave_logout_marker?"leave":"remove") <<" logout" << LL_ENDL;
|
||||
if (mMarkerFile.getFileHandle())
|
||||
{
|
||||
if (mMarkerFile.getFileHandle())
|
||||
{
|
||||
LL_DEBUGS("MarkerFile") << "removing exec marker '"<<mMarkerFileName<<"'"<< LL_ENDL;
|
||||
mMarkerFile.close() ;
|
||||
LLAPRFile::remove( mMarkerFileName );
|
||||
LLAPRFile::remove( mMarkerFileName );
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("MarkerFile") << "marker '"<<mMarkerFileName<<"' not open"<< LL_ENDL;
|
||||
}
|
||||
if (!leave_logout_marker)
|
||||
{
|
||||
if (mLogoutMarkerFile.getFileHandle())
|
||||
{
|
||||
LL_DEBUGS("MarkerFile") << "removing logout marker '"<<mLogoutMarkerFileName<<"'"<< LL_ENDL;
|
||||
mLogoutMarkerFile.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("MarkerFile") << "marker '"<<mMarkerFileName<<"' not open"<< LL_ENDL;
|
||||
}
|
||||
if (!leave_logout_marker)
|
||||
{
|
||||
if (mLogoutMarkerFile.getFileHandle())
|
||||
{
|
||||
LL_DEBUGS("MarkerFile") << "removing logout marker '"<<mLogoutMarkerFileName<<"'"<< LL_ENDL;
|
||||
mLogoutMarkerFile.close();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_WARNS("MarkerFile") << "logout marker '"<<mLogoutMarkerFileName<<"' not open"<< LL_ENDL;
|
||||
}
|
||||
LLAPRFile::remove( mLogoutMarkerFileName );
|
||||
}
|
||||
LLAPRFile::remove( mLogoutMarkerFileName );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -4713,7 +4713,7 @@ void LLAppViewer::idle()
|
|||
|
||||
if (!(logoutRequestSent() && hasSavedFinalSnapshot()))
|
||||
{
|
||||
gObjectList.update(gAgent, *LLWorld::getInstance());
|
||||
gObjectList.update(gAgent);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -5402,7 +5402,7 @@ void LLAppViewer::handleLoginComplete()
|
|||
|
||||
void LLAppViewer::launchUpdater()
|
||||
{
|
||||
LLSD query_map = LLSD::emptyMap();
|
||||
LLSD query_map = LLSD::emptyMap();
|
||||
query_map["os"] = gPlatform;
|
||||
|
||||
// *TODO change userserver to be grid on both viewer and sim, since
|
||||
|
|
@ -5599,7 +5599,7 @@ void LLAppViewer::metricsSend(bool enable_reporting)
|
|||
// Make a copy of the main stats to send into another thread.
|
||||
// Receiving thread takes ownership.
|
||||
LLViewerAssetStats * main_stats(new LLViewerAssetStats(*gViewerAssetStatsMain));
|
||||
|
||||
|
||||
// Send a report request into 'thread1' to get the rest of the data
|
||||
// and provide some additional parameters while here.
|
||||
LLAppViewer::sTextureFetch->commandSendMetrics(caps_url,
|
||||
|
|
|
|||
|
|
@ -236,7 +236,6 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe
|
|||
mOnMap(FALSE),
|
||||
mStatic(FALSE),
|
||||
mNumFaces(0),
|
||||
mTimeDilation(1.f),
|
||||
mRotTime(0.f),
|
||||
mAngularVelocityRot(),
|
||||
mPreviousRotation(),
|
||||
|
|
@ -943,7 +942,6 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
U16 time_dilation16;
|
||||
mesgsys->getU16Fast(_PREHASH_RegionData, _PREHASH_TimeDilation, time_dilation16);
|
||||
F32 time_dilation = ((F32) time_dilation16) / 65535.f;
|
||||
mTimeDilation = time_dilation;
|
||||
mRegionp->setTimeDilation(time_dilation);
|
||||
|
||||
// this will be used to determine if we've really changed position
|
||||
|
|
@ -1986,7 +1984,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mesgsys->getSender());
|
||||
if (cdp)
|
||||
{
|
||||
F32 ping_delay = 0.5f * mTimeDilation * ( ((F32)cdp->getPingDelay()) * 0.001f + gFrameDTClamped);
|
||||
F32 ping_delay = 0.5f * time_dilation * ( ((F32)cdp->getPingDelay()) * 0.001f + gFrameDTClamped);
|
||||
LLVector3 diff = getVelocity() * ping_delay;
|
||||
new_pos_parent += diff;
|
||||
}
|
||||
|
|
@ -2185,35 +2183,33 @@ BOOL LLViewerObject::isActive() const
|
|||
|
||||
|
||||
|
||||
void LLViewerObject::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLViewerObject::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
//static LLFastTimer::DeclareTimer ftm("Viewer Object");
|
||||
//LLFastTimer t(ftm);
|
||||
|
||||
if (!mDead)
|
||||
{
|
||||
// CRO - don't velocity interp linked objects!
|
||||
// Leviathan - but DO velocity interp joints
|
||||
if (!mStatic && sVelocityInterpolate && !isSelected())
|
||||
{
|
||||
// calculate dt from last update
|
||||
F32 dt_raw = (F32)(time - mLastInterpUpdateSecs);
|
||||
F32 dt = mTimeDilation * dt_raw;
|
||||
if (!mStatic && sVelocityInterpolate && !isSelected())
|
||||
{
|
||||
// calculate dt from last update
|
||||
F32 time_dilation = mRegionp ? mRegionp->getTimeDilation() : 1.0f;
|
||||
F32 dt = time_dilation * (F32)(time - mLastInterpUpdateSecs);
|
||||
|
||||
applyAngularVelocity(dt);
|
||||
|
||||
if (isAttachment())
|
||||
{
|
||||
mLastInterpUpdateSecs = time;
|
||||
{
|
||||
mLastInterpUpdateSecs = time;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{ // Move object based on it's velocity and rotation
|
||||
interpolateLinearMotion(time, dt);
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // Move object based on it's velocity and rotation
|
||||
interpolateLinearMotion(time, dt);
|
||||
}
|
||||
}
|
||||
|
||||
updateDrawable(FALSE);
|
||||
updateDrawable(FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4063,7 +4059,7 @@ void LLViewerObject::setTE(const U8 te, const LLTextureEntry &texture_entry)
|
|||
{
|
||||
LLPrimitive::setTE(te, texture_entry);
|
||||
|
||||
const LLUUID& image_id = getTE(te)->getID();
|
||||
const LLUUID& image_id = getTE(te)->getID();
|
||||
mTEImages[te] = LLViewerTextureManager::getFetchedTexture(image_id, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
|
||||
|
||||
if (getTE(te)->getMaterialParams().notNull())
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ public:
|
|||
LLNameValue* getNVPair(const std::string& name) const; // null if no name value pair by that name
|
||||
|
||||
// Object create and update functions
|
||||
virtual void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
virtual void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
|
||||
// Types of media we can associate
|
||||
enum { MEDIA_NONE = 0, MEDIA_SET = 1 };
|
||||
|
|
@ -305,7 +305,7 @@ public:
|
|||
/*virtual*/ S32 setTETexture(const U8 te, const LLUUID &uuid);
|
||||
/*virtual*/ S32 setTENormalMap(const U8 te, const LLUUID &uuid);
|
||||
/*virtual*/ S32 setTESpecularMap(const U8 te, const LLUUID &uuid);
|
||||
S32 setTETextureCore(const U8 te, LLViewerTexture *image);
|
||||
S32 setTETextureCore(const U8 te, LLViewerTexture *image);
|
||||
S32 setTENormalMapCore(const U8 te, LLViewerTexture *image);
|
||||
S32 setTESpecularMapCore(const U8 te, LLViewerTexture *image);
|
||||
/*virtual*/ S32 setTEColor(const U8 te, const LLColor3 &color);
|
||||
|
|
@ -743,7 +743,6 @@ protected:
|
|||
BOOL mStatic; // Object doesn't move.
|
||||
S32 mNumFaces;
|
||||
|
||||
F32 mTimeDilation; // Time dilation sent with the object.
|
||||
F32 mRotTime; // Amount (in seconds) that object has rotated according to angular velocity (llSetTargetOmega)
|
||||
LLQuaternion mAngularVelocityRot; // accumulated rotation from the angular velocity computations
|
||||
LLQuaternion mPreviousRotation;
|
||||
|
|
|
|||
|
|
@ -399,10 +399,10 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
|
|||
|
||||
if (update_type != OUT_TERSE_IMPROVED) // OUT_FULL_COMPRESSED only?
|
||||
{
|
||||
compressed_dp.unpackUUID(fullid, "ID");
|
||||
compressed_dp.unpackU32(local_id, "LocalID");
|
||||
compressed_dp.unpackU8(pcode, "PCode");
|
||||
}
|
||||
compressed_dp.unpackUUID(fullid, "ID");
|
||||
compressed_dp.unpackU32(local_id, "LocalID");
|
||||
compressed_dp.unpackU8(pcode, "PCode");
|
||||
}
|
||||
else
|
||||
{
|
||||
compressed_dp.unpackU32(local_id, "LocalID");
|
||||
|
|
@ -561,7 +561,7 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
|
|||
processUpdateCore(objectp, user_data, i, update_type, NULL, justCreated);
|
||||
}
|
||||
recorder.objectUpdateEvent(local_id, update_type, objectp, msg_size);
|
||||
objectp->setLastUpdateType(update_type);
|
||||
objectp->setLastUpdateType(update_type);
|
||||
objectp->setLastUpdateCached(bCached);
|
||||
}
|
||||
|
||||
|
|
@ -852,7 +852,7 @@ private:
|
|||
LLSD mObjectIDs;
|
||||
};
|
||||
|
||||
void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
|
||||
void LLViewerObjectList::update(LLAgent &agent)
|
||||
{
|
||||
// Update globals
|
||||
LLViewerObject::setVelocityInterpolate( gSavedSettings.getBOOL("VelocityInterpolate") );
|
||||
|
|
@ -942,7 +942,7 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
|
|||
objectp = *iter;
|
||||
if (objectp->isAvatar())
|
||||
{
|
||||
objectp->idleUpdate(agent, world, frame_time);
|
||||
objectp->idleUpdate(agent, frame_time);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -953,7 +953,7 @@ void LLViewerObjectList::update(LLAgent &agent, LLWorld &world)
|
|||
{
|
||||
objectp = *idle_iter;
|
||||
llassert(objectp->isActive());
|
||||
objectp->idleUpdate(agent, world, frame_time);
|
||||
objectp->idleUpdate(agent, frame_time);
|
||||
}
|
||||
|
||||
//update flexible objects
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ public:
|
|||
void processCompressedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type);
|
||||
void processCachedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type);
|
||||
void updateApparentAngles(LLAgent &agent);
|
||||
void update(LLAgent &agent, LLWorld &world);
|
||||
void update(LLAgent &agent);
|
||||
|
||||
void fetchObjectCosts();
|
||||
void fetchPhysicsFlags();
|
||||
|
|
|
|||
|
|
@ -116,16 +116,16 @@ using namespace LLAvatarAppearanceDefines;
|
|||
//-----------------------------------------------------------------------------
|
||||
// Global constants
|
||||
//-----------------------------------------------------------------------------
|
||||
const LLUUID ANIM_AGENT_BODY_NOISE = LLUUID("9aa8b0a6-0c6f-9518-c7c3-4f41f2c001ad"); //"body_noise"
|
||||
const LLUUID ANIM_AGENT_BREATHE_ROT = LLUUID("4c5a103e-b830-2f1c-16bc-224aa0ad5bc8"); //"breathe_rot"
|
||||
const LLUUID ANIM_AGENT_EDITING = LLUUID("2a8eba1d-a7f8-5596-d44a-b4977bf8c8bb"); //"editing"
|
||||
const LLUUID ANIM_AGENT_EYE = LLUUID("5c780ea8-1cd1-c463-a128-48c023f6fbea"); //"eye"
|
||||
const LLUUID ANIM_AGENT_FLY_ADJUST = LLUUID("db95561f-f1b0-9f9a-7224-b12f71af126e"); //"fly_adjust"
|
||||
const LLUUID ANIM_AGENT_HAND_MOTION = LLUUID("ce986325-0ba7-6e6e-cc24-b17c4b795578"); //"hand_motion"
|
||||
const LLUUID ANIM_AGENT_HEAD_ROT = LLUUID("e6e8d1dd-e643-fff7-b238-c6b4b056a68d"); //"head_rot"
|
||||
const LLUUID ANIM_AGENT_PELVIS_FIX = LLUUID("0c5dd2a2-514d-8893-d44d-05beffad208b"); //"pelvis_fix"
|
||||
const LLUUID ANIM_AGENT_TARGET = LLUUID("0e4896cb-fba4-926c-f355-8720189d5b55"); //"target"
|
||||
const LLUUID ANIM_AGENT_WALK_ADJUST = LLUUID("829bc85b-02fc-ec41-be2e-74cc6dd7215d"); //"walk_adjust"
|
||||
const LLUUID ANIM_AGENT_BODY_NOISE = LLUUID("9aa8b0a6-0c6f-9518-c7c3-4f41f2c001ad"); //"body_noise"
|
||||
const LLUUID ANIM_AGENT_BREATHE_ROT = LLUUID("4c5a103e-b830-2f1c-16bc-224aa0ad5bc8"); //"breathe_rot"
|
||||
const LLUUID ANIM_AGENT_EDITING = LLUUID("2a8eba1d-a7f8-5596-d44a-b4977bf8c8bb"); //"editing"
|
||||
const LLUUID ANIM_AGENT_EYE = LLUUID("5c780ea8-1cd1-c463-a128-48c023f6fbea"); //"eye"
|
||||
const LLUUID ANIM_AGENT_FLY_ADJUST = LLUUID("db95561f-f1b0-9f9a-7224-b12f71af126e"); //"fly_adjust"
|
||||
const LLUUID ANIM_AGENT_HAND_MOTION = LLUUID("ce986325-0ba7-6e6e-cc24-b17c4b795578"); //"hand_motion"
|
||||
const LLUUID ANIM_AGENT_HEAD_ROT = LLUUID("e6e8d1dd-e643-fff7-b238-c6b4b056a68d"); //"head_rot"
|
||||
const LLUUID ANIM_AGENT_PELVIS_FIX = LLUUID("0c5dd2a2-514d-8893-d44d-05beffad208b"); //"pelvis_fix"
|
||||
const LLUUID ANIM_AGENT_TARGET = LLUUID("0e4896cb-fba4-926c-f355-8720189d5b55"); //"target"
|
||||
const LLUUID ANIM_AGENT_WALK_ADJUST = LLUUID("829bc85b-02fc-ec41-be2e-74cc6dd7215d"); //"walk_adjust"
|
||||
const LLUUID ANIM_AGENT_PHYSICS_MOTION = LLUUID("7360e029-3cb8-ebc4-863e-212df440d987"); //"physics_motion"
|
||||
|
||||
|
||||
|
|
@ -813,17 +813,17 @@ void LLVOAvatar::debugAvatarRezTime(std::string notification_name, std::string c
|
|||
//------------------------------------------------------------------------
|
||||
LLVOAvatar::~LLVOAvatar()
|
||||
{
|
||||
if (!mFullyLoaded)
|
||||
{
|
||||
if (!mFullyLoaded)
|
||||
{
|
||||
debugAvatarRezTime("AvatarRezLeftCloudNotification","left after ruth seconds as cloud");
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
debugAvatarRezTime("AvatarRezLeftNotification","left sometime after declouding");
|
||||
}
|
||||
}
|
||||
|
||||
logPendingPhases();
|
||||
|
||||
|
||||
lldebugs << "LLVOAvatar Destructor (0x" << this << ") id:" << mID << llendl;
|
||||
|
||||
std::for_each(mAttachmentPoints.begin(), mAttachmentPoints.end(), DeletePairedPointer());
|
||||
|
|
@ -1207,7 +1207,7 @@ void LLVOAvatar::initInstance(void)
|
|||
registerMotion( ANIM_AGENT_TARGET, LLTargetingMotion::create );
|
||||
registerMotion( ANIM_AGENT_WALK_ADJUST, LLWalkAdjustMotion::create );
|
||||
}
|
||||
|
||||
|
||||
LLAvatarAppearance::initInstance();
|
||||
|
||||
// preload specific motions here
|
||||
|
|
@ -1554,7 +1554,7 @@ LLViewerObject* LLVOAvatar::lineSegmentIntersectRiggedAttachments(const LLVector
|
|||
return hit;
|
||||
}
|
||||
|
||||
|
||||
|
||||
LLVOAvatar* LLVOAvatar::asAvatar()
|
||||
{
|
||||
return this;
|
||||
|
|
@ -1660,15 +1660,15 @@ void LLVOAvatar::releaseMeshData()
|
|||
LLFace* facep = mDrawable->getFace(0);
|
||||
if (facep)
|
||||
{
|
||||
facep->setSize(0, 0);
|
||||
for(S32 i = mNumInitFaces ; i < mDrawable->getNumFaces(); i++)
|
||||
{
|
||||
facep = mDrawable->getFace(i);
|
||||
facep->setSize(0, 0);
|
||||
for(S32 i = mNumInitFaces ; i < mDrawable->getNumFaces(); i++)
|
||||
{
|
||||
facep = mDrawable->getFace(i);
|
||||
if (facep)
|
||||
{
|
||||
facep->setSize(0, 0);
|
||||
}
|
||||
}
|
||||
facep->setSize(0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1855,11 +1855,11 @@ U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
U32 retval = LLViewerObject::processUpdateMessage(mesgsys, user_data, block_num, update_type, dp);
|
||||
|
||||
// Print out arrival information once we have name of avatar.
|
||||
if (has_name && getNVPair("FirstName"))
|
||||
{
|
||||
mDebugExistenceTimer.reset();
|
||||
if (has_name && getNVPair("FirstName"))
|
||||
{
|
||||
mDebugExistenceTimer.reset();
|
||||
debugAvatarRezTime("AvatarRezArrivedNotification","avatar arrived");
|
||||
}
|
||||
}
|
||||
|
||||
if(retval & LLViewerObject::INVALID_UPDATE)
|
||||
{
|
||||
|
|
@ -1955,7 +1955,7 @@ void LLVOAvatar::dumpAnimationState()
|
|||
//------------------------------------------------------------------------
|
||||
// idleUpdate()
|
||||
//------------------------------------------------------------------------
|
||||
void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOAvatar::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
LLFastTimer t(FTM_AVATAR_UPDATE);
|
||||
|
||||
|
|
@ -2010,7 +2010,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||
|
||||
if (isSelf())
|
||||
{
|
||||
LLViewerObject::idleUpdate(agent, world, time);
|
||||
LLViewerObject::idleUpdate(agent, time);
|
||||
|
||||
// trigger fidget anims
|
||||
if (isAnyAnimationSignaled(AGENT_STAND_ANIMS, NUM_AGENT_STAND_ANIMS))
|
||||
|
|
@ -2022,7 +2022,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
|||
{
|
||||
// Should override the idleUpdate stuff and leave out the angular update part.
|
||||
LLQuaternion rotation = getRotation();
|
||||
LLViewerObject::idleUpdate(agent, world, time);
|
||||
LLViewerObject::idleUpdate(agent, time);
|
||||
setRotation(rotation);
|
||||
}
|
||||
|
||||
|
|
@ -2398,8 +2398,8 @@ void LLVOAvatar::idleUpdateLoadingEffect()
|
|||
{
|
||||
LL_INFOS("Avatar") << avString() << "self isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
|
||||
mFirstFullyVisible = FALSE;
|
||||
LLAppearanceMgr::instance().onFirstFullyVisible();
|
||||
}
|
||||
LLAppearanceMgr::instance().onFirstFullyVisible();
|
||||
}
|
||||
if (isFullyLoaded() && mFirstFullyVisible && !isSelf())
|
||||
{
|
||||
LL_INFOS("Avatar") << avString() << "other isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
|
||||
|
|
@ -4082,7 +4082,7 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass)
|
|||
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return num_indices;
|
||||
}
|
||||
|
||||
|
|
@ -5147,7 +5147,7 @@ void LLVOAvatar::getGround(const LLVector3 &in_pos_agent, LLVector3 &out_pos_age
|
|||
//-----------------------------------------------------------------------------
|
||||
F32 LLVOAvatar::getTimeDilation()
|
||||
{
|
||||
return mTimeDilation;
|
||||
return mRegionp ? mRegionp->getTimeDilation() : 1.f;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -5201,7 +5201,7 @@ BOOL LLVOAvatar::loadSkeletonNode ()
|
|||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
// ATTACHMENTS
|
||||
{
|
||||
LLAvatarXmlInfo::attachment_info_list_t::iterator iter;
|
||||
|
|
@ -5566,7 +5566,7 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi
|
|||
<< " trying to use 1 (chest)"
|
||||
<< llendl;
|
||||
|
||||
attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest)
|
||||
attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest)
|
||||
if (attachment)
|
||||
{
|
||||
llwarns << "Object attachment point invalid: " << attachmentID
|
||||
|
|
@ -5731,19 +5731,19 @@ void LLVOAvatar::cleanupAttachedMesh( LLViewerObject* pVO )
|
|||
if (pSkinData
|
||||
&& pSkinData->mJointNames.size() > 20 // full rig
|
||||
&& pSkinData->mAlternateBindMatrix.size() > 0)
|
||||
{
|
||||
LLVOAvatar::resetJointPositionsToDefault();
|
||||
//Need to handle the repositioning of the cam, updating rig data etc during outfit editing
|
||||
//This handles the case where we detach a replacement rig.
|
||||
if ( gAgentCamera.cameraCustomizeAvatar() )
|
||||
{
|
||||
gAgent.unpauseAnimation();
|
||||
//Still want to refocus on head bone
|
||||
gAgentCamera.changeCameraToCustomizeAvatar();
|
||||
{
|
||||
LLVOAvatar::resetJointPositionsToDefault();
|
||||
//Need to handle the repositioning of the cam, updating rig data etc during outfit editing
|
||||
//This handles the case where we detach a replacement rig.
|
||||
if ( gAgentCamera.cameraCustomizeAvatar() )
|
||||
{
|
||||
gAgent.unpauseAnimation();
|
||||
//Still want to refocus on head bone
|
||||
gAgentCamera.changeCameraToCustomizeAvatar();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -6122,7 +6122,7 @@ void LLVOAvatar::updateRezzedStatusTimers()
|
|||
selfStopPhase("process_initial_wearables_update", false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
mLastRezzedStatus = rez_status;
|
||||
}
|
||||
}
|
||||
|
|
@ -6239,7 +6239,7 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse
|
|||
record["grid_y"] = LLSD::Integer(grid_y);
|
||||
record["is_using_server_bakes"] = ((bool) isUsingServerBakes());
|
||||
record["is_self"] = isSelf();
|
||||
|
||||
|
||||
if (isAgentAvatarValid())
|
||||
{
|
||||
gAgentAvatarp->addMetricsTimerRecord(record);
|
||||
|
|
@ -6295,8 +6295,8 @@ BOOL LLVOAvatar::processFullyLoadedChange(bool loading)
|
|||
|
||||
mFullyLoaded = (mFullyLoadedTimer.getElapsedTimeF32() > PAUSE);
|
||||
|
||||
if (!mPreviousFullyLoaded && !loading && mFullyLoaded)
|
||||
{
|
||||
if (!mPreviousFullyLoaded && !loading && mFullyLoaded)
|
||||
{
|
||||
debugAvatarRezTime("AvatarRezNotification","fully loaded");
|
||||
}
|
||||
|
||||
|
|
@ -6447,7 +6447,7 @@ void LLVOAvatar::updateMeshTextures()
|
|||
use_lkg_baked_layer[i],
|
||||
last_id_string.c_str());
|
||||
}
|
||||
|
||||
|
||||
for (U32 i=0; i < mBakedTextureDatas.size(); i++)
|
||||
{
|
||||
debugColorizeSubMeshes(i, LLColor4::white);
|
||||
|
|
@ -6459,7 +6459,7 @@ void LLVOAvatar::updateMeshTextures()
|
|||
mBakedTextureDatas[i].mIsUsed = TRUE;
|
||||
|
||||
debugColorizeSubMeshes(i,LLColor4::red);
|
||||
|
||||
|
||||
avatar_joint_mesh_list_t::iterator iter = mBakedTextureDatas[i].mJointMeshes.begin();
|
||||
avatar_joint_mesh_list_t::iterator end = mBakedTextureDatas[i].mJointMeshes.end();
|
||||
for (; iter != end; ++iter)
|
||||
|
|
@ -6920,7 +6920,7 @@ void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value)
|
|||
// param_location_name(vparam->getParamLocation()).c_str()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
||||
const LLAppearanceMessageContents& contents)
|
||||
|
|
@ -6987,7 +6987,7 @@ void LLVOAvatar::parseAppearanceMessage(LLMessageSystem* mesgsys, LLAppearanceMe
|
|||
// For future use:
|
||||
//mesgsys->getU32Fast(_PREHASH_AppearanceData, _PREHASH_Flags, appearance_flags, 0);
|
||||
}
|
||||
|
||||
|
||||
// Parse visual params, if any.
|
||||
S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_VisualParam);
|
||||
bool drop_visual_params_debug = gSavedSettings.getBOOL("BlockSomeAvatarAppearanceVisualParams") && (ll_rand(2) == 0); // pretend that ~12% of AvatarAppearance messages arrived without a VisualParam block, for testing
|
||||
|
|
@ -7587,7 +7587,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
if( (viewer_param->getWearableType() == type) &&
|
||||
(viewer_param->isTweakable() ) )
|
||||
{
|
||||
dump_visual_param(file, viewer_param, viewer_param->getWeight());
|
||||
dump_visual_param(file, viewer_param, viewer_param->getWeight());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -7596,7 +7596,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
if (LLAvatarAppearanceDictionary::getTEWearableType((ETextureIndex)te) == type)
|
||||
{
|
||||
// MULTIPLE_WEARABLES: extend to multiple wearables?
|
||||
LLViewerTexture* te_image = getImage((ETextureIndex)te, 0);
|
||||
LLViewerTexture* te_image = getImage((ETextureIndex)te, 0);
|
||||
if( te_image )
|
||||
{
|
||||
std::string uuid_str;
|
||||
|
|
@ -7752,7 +7752,7 @@ void LLVOAvatar::startAppearanceAnimation()
|
|||
|
||||
// virtual
|
||||
void LLVOAvatar::bodySizeChanged()
|
||||
{
|
||||
{
|
||||
if (isSelf() && !LLAppearanceMgr::instance().isInUpdateAppearanceFromCOF())
|
||||
{ // notify simulator of change in size
|
||||
// but not if we are in the middle of updating appearance
|
||||
|
|
@ -7776,7 +7776,7 @@ BOOL LLVOAvatar::isUsingServerBakes() const
|
|||
|
||||
return mUseServerBakes;
|
||||
}
|
||||
|
||||
|
||||
void LLVOAvatar::setIsUsingServerBakes(BOOL newval)
|
||||
{
|
||||
mUseServerBakes = newval;
|
||||
|
|
@ -7787,7 +7787,7 @@ void LLVOAvatar::setIsUsingServerBakes(BOOL newval)
|
|||
|
||||
// virtual
|
||||
void LLVOAvatar::removeMissingBakedTextures()
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
|
|||
|
|
@ -129,28 +129,28 @@ public:
|
|||
/*virtual*/ void updateGL();
|
||||
/*virtual*/ LLVOAvatar* asAvatar();
|
||||
virtual U32 processUpdateMessage(LLMessageSystem *mesgsys,
|
||||
void **user_data,
|
||||
U32 block_num,
|
||||
const EObjectUpdateType update_type,
|
||||
LLDataPacker *dp);
|
||||
virtual void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
void **user_data,
|
||||
U32 block_num,
|
||||
const EObjectUpdateType update_type,
|
||||
LLDataPacker *dp);
|
||||
virtual void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
/*virtual*/ BOOL updateLOD();
|
||||
BOOL updateJointLODs();
|
||||
void updateLODRiggedAttachments( void );
|
||||
/*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate.
|
||||
S32 totalTextureMemForUUIDS(std::set<LLUUID>& ids);
|
||||
bool allTexturesCompletelyDownloaded(std::set<LLUUID>& ids) const;
|
||||
bool allLocalTexturesCompletelyDownloaded() const;
|
||||
bool allBakedTexturesCompletelyDownloaded() const;
|
||||
void bakedTextureOriginCounts(S32 &sb_count, S32 &host_count,
|
||||
S32 &both_count, S32 &neither_count);
|
||||
std::string bakedTextureOriginInfo();
|
||||
void collectLocalTextureUUIDs(std::set<LLUUID>& ids) const;
|
||||
void collectBakedTextureUUIDs(std::set<LLUUID>& ids) const;
|
||||
void collectTextureUUIDs(std::set<LLUUID>& ids);
|
||||
void releaseOldTextures();
|
||||
bool allTexturesCompletelyDownloaded(std::set<LLUUID>& ids) const;
|
||||
bool allLocalTexturesCompletelyDownloaded() const;
|
||||
bool allBakedTexturesCompletelyDownloaded() const;
|
||||
void bakedTextureOriginCounts(S32 &sb_count, S32 &host_count,
|
||||
S32 &both_count, S32 &neither_count);
|
||||
std::string bakedTextureOriginInfo();
|
||||
void collectLocalTextureUUIDs(std::set<LLUUID>& ids) const;
|
||||
void collectBakedTextureUUIDs(std::set<LLUUID>& ids) const;
|
||||
void collectTextureUUIDs(std::set<LLUUID>& ids);
|
||||
void releaseOldTextures();
|
||||
/*virtual*/ void updateTextures();
|
||||
LLViewerFetchedTexture* getBakedTextureImage(const U8 te, const LLUUID& uuid);
|
||||
LLViewerFetchedTexture* getBakedTextureImage(const U8 te, const LLUUID& uuid);
|
||||
/*virtual*/ S32 setTETexture(const U8 te, const LLUUID& uuid); // If setting a baked texture, need to request it from a non-local sim.
|
||||
/*virtual*/ void onShift(const LLVector4a& shift_vector);
|
||||
/*virtual*/ U32 getPartitionType() const;
|
||||
|
|
|
|||
|
|
@ -625,11 +625,11 @@ BOOL LLVOAvatarSelf::isValid() const
|
|||
}
|
||||
|
||||
// virtual
|
||||
void LLVOAvatarSelf::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOAvatarSelf::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
if (isValid())
|
||||
{
|
||||
LLVOAvatar::idleUpdate(agent, world, time);
|
||||
LLVOAvatar::idleUpdate(agent, time);
|
||||
idleUpdateTractorBeam();
|
||||
}
|
||||
}
|
||||
|
|
@ -1075,9 +1075,9 @@ void LLVOAvatarSelf::wearableUpdated( LLWearableType::EType type, BOOL upload_re
|
|||
// Physics type has no associated baked textures, but change of params needs to be sent to
|
||||
// other avatars.
|
||||
if (type == LLWearableType::WT_PHYSICS)
|
||||
{
|
||||
{
|
||||
gAgent.sendAgentSetAppearance();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -1310,7 +1310,7 @@ void LLVOAvatarSelf::localTextureLoaded(BOOL success, LLViewerFetchedTexture *sr
|
|||
discard_level < local_tex_obj->getDiscard())
|
||||
{
|
||||
local_tex_obj->setDiscard(discard_level);
|
||||
requestLayerSetUpdate(index);
|
||||
requestLayerSetUpdate(index);
|
||||
if (isEditingAppearance())
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
|
|
@ -2580,25 +2580,25 @@ void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTe
|
|||
//if (!covered_by_baked)
|
||||
{
|
||||
if (imagep->getID() != IMG_DEFAULT_AVATAR)
|
||||
{
|
||||
{
|
||||
imagep->setNoDelete();
|
||||
if (imagep->getDiscardLevel() != 0)
|
||||
{
|
||||
F32 desired_pixels;
|
||||
desired_pixels = llmin(mPixelArea, (F32)getTexImageArea());
|
||||
|
||||
imagep->setBoostLevel(getAvatarBoostLevel());
|
||||
imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ;
|
||||
imagep->resetTextureStats();
|
||||
imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
|
||||
imagep->addTextureStats( desired_pixels / texel_area_ratio );
|
||||
imagep->forceUpdateBindStats() ;
|
||||
if (imagep->getDiscardLevel() < 0)
|
||||
{
|
||||
mHasGrey = TRUE; // for statistics gathering
|
||||
F32 desired_pixels;
|
||||
desired_pixels = llmin(mPixelArea, (F32)getTexImageArea());
|
||||
|
||||
imagep->setBoostLevel(getAvatarBoostLevel());
|
||||
imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ;
|
||||
imagep->resetTextureStats();
|
||||
imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
|
||||
imagep->addTextureStats( desired_pixels / texel_area_ratio );
|
||||
imagep->forceUpdateBindStats() ;
|
||||
if (imagep->getDiscardLevel() < 0)
|
||||
{
|
||||
mHasGrey = TRUE; // for statistics gathering
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// texture asset is missing
|
||||
|
|
@ -2921,17 +2921,17 @@ void LLVOAvatarSelf::requestLayerSetUpdate(ETextureIndex index )
|
|||
|
||||
LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(ETextureIndex index) const
|
||||
{
|
||||
/* switch(index)
|
||||
case TEX_HEAD_BAKED:
|
||||
case TEX_HEAD_BODYPAINT:
|
||||
return mHeadLayerSet; */
|
||||
/* switch(index)
|
||||
case TEX_HEAD_BAKED:
|
||||
case TEX_HEAD_BODYPAINT:
|
||||
return mHeadLayerSet; */
|
||||
const LLAvatarAppearanceDictionary::TextureEntry *texture_dict = LLAvatarAppearanceDictionary::getInstance()->getTexture(index);
|
||||
if (texture_dict->mIsUsedByBakedTexture)
|
||||
{
|
||||
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
|
||||
if (texture_dict->mIsUsedByBakedTexture)
|
||||
{
|
||||
const EBakedTextureIndex baked_index = texture_dict->mBakedTextureIndex;
|
||||
return getLayerSet(baked_index);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
LLViewerTexLayerSet* LLVOAvatarSelf::getLayerSet(EBakedTextureIndex baked_index) const
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ protected:
|
|||
//--------------------------------------------------------------------
|
||||
public:
|
||||
/*virtual*/ void updateRegion(LLViewerRegion *regionp);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// LLCharacter interface and related
|
||||
|
|
|
|||
|
|
@ -277,7 +277,7 @@ BOOL LLVOGrass::isActive() const
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void LLVOGrass::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOGrass::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
if (mDead || !(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_GRASS)))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ public:
|
|||
void plantBlades();
|
||||
|
||||
/*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate.
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
|
||||
/*virtual*/ BOOL lineSegmentIntersect(const LLVector4a& start, const LLVector4a& end,
|
||||
S32 face = -1, // which face to check, -1 = ALL_SIDES
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ LLVOGround::~LLVOGround()
|
|||
{
|
||||
}
|
||||
|
||||
void LLVOGround::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOGround::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ protected:
|
|||
public:
|
||||
LLVOGround(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp);
|
||||
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
|
||||
// Graphical stuff for objects - maybe broken out into render class
|
||||
// later?
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ void LLVOPartGroup::updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax)
|
|||
mDrawable->setPositionGroup(p);
|
||||
}
|
||||
|
||||
void LLVOPartGroup::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOPartGroup::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
LLVOPartGroup(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp);
|
||||
|
||||
/*virtual*/ BOOL isActive() const; // Whether this object needs to do an idleUpdate.
|
||||
void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
|
||||
virtual F32 getBinRadius();
|
||||
virtual void updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax);
|
||||
|
|
|
|||
|
|
@ -1052,7 +1052,7 @@ void LLVOSky::calcAtmospherics(void)
|
|||
mFadeColor.setAlpha(0);
|
||||
}
|
||||
|
||||
void LLVOSky::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOSky::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -461,7 +461,7 @@ public:
|
|||
void cleanupGL();
|
||||
void restoreGL();
|
||||
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
BOOL updateSky();
|
||||
|
||||
// Graphical stuff for objects - maybe broken out into render class
|
||||
|
|
|
|||
|
|
@ -339,7 +339,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
return retval;
|
||||
}
|
||||
|
||||
void LLVOTree::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOTree::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
if (mDead || !(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_TREE)))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public:
|
|||
void **user_data,
|
||||
U32 block_num, const EObjectUpdateType update_type,
|
||||
LLDataPacker *dp);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
|
||||
// Graphical stuff for objects - maybe broken out into render class later?
|
||||
/*virtual*/ void render(LLAgent &agent);
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ void LLVOWater::updateTextures()
|
|||
}
|
||||
|
||||
// Never gets called
|
||||
void LLVOWater::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOWater::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public:
|
|||
static void initClass();
|
||||
static void cleanupClass();
|
||||
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
/*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline);
|
||||
/*virtual*/ BOOL updateGeometry(LLDrawable *drawable);
|
||||
/*virtual*/ void updateSpatialExtents(LLVector4a& newMin, LLVector4a& newMax);
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ void LLVOWLSky::initSunDirection(LLVector3 const & sun_direction,
|
|||
{
|
||||
}
|
||||
|
||||
void LLVOWLSky::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
|
||||
void LLVOWLSky::idleUpdate(LLAgent &agent, const F64 &time)
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public:
|
|||
void initSunDirection(LLVector3 const & sun_direction,
|
||||
LLVector3 const & sun_angular_velocity);
|
||||
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time);
|
||||
/*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time);
|
||||
/*virtual*/ BOOL isActive(void) const;
|
||||
/*virtual*/ LLDrawable * createDrawable(LLPipeline *pipeline);
|
||||
/*virtual*/ BOOL updateGeometry(LLDrawable *drawable);
|
||||
|
|
|
|||
Loading…
Reference in New Issue