diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-05-14 21:02:28 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-05-14 21:02:28 -0400 |
commit | 094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (patch) | |
tree | e750942e5f22ed677b543bd49509c2a7cdc5ce56 /indra/newview/llvoavatarself.h | |
parent | d4043d3b011c32eb503c43c551872f9c24d7344f (diff) | |
parent | 38c2a5bde985a6a8a96d912d432f8bdf7e5b60be (diff) |
Merge DRTVWR-591-maint-X to main on promotion of secondlife/viewer #705: Maintenance X
Diffstat (limited to 'indra/newview/llvoavatarself.h')
-rw-r--r-- | indra/newview/llvoavatarself.h | 428 |
1 files changed, 214 insertions, 214 deletions
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h index 6384e2b844..736bc11a4c 100644 --- a/indra/newview/llvoavatarself.h +++ b/indra/newview/llvoavatarself.h @@ -6,21 +6,21 @@ * $LicenseInfo:firstyear=2001&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * + * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ @@ -43,9 +43,9 @@ class LLInventoryCallback; // //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class LLVOAvatarSelf : - public LLVOAvatar + public LLVOAvatar { - LOG_CLASS(LLVOAvatarSelf); + LOG_CLASS(LLVOAvatarSelf); /******************************************************************************** ** ** @@ -53,16 +53,16 @@ class LLVOAvatarSelf : **/ public: - LLVOAvatarSelf(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); - virtual ~LLVOAvatarSelf(); - virtual void markDead(); - virtual void initInstance(); // Called after construction to initialize the class. - void cleanup(); + LLVOAvatarSelf(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); + virtual ~LLVOAvatarSelf(); + virtual void markDead(); + virtual void initInstance(); // Called after construction to initialize the class. + void cleanup(); protected: - /*virtual*/ BOOL loadAvatar(); - BOOL loadAvatarSelf(); - BOOL buildSkeletonSelf(const LLAvatarSkeletonInfo *info); - BOOL buildMenus(); + /*virtual*/ BOOL loadAvatar(); + BOOL loadAvatarSelf(); + BOOL buildSkeletonSelf(const LLAvatarSkeletonInfo *info); + BOOL buildMenus(); /** Initialization ** ** @@ -73,35 +73,35 @@ protected: ** INHERITED **/ - //-------------------------------------------------------------------- - // LLViewerObject interface and related - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // LLViewerObject interface and related + //-------------------------------------------------------------------- public: - boost::signals2::connection mRegionChangedSlot; + boost::signals2::connection mRegionChangedSlot; - void onSimulatorFeaturesReceived(const LLUUID& region_id); - /*virtual*/ void updateRegion(LLViewerRegion *regionp); - /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); + void onSimulatorFeaturesReceived(const LLUUID& region_id); + /*virtual*/ void updateRegion(LLViewerRegion *regionp); + /*virtual*/ void idleUpdate(LLAgent &agent, const F64 &time); - //-------------------------------------------------------------------- - // LLCharacter interface and related - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // LLCharacter interface and related + //-------------------------------------------------------------------- public: - /*virtual*/ bool hasMotionFromSource(const LLUUID& source_id); - /*virtual*/ void stopMotionFromSource(const LLUUID& source_id); - /*virtual*/ void requestStopMotion(LLMotion* motion); - /*virtual*/ LLJoint* getJoint(const std::string &name); - - /*virtual*/ BOOL setVisualParamWeight(const LLVisualParam *which_param, F32 weight); - /*virtual*/ BOOL setVisualParamWeight(const char* param_name, F32 weight); - /*virtual*/ BOOL setVisualParamWeight(S32 index, F32 weight); - /*virtual*/ void updateVisualParams(); - void writeWearablesToAvatar(); - /*virtual*/ void idleUpdateAppearanceAnimation(); + /*virtual*/ bool hasMotionFromSource(const LLUUID& source_id); + /*virtual*/ void stopMotionFromSource(const LLUUID& source_id); + /*virtual*/ void requestStopMotion(LLMotion* motion); + /*virtual*/ LLJoint* getJoint(const std::string &name); + + /*virtual*/ BOOL setVisualParamWeight(const LLVisualParam *which_param, F32 weight); + /*virtual*/ BOOL setVisualParamWeight(const char* param_name, F32 weight); + /*virtual*/ BOOL setVisualParamWeight(S32 index, F32 weight); + /*virtual*/ void updateVisualParams(); + void writeWearablesToAvatar(); + /*virtual*/ void idleUpdateAppearanceAnimation(); private: - // helper function. Passed in param is assumed to be in avatar's parameter list. - BOOL setParamWeight(const LLViewerVisualParam *param, F32 weight); + // helper function. Passed in param is assumed to be in avatar's parameter list. + BOOL setParamWeight(const LLViewerVisualParam *param, F32 weight); /******************************************************************************** ** ** @@ -109,33 +109,33 @@ private: **/ public: - /*virtual*/ bool isSelf() const { return true; } - /*virtual*/ BOOL isValid() const; + /*virtual*/ bool isSelf() const { return true; } + /*virtual*/ BOOL isValid() const; - //-------------------------------------------------------------------- - // Updates - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Updates + //-------------------------------------------------------------------- public: - /*virtual*/ bool updateCharacter(LLAgent &agent); - /*virtual*/ void idleUpdateTractorBeam(); - bool checkStuckAppearance(); + /*virtual*/ bool updateCharacter(LLAgent &agent); + /*virtual*/ void idleUpdateTractorBeam(); + bool checkStuckAppearance(); - //-------------------------------------------------------------------- - // Loading state - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Loading state + //-------------------------------------------------------------------- public: - /*virtual*/ bool getIsCloud() const; + /*virtual*/ bool getIsCloud() const; - //-------------------------------------------------------------------- - // Region state - //-------------------------------------------------------------------- - void resetRegionCrossingTimer() { mRegionCrossingTimer.reset(); } + //-------------------------------------------------------------------- + // Region state + //-------------------------------------------------------------------- + void resetRegionCrossingTimer() { mRegionCrossingTimer.reset(); } private: - U64 mLastRegionHandle; - LLFrameTimer mRegionCrossingTimer; - S32 mRegionCrossingCount; - + U64 mLastRegionHandle; + LLFrameTimer mRegionCrossingTimer; + S32 mRegionCrossingCount; + /** State ** ** *******************************************************************************/ @@ -145,22 +145,22 @@ private: ** RENDERING **/ - //-------------------------------------------------------------------- - // Render beam - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Render beam + //-------------------------------------------------------------------- protected: - BOOL needsRenderBeam(); + BOOL needsRenderBeam(); private: - LLPointer<LLHUDEffectSpiral> mBeam; - LLFrameTimer mBeamTimer; + LLPointer<LLHUDEffectSpiral> mBeam; + LLFrameTimer mBeamTimer; - //-------------------------------------------------------------------- - // LLVOAvatar Constants - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // LLVOAvatar Constants + //-------------------------------------------------------------------- public: - /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBoostLevel() const { return LLGLTexture::BOOST_AVATAR_SELF; } - /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBakedBoostLevel() const { return LLGLTexture::BOOST_AVATAR_BAKED_SELF; } - /*virtual*/ S32 getTexImageSize() const { return LLVOAvatar::getTexImageSize()*4; } + /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBoostLevel() const { return LLGLTexture::BOOST_AVATAR_SELF; } + /*virtual*/ LLViewerTexture::EBoostLevel getAvatarBakedBoostLevel() const { return LLGLTexture::BOOST_AVATAR_BAKED_SELF; } + /*virtual*/ S32 getTexImageSize() const { return LLVOAvatar::getTexImageSize()*4; } /** Rendering ** ** @@ -171,86 +171,86 @@ public: ** TEXTURES **/ - //-------------------------------------------------------------------- - // Loading status - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Loading status + //-------------------------------------------------------------------- public: - S32 getLocalDiscardLevel(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; - bool areTexturesCurrent() const; - BOOL isLocalTextureDataAvailable(const LLViewerTexLayerSet* layerset) const; - BOOL isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset) const; - // If you want to check all textures of a given type, pass gAgentWearables.getWearableCount() for index - /*virtual*/ BOOL isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; - /*virtual*/ BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, U32 index = 0) const; - /*virtual*/ BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerWearable *wearable) const; - - - //-------------------------------------------------------------------- - // Local Textures - //-------------------------------------------------------------------- + S32 getLocalDiscardLevel(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; + bool areTexturesCurrent() const; + BOOL isLocalTextureDataAvailable(const LLViewerTexLayerSet* layerset) const; + BOOL isLocalTextureDataFinal(const LLViewerTexLayerSet* layerset) const; + // If you want to check all textures of a given type, pass gAgentWearables.getWearableCount() for index + /*virtual*/ BOOL isTextureDefined(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; + /*virtual*/ BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, U32 index = 0) const; + /*virtual*/ BOOL isTextureVisible(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerWearable *wearable) const; + + + //-------------------------------------------------------------------- + // Local Textures + //-------------------------------------------------------------------- public: - BOOL getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture** image_gl_pp, U32 index) const; - LLViewerFetchedTexture* getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; - const LLUUID& getLocalTextureID(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; - void setLocalTextureTE(U8 te, LLViewerTexture* image, U32 index); - /*virtual*/ void setLocalTexture(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture* tex, BOOL baked_version_exits, U32 index); + BOOL getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture** image_gl_pp, U32 index) const; + LLViewerFetchedTexture* getLocalTextureGL(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; + const LLUUID& getLocalTextureID(LLAvatarAppearanceDefines::ETextureIndex type, U32 index) const; + void setLocalTextureTE(U8 te, LLViewerTexture* image, U32 index); + /*virtual*/ void setLocalTexture(LLAvatarAppearanceDefines::ETextureIndex type, LLViewerTexture* tex, BOOL baked_version_exits, U32 index); protected: - /*virtual*/ void setBakedReady(LLAvatarAppearanceDefines::ETextureIndex type, BOOL baked_version_exists, U32 index); - void localTextureLoaded(BOOL succcess, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); - void getLocalTextureByteCount(S32* gl_byte_count) const; - /*virtual*/ void addLocalTextureStats(LLAvatarAppearanceDefines::ETextureIndex i, LLViewerFetchedTexture* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked); - LLLocalTextureObject* getLocalTextureObject(LLAvatarAppearanceDefines::ETextureIndex i, U32 index) const; + /*virtual*/ void setBakedReady(LLAvatarAppearanceDefines::ETextureIndex type, BOOL baked_version_exists, U32 index); + void localTextureLoaded(BOOL succcess, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); + void getLocalTextureByteCount(S32* gl_byte_count) const; + /*virtual*/ void addLocalTextureStats(LLAvatarAppearanceDefines::ETextureIndex i, LLViewerFetchedTexture* imagep, F32 texel_area_ratio, BOOL rendered, BOOL covered_by_baked); + LLLocalTextureObject* getLocalTextureObject(LLAvatarAppearanceDefines::ETextureIndex i, U32 index) const; private: - static void onLocalTextureLoaded(BOOL succcess, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); + static void onLocalTextureLoaded(BOOL succcess, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); - /*virtual*/ void setImage(const U8 te, LLViewerTexture *imagep, const U32 index); - /*virtual*/ LLViewerTexture* getImage(const U8 te, const U32 index) const; + /*virtual*/ void setImage(const U8 te, LLViewerTexture *imagep, const U32 index); + /*virtual*/ LLViewerTexture* getImage(const U8 te, const U32 index) const; - //-------------------------------------------------------------------- - // Baked textures - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Baked textures + //-------------------------------------------------------------------- public: - LLAvatarAppearanceDefines::ETextureIndex getBakedTE(const LLViewerTexLayerSet* layerset ) const; - // SUNSHINE CLEANUP - dead? or update to just call request appearance update? - void forceBakeAllTextures(bool slam_for_debug = false); + LLAvatarAppearanceDefines::ETextureIndex getBakedTE(const LLViewerTexLayerSet* layerset ) const; + // SUNSHINE CLEANUP - dead? or update to just call request appearance update? + void forceBakeAllTextures(bool slam_for_debug = false); protected: - /*virtual*/ void removeMissingBakedTextures(); + /*virtual*/ void removeMissingBakedTextures(); - //-------------------------------------------------------------------- - // Layers - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Layers + //-------------------------------------------------------------------- public: - void requestLayerSetUpdate(LLAvatarAppearanceDefines::ETextureIndex i); - LLViewerTexLayerSet* getLayerSet(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const; - LLViewerTexLayerSet* getLayerSet(LLAvatarAppearanceDefines::ETextureIndex index) const; - - - //-------------------------------------------------------------------- - // Composites - //-------------------------------------------------------------------- + void requestLayerSetUpdate(LLAvatarAppearanceDefines::ETextureIndex i); + LLViewerTexLayerSet* getLayerSet(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const; + LLViewerTexLayerSet* getLayerSet(LLAvatarAppearanceDefines::ETextureIndex index) const; + + + //-------------------------------------------------------------------- + // Composites + //-------------------------------------------------------------------- public: - /* virtual */ void invalidateComposite(LLTexLayerSet* layerset); - /* virtual */ void invalidateAll(); - /* virtual */ void setCompositeUpdatesEnabled(bool b); // only works for self - /* virtual */ void setCompositeUpdatesEnabled(U32 index, bool b); - /* virtual */ bool isCompositeUpdateEnabled(U32 index); - void setupComposites(); - void updateComposites(); + /* virtual */ void invalidateComposite(LLTexLayerSet* layerset); + /* virtual */ void invalidateAll(); + /* virtual */ void setCompositeUpdatesEnabled(bool b); // only works for self + /* virtual */ void setCompositeUpdatesEnabled(U32 index, bool b); + /* virtual */ bool isCompositeUpdateEnabled(U32 index); + void setupComposites(); + void updateComposites(); - const LLUUID& grabBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const; - BOOL canGrabBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const; + const LLUUID& grabBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const; + BOOL canGrabBakedTexture(LLAvatarAppearanceDefines::EBakedTextureIndex baked_index) const; - //-------------------------------------------------------------------- - // Scratch textures (used for compositing) - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Scratch textures (used for compositing) + //-------------------------------------------------------------------- public: - static void deleteScratchTextures(); + static void deleteScratchTextures(); private: - static S32Bytes sScratchTexBytes; - static std::map< LLGLenum, LLGLuint*> sScratchTexNames; + static S32Bytes sScratchTexBytes; + static std::map< LLGLenum, LLGLuint*> sScratchTexNames; /** Textures ** ** @@ -261,7 +261,7 @@ private: ** MESHES **/ protected: - /*virtual*/ void restoreMeshData(); + /*virtual*/ void restoreMeshData(); /** Meshes ** ** @@ -273,30 +273,30 @@ protected: **/ public: - void wearableUpdated(LLWearableType::EType type); + void wearableUpdated(LLWearableType::EType type); protected: - U32 getNumWearables(LLAvatarAppearanceDefines::ETextureIndex i) const; + U32 getNumWearables(LLAvatarAppearanceDefines::ETextureIndex i) const; - //-------------------------------------------------------------------- - // Attachments - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Attachments + //-------------------------------------------------------------------- public: - void updateAttachmentVisibility(U32 camera_mode); - BOOL isWearingAttachment(const LLUUID& inv_item_id) const; - LLViewerObject* getWornAttachment(const LLUUID& inv_item_id); - bool getAttachedPointName(const LLUUID& inv_item_id, std::string& name) const; - /*virtual*/ const LLViewerJointAttachment *attachObject(LLViewerObject *viewer_object); - /*virtual*/ BOOL detachObject(LLViewerObject *viewer_object); - static BOOL detachAttachmentIntoInventory(const LLUUID& item_id); + void updateAttachmentVisibility(U32 camera_mode); + BOOL isWearingAttachment(const LLUUID& inv_item_id) const; + LLViewerObject* getWornAttachment(const LLUUID& inv_item_id); + bool getAttachedPointName(const LLUUID& inv_item_id, std::string& name) const; + /*virtual*/ const LLViewerJointAttachment *attachObject(LLViewerObject *viewer_object); + /*virtual*/ BOOL detachObject(LLViewerObject *viewer_object); + static BOOL detachAttachmentIntoInventory(const LLUUID& item_id); bool hasAttachmentsInTrash(); - //-------------------------------------------------------------------- - // HUDs - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // HUDs + //-------------------------------------------------------------------- private: - LLViewerJoint* mScreenp; // special purpose joint for HUD attachments - + LLViewerJoint* mScreenp; // special purpose joint for HUD attachments + /** Attachments ** ** *******************************************************************************/ @@ -307,26 +307,26 @@ private: **/ public: - static void onCustomizeStart(bool disable_camera_switch = false); - static void onCustomizeEnd(bool disable_camera_switch = false); - LLPointer<LLInventoryCallback> mEndCustomizeCallback; + static void onCustomizeStart(bool disable_camera_switch = false); + static void onCustomizeEnd(bool disable_camera_switch = false); + LLPointer<LLInventoryCallback> mEndCustomizeCallback; - //-------------------------------------------------------------------- - // Visibility - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + // Visibility + //-------------------------------------------------------------------- /* virtual */ bool shouldRenderRigged() const; - + public: - bool sendAppearanceMessage(LLMessageSystem *mesgsys) const; + bool sendAppearanceMessage(LLMessageSystem *mesgsys) const; - // -- care and feeding of hover height. - void setHoverIfRegionEnabled(); - void sendHoverHeight() const; - /*virtual*/ void setHoverOffset(const LLVector3& hover_offset, bool send_update=true); + // -- care and feeding of hover height. + void setHoverIfRegionEnabled(); + void sendHoverHeight() const; + /*virtual*/ void setHoverOffset(const LLVector3& hover_offset, bool send_update=true); private: - mutable LLVector3 mLastHoverOffsetSent; + mutable LLVector3 mLastHoverOffsetSent; /** Appearance ** ** @@ -337,58 +337,58 @@ private: ** DIAGNOSTICS **/ - //-------------------------------------------------------------------- - // General - //-------------------------------------------------------------------- -public: - static void dumpTotalLocalTextureByteCount(); - void dumpLocalTextures() const; - static void dumpScratchTextureByteCount(); - void dumpWearableInfo(LLAPRFile& outfile); - - //-------------------------------------------------------------------- - // Avatar Rez Metrics - //-------------------------------------------------------------------- -public: - struct LLAvatarTexData - { - LLAvatarTexData(const LLUUID& id, LLAvatarAppearanceDefines::ETextureIndex index) : - mAvatarID(id), - mIndex(index) - {} - LLUUID mAvatarID; - LLAvatarAppearanceDefines::ETextureIndex mIndex; - }; - - LLTimer mTimeSinceLastRezMessage; - bool updateAvatarRezMetrics(bool force_send); - - std::vector<LLSD> mPendingTimerRecords; - void addMetricsTimerRecord(const LLSD& record); - - void debugWearablesLoaded() { mDebugTimeWearablesLoaded = mDebugSelfLoadTimer.getElapsedTimeF32(); } - void debugAvatarVisible() { mDebugTimeAvatarVisible = mDebugSelfLoadTimer.getElapsedTimeF32(); } - void outputRezDiagnostics() const; - void outputRezTiming(const std::string& msg) const; - void reportAvatarRezTime() const; - void debugBakedTextureUpload(LLAvatarAppearanceDefines::EBakedTextureIndex index, BOOL finished); - static void debugOnTimingLocalTexLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); - - BOOL isAllLocalTextureDataFinal() const; - - const LLViewerTexLayerSet* debugGetLayerSet(LLAvatarAppearanceDefines::EBakedTextureIndex index) const { return (LLViewerTexLayerSet*)(mBakedTextureDatas[index].mTexLayerSet); } - const std::string verboseDebugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer - void dumpAllTextures() const; - const std::string debugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer - const std::string debugDumpAllLocalTextureDataInfo() const; // Lists out which baked textures are at highest LOD - void sendViewerAppearanceChangeMetrics(); // send data associated with completing a change. + //-------------------------------------------------------------------- + // General + //-------------------------------------------------------------------- +public: + static void dumpTotalLocalTextureByteCount(); + void dumpLocalTextures() const; + static void dumpScratchTextureByteCount(); + void dumpWearableInfo(LLAPRFile& outfile); + + //-------------------------------------------------------------------- + // Avatar Rez Metrics + //-------------------------------------------------------------------- +public: + struct LLAvatarTexData + { + LLAvatarTexData(const LLUUID& id, LLAvatarAppearanceDefines::ETextureIndex index) : + mAvatarID(id), + mIndex(index) + {} + LLUUID mAvatarID; + LLAvatarAppearanceDefines::ETextureIndex mIndex; + }; + + LLTimer mTimeSinceLastRezMessage; + bool updateAvatarRezMetrics(bool force_send); + + std::vector<LLSD> mPendingTimerRecords; + void addMetricsTimerRecord(const LLSD& record); + + void debugWearablesLoaded() { mDebugTimeWearablesLoaded = mDebugSelfLoadTimer.getElapsedTimeF32(); } + void debugAvatarVisible() { mDebugTimeAvatarVisible = mDebugSelfLoadTimer.getElapsedTimeF32(); } + void outputRezDiagnostics() const; + void outputRezTiming(const std::string& msg) const; + void reportAvatarRezTime() const; + void debugBakedTextureUpload(LLAvatarAppearanceDefines::EBakedTextureIndex index, BOOL finished); + static void debugOnTimingLocalTexLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); + + BOOL isAllLocalTextureDataFinal() const; + + const LLViewerTexLayerSet* debugGetLayerSet(LLAvatarAppearanceDefines::EBakedTextureIndex index) const { return (LLViewerTexLayerSet*)(mBakedTextureDatas[index].mTexLayerSet); } + const std::string verboseDebugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer + void dumpAllTextures() const; + const std::string debugDumpLocalTextureDataInfo(const LLViewerTexLayerSet* layerset) const; // Lists out state of this particular baked texture layer + const std::string debugDumpAllLocalTextureDataInfo() const; // Lists out which baked textures are at highest LOD + void sendViewerAppearanceChangeMetrics(); // send data associated with completing a change. private: - LLFrameTimer mDebugSelfLoadTimer; - F32 mDebugTimeWearablesLoaded; - F32 mDebugTimeAvatarVisible; - F32 mDebugTextureLoadTimes[LLAvatarAppearanceDefines::TEX_NUM_INDICES][MAX_DISCARD_LEVEL+1]; // load time for each texture at each discard level - F32 mDebugBakedTextureTimes[LLAvatarAppearanceDefines::BAKED_NUM_INDICES][2]; // time to start upload and finish upload of each baked texture - void debugTimingLocalTexLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); + LLFrameTimer mDebugSelfLoadTimer; + F32 mDebugTimeWearablesLoaded; + F32 mDebugTimeAvatarVisible; + F32 mDebugTextureLoadTimes[LLAvatarAppearanceDefines::TEX_NUM_INDICES][MAX_DISCARD_LEVEL+1]; // load time for each texture at each discard level + F32 mDebugBakedTextureTimes[LLAvatarAppearanceDefines::BAKED_NUM_INDICES][2]; // time to start upload and finish upload of each baked texture + void debugTimingLocalTexLoaded(BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* aux_src, S32 discard_level, BOOL final, void* userdata); void appearanceChangeMetricsCoro(std::string url); bool mInitialMetric; |