diff options
author | Kent Quirk <q@lindenlab.com> | 2010-03-23 23:02:02 -0400 |
---|---|---|
committer | Kent Quirk <q@lindenlab.com> | 2010-03-23 23:02:02 -0400 |
commit | 62ebb4533ceff1d0a7cf68a6385a8d3b34fa51d4 (patch) | |
tree | dd6cd1b313f933847c6e603d50a65ffbc82fee01 /indra/newview/llwearable.cpp | |
parent | 3ad56f22158dd2665204745af2171689f208cd7e (diff) | |
parent | ea8f1b80df0fcfcdbb52123b2ece68916ed139ff (diff) |
Merge from 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 ) |