correct bug in initial av rendering I introduced, clarify several tests

meow-7.2.2
Oz Linden 2015-02-06 09:50:45 -08:00
parent 53fb7f9998
commit 4e1bd474f2
4 changed files with 34 additions and 47 deletions

View File

@ -767,7 +767,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
LLSceneMonitor::getInstance()->freezeAvatar((LLCharacter*)this);
}
mCachedVisualMute = !isSelf(); // default to muting everyone? hmmm....
mCachedVisualMute = !isSelf(); // default to muting everyone else? hmmm....
mCachedVisualMuteUpdateTime = LLFrameTimer::getTotalSeconds() + 5.0;
mVisuallyMuteSetting = VISUAL_MUTE_NOT_SET;
@ -2475,19 +2475,22 @@ void LLVOAvatar::idleUpdateLoadingEffect()
// update visibility when avatar is partially loaded
if (updateIsFullyLoaded()) // changed?
{
if (isFullyLoaded() && mFirstFullyVisible && isSelf())
{
LL_INFOS("Avatar") << avString() << "self isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
mFirstFullyVisible = FALSE;
LLAppearanceMgr::instance().onFirstFullyVisible();
}
if (isFullyLoaded() && mFirstFullyVisible && !isSelf())
{
LL_INFOS("Avatar") << avString() << "other isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
mFirstFullyVisible = FALSE;
}
if (isFullyLoaded())
{
if (mFirstFullyVisible)
{
mFirstFullyVisible = FALSE;
if (isSelf())
{
LL_INFOS("Avatar") << avString() << "self isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
LLAppearanceMgr::instance().onFirstFullyVisible();
}
else
{
LL_INFOS("Avatar") << avString() << "other isFullyLoaded, mFirstFullyVisible" << LL_ENDL;
}
}
deleteParticleSource();
updateLOD();
}
@ -2520,10 +2523,7 @@ void LLVOAvatar::idleUpdateLoadingEffect()
LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK |
LLPartData::LL_PART_TARGET_POS_MASK );
if (!isVisuallyMuted()) // if we are muting the avatar, don't render particles
{
setParticleSource(particle_parameters, getID());
}
setParticleSource(particle_parameters, getID());
}
}
}
@ -6135,27 +6135,14 @@ BOOL LLVOAvatar::isVisible() const
}
// Determine if we have enough avatar data to render
BOOL LLVOAvatar::getIsCloud() const
bool LLVOAvatar::getIsCloud() const
{
// Do we have a shape?
if ((const_cast<LLVOAvatar*>(this))->visualParamWeightsAreDefault())
{
return TRUE;
}
if (!isTextureDefined(TEX_LOWER_BAKED) ||
!isTextureDefined(TEX_UPPER_BAKED) ||
!isTextureDefined(TEX_HEAD_BAKED))
{
return TRUE;
}
if (isVisuallyMuted())
{
// we can render the muted representation
return TRUE;
}
return FALSE;
return ( ((const_cast<LLVOAvatar*>(this))->visualParamWeightsAreDefault())// Do we have a shape?
|| ( !isTextureDefined(TEX_LOWER_BAKED)
|| !isTextureDefined(TEX_UPPER_BAKED)
|| !isTextureDefined(TEX_HEAD_BAKED)
)
);
}
void LLVOAvatar::updateRezzedStatusTimers()
@ -6333,7 +6320,7 @@ void LLVOAvatar::logMetricsTimerRecord(const std::string& phase_name, F32 elapse
// returns true if the value has changed.
BOOL LLVOAvatar::updateIsFullyLoaded()
{
const BOOL loading = getIsCloud();
const bool loading = getIsCloud();
updateRezzedStatusTimers();
updateRuthTimer(loading);
return processFullyLoadedChange(loading);
@ -8269,7 +8256,7 @@ LLColor4 LLVOAvatar::calcMutedAVColor(const LLUUID av_id)
new_color.normalize();
new_color *= 0.5f; // Tone it down
LL_DEBUGS("AvatarMute") << "avatar "<< av_id << " color " << std::setprecision(3) << color_value << " returning color " << new_color
LL_DEBUGS("AvatarRender") << "avatar "<< av_id << " color " << std::setprecision(3) << color_value << " returning color " << new_color
<< " using indexes " << spectrum_index_1 << ", " << spectrum_index_2
<< " and fractBetween " << fractBetween
<< LL_ENDL;

View File

@ -301,7 +301,7 @@ public:
public:
BOOL isFullyLoaded() const;
bool visualParamWeightsAreDefault();
virtual BOOL getIsCloud() const;
virtual bool getIsCloud() const;
BOOL isFullyTextured() const;
BOOL hasGray() const;
S32 getRezzedStatus() const; // 0 = cloud, 1 = gray, 2 = textured, 3 = textured and fully downloaded.

View File

@ -1840,7 +1840,7 @@ void LLVOAvatarSelf::dumpTotalLocalTextureByteCount()
LL_INFOS() << "Total Avatar LocTex GL:" << (gl_bytes/1024) << "KB" << LL_ENDL;
}
BOOL LLVOAvatarSelf::getIsCloud() const
bool LLVOAvatarSelf::getIsCloud() const
{
// Let people know why they're clouded without spamming them into oblivion.
bool do_warn = false;
@ -1868,7 +1868,7 @@ BOOL LLVOAvatarSelf::getIsCloud() const
<< (skin_count ? "" : "SKIN ")
<< LL_ENDL;
}
return TRUE;
return true;
}
if (!isTextureDefined(TEX_HAIR, 0))
@ -1877,7 +1877,7 @@ BOOL LLVOAvatarSelf::getIsCloud() const
{
LL_INFOS() << "Self is clouded because of no hair texture" << LL_ENDL;
}
return TRUE;
return true;
}
if (!mPreviousFullyLoaded)
@ -1889,7 +1889,7 @@ BOOL LLVOAvatarSelf::getIsCloud() const
{
LL_INFOS() << "Self is clouded because lower textures not baked" << LL_ENDL;
}
return TRUE;
return true;
}
if (!isLocalTextureDataAvailable(getLayerSet(BAKED_UPPER)) &&
@ -1899,7 +1899,7 @@ BOOL LLVOAvatarSelf::getIsCloud() const
{
LL_INFOS() << "Self is clouded because upper textures not baked" << LL_ENDL;
}
return TRUE;
return true;
}
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
@ -1920,13 +1920,13 @@ BOOL LLVOAvatarSelf::getIsCloud() const
LL_INFOS() << "Self is clouded because texture at index " << i
<< " (texture index is " << texture_data.mTextureIndex << ") is not loaded" << LL_ENDL;
}
return TRUE;
return true;
}
}
LL_DEBUGS() << "Avatar de-clouded" << LL_ENDL;
}
return FALSE;
return false;
}
/*static*/

View File

@ -128,7 +128,7 @@ public:
// Loading state
//--------------------------------------------------------------------
public:
/*virtual*/ BOOL getIsCloud() const;
/*virtual*/ bool getIsCloud() const;
//--------------------------------------------------------------------
// Region state