summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatar.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llvoavatar.h')
-rwxr-xr-x[-rw-r--r--]indra/newview/llvoavatar.h43
1 files changed, 40 insertions, 3 deletions
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index dd0317f555..76261c0dc8 100644..100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -277,14 +277,44 @@ public:
public:
BOOL isFullyLoaded() const;
bool isTooComplex() const;
- bool visualParamWeightsAreDefault();
+ bool visualParamWeightsAreDefault();
+ virtual BOOL getIsCloud() const;
+ BOOL isFullyTextured() const;
+ BOOL hasGray() const;
+ S32 getRezzedStatus() const; // 0 = cloud, 1 = gray, 2 = fully textured.
+
+ // Tracking progress of active/completed phases for activities like outfit changing.
+ LLFrameTimer& getPhaseTimer(const std::string& phase_name);
+ void startPhase(const std::string& phase_name);
+ void stopPhase(const std::string& phase_name);
+ void stopAllPhases();
+ void clearPhases();
+ LLSD dumpPhases();
+
+ class ScopedPhaseSetter
+ {
+ public:
+ ScopedPhaseSetter(LLVOAvatar* avatar, std::string phase_name):
+ mAvatar(avatar),mPhaseName(phase_name)
+ {
+ if (mAvatar) { mAvatar->startPhase(mPhaseName); }
+ }
+ ~ScopedPhaseSetter()
+ {
+ if (mAvatar) { mAvatar->stopPhase(mPhaseName); }
+ }
+ private:
+ std::string mPhaseName;
+ LLVOAvatar* mAvatar;
+ };
+
protected:
- virtual BOOL getIsCloud();
BOOL updateIsFullyLoaded();
BOOL processFullyLoadedChange(bool loading);
void updateRuthTimer(bool loading);
F32 calcMorphAmount();
private:
+ BOOL mFirstFullyVisible;
BOOL mFullyLoaded;
BOOL mPreviousFullyLoaded;
BOOL mFullyLoadedInitialized;
@@ -292,6 +322,10 @@ private:
S32 mVisualComplexity;
LLFrameTimer mFullyLoadedTimer;
LLFrameTimer mRuthTimer;
+
+ typedef std::map<std::string,LLFrameTimer> phase_map_t;
+ phase_map_t mPhases;
+
protected:
LLFrameTimer mInvisibleTimer;
@@ -518,9 +552,9 @@ public:
virtual BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex type, U32 index = 0) const;
virtual BOOL isTextureVisible(LLVOAvatarDefines::ETextureIndex type, LLWearable *wearable) const;
-protected:
BOOL isFullyBaked();
static BOOL areAllNearbyInstancesBaked(S32& grey_avatars);
+ static void getNearbyRezzedStats(std::vector<S32>& counts);
//--------------------------------------------------------------------
// Baked textures
@@ -882,6 +916,7 @@ private:
public:
std::string getFullname() const; // Returns "FirstName LastName"
+ std::string avString() const; // Frequently used string in log messages "Avatar '<full name'"
protected:
static void getAnimLabels(LLDynamicArray<std::string>* labels);
static void getAnimNames(LLDynamicArray<std::string>* names);
@@ -983,7 +1018,9 @@ private:
// Avatar Rez Metrics
//--------------------------------------------------------------------
public:
+ void debugAvatarRezTime(std::string notification_name, std::string comment = "");
F32 debugGetExistenceTimeElapsedF32() const { return mDebugExistenceTimer.getElapsedTimeF32(); }
+
protected:
LLFrameTimer mRuthDebugTimer; // For tracking how long it takes for av to rez
LLFrameTimer mDebugExistenceTimer; // Debugging for how long the avatar has been in memory.