diff options
author | Roxie Linden <roxie@lindenlab.com> | 2010-03-16 12:33:25 -0700 |
---|---|---|
committer | Roxie Linden <roxie@lindenlab.com> | 2010-03-16 12:33:25 -0700 |
commit | 60c4621500e478d66a8bdc3a1c80573be2860fee (patch) | |
tree | fa10b52caf3a54e03502058cd52d77952370cb34 /indra/newview/llwearable.cpp | |
parent | 2e525711cd08d5f1dce991d1b6595a8dd41c9e3b (diff) | |
parent | ba414d500ca8cb88da530c89ba373c95195ce633 (diff) |
Automated merge from viewer/viewer-2-0
Diffstat (limited to 'indra/newview/llwearable.cpp')
-rw-r--r-- | indra/newview/llwearable.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index acfbc23f62..3334c17a8f 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -56,6 +56,35 @@ using namespace LLVOAvatarDefines; // static S32 LLWearable::sCurrentDefinitionVersion = 1; +// support class - remove for 2.1 (hackity hack hack) +class LLOverrideBakedTextureUpdate +{ +public: + LLOverrideBakedTextureUpdate(bool temp_state) + { + mAvatar = gAgent.getAvatarObject(); + U32 num_bakes = (U32) LLVOAvatarDefines::BAKED_NUM_INDICES; + for( U32 index = 0; index < num_bakes; ++index ) + { + composite_enabled[index] = mAvatar->isCompositeUpdateEnabled(index); + } + mAvatar->setCompositeUpdatesEnabled(temp_state); + } + + ~LLOverrideBakedTextureUpdate() + { + U32 num_bakes = (U32)LLVOAvatarDefines::BAKED_NUM_INDICES; + for( U32 index = 0; index < num_bakes; ++index ) + { + mAvatar->setCompositeUpdatesEnabled(index, composite_enabled[index]); + } + } + +private: + bool composite_enabled[LLVOAvatarDefines::BAKED_NUM_INDICES]; + LLVOAvatarSelf *mAvatar; +}; + // Private local functions static std::string terse_F32_to_string(F32 f); static std::string asset_id_to_filename(const LLUUID &asset_id); @@ -216,6 +245,10 @@ BOOL LLWearable::importFile( LLFILE* file ) char text_buffer[2048]; /* Flawfinder: ignore */ S32 fields_read = 0; + // suppress texlayerset updates while wearables are being imported. Layersets will be updated + // when the wearables are "worn", not loaded. Note state will be restored when this object is destroyed. + LLOverrideBakedTextureUpdate stop_bakes(false); + // read header and version fields_read = fscanf( file, "LLWearable version %d\n", &mDefinitionVersion ); if( fields_read != 1 ) |