diff --git a/autobuild.xml b/autobuild.xml
index c342ffddaa..743f4b47bc 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -922,11 +922,11 @@
archive
name
darwin64
@@ -936,11 +936,11 @@
archive
name
linux64
@@ -950,11 +950,9 @@
archive
name
windows64
diff --git a/indra/llappearance/llavatarappearance.h b/indra/llappearance/llavatarappearance.h
index 3617ce2bb6..25a51da03d 100644
--- a/indra/llappearance/llavatarappearance.h
+++ b/indra/llappearance/llavatarappearance.h
@@ -140,10 +140,9 @@ public:
LLVector3 mHeadOffset{}; // current head position
LLAvatarJoint* mRoot{ nullptr };
- // This map gets queried a huge amount of time.
+ // Joint-lookup improvements
// typedef std::map joint_map_t;
- typedef std::unordered_map joint_map_t;
- //
+ typedef std::map> joint_map_t;
joint_map_t mJointMap;
diff --git a/indra/llaudio/llaudioengine_fmodstudio.cpp b/indra/llaudio/llaudioengine_fmodstudio.cpp
index 02d3408497..e9996b93e0 100644
--- a/indra/llaudio/llaudioengine_fmodstudio.cpp
+++ b/indra/llaudio/llaudioengine_fmodstudio.cpp
@@ -44,9 +44,9 @@
#include "sound_ids.h"
-const U32 EXTRA_SOUND_CHANNELS = 10;
+constexpr U32 EXTRA_SOUND_CHANNELS = 10;
-FMOD_RESULT F_CALLBACK windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels);
+FMOD_RESULT F_CALL windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels);
FMOD::ChannelGroup *LLAudioEngine_FMODSTUDIO::mChannelGroups[LLAudioEngine::AUDIO_TYPE_COUNT] = {0};
@@ -69,13 +69,13 @@ static inline bool Check_FMOD_Error(FMOD_RESULT result, const char *string)
return true;
}
-LLUUID FMOD_GUID_to_LLUUID(FMOD_GUID guid)
+static LLUUID FMOD_GUID_to_LLUUID(FMOD_GUID guid)
{
return LLUUID(llformat("%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]));
}
-void set_device(FMOD::System* system, const LLUUID& device_uuid)
+static void set_device(FMOD::System* system, const LLUUID& device_uuid)
{
LL_INFOS() << "LLAudioEngine_FMODSTUDIO::setDevice with device_uuid=" << device_uuid << LL_ENDL;
@@ -113,7 +113,7 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid)
}
}
-FMOD_RESULT F_CALLBACK systemCallback(FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_TYPE type, void *commanddata1, void *commanddata2, void* userdata)
+FMOD_RESULT F_CALL systemCallback(FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_TYPE type, void *commanddata1, void *commanddata2, void* userdata)
{
FMOD::System* sys = (FMOD::System*)system;
LLAudioEngine_FMODSTUDIO* audio_engine = (LLAudioEngine_FMODSTUDIO*)userdata;
@@ -881,7 +881,7 @@ void LLAudioChannelFMODSTUDIO::set3DMode(bool use3d)
// not the main thread. May have implications for callees or audio
// engine shutdown.
-FMOD_RESULT F_CALLBACK windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels)
+FMOD_RESULT F_CALL windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels)
{
// inbuffer = fmod's original mixbuffer.
// outbuffer = the buffer passed from the previous DSP unit.
diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp
index b1648397e0..65c70c2ce1 100644
--- a/indra/llcharacter/llcharacter.cpp
+++ b/indra/llcharacter/llcharacter.cpp
@@ -77,7 +77,9 @@ LLCharacter::~LLCharacter()
//-----------------------------------------------------------------------------
// getJoint()
//-----------------------------------------------------------------------------
-LLJoint *LLCharacter::getJoint( const std::string &name )
+// Joint-lookup improvements
+//LLJoint *LLCharacter::getJoint( const std::string &name )
+LLJoint* LLCharacter::getJoint(std::string_view name)
{
LLJoint* joint = NULL;
@@ -94,14 +96,6 @@ LLJoint *LLCharacter::getJoint( const std::string &name )
return joint;
}
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// Default fallback is string.
-LLJoint *LLCharacter::getJoint( const JointKey &name )
-{
- return getJoint( name.mName );
-}
-//
-
//-----------------------------------------------------------------------------
// registerMotion()
//-----------------------------------------------------------------------------
diff --git a/indra/llcharacter/llcharacter.h b/indra/llcharacter/llcharacter.h
index 2f0cf1487e..53803bbb24 100644
--- a/indra/llcharacter/llcharacter.h
+++ b/indra/llcharacter/llcharacter.h
@@ -76,13 +76,9 @@ public:
// get the specified joint
// default implementation does recursive search,
// subclasses may optimize/cache results.
+ // Joint-lookup improvements
// virtual LLJoint *getJoint( const std::string &name );
-
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- virtual LLJoint *getJoint( const JointKey &name );
- //
-
- LLJoint *getJoint( const std::string &name );
+ virtual LLJoint* getJoint(std::string_view name);
// get the position of the character
virtual LLVector3 getCharacterPosition() = 0;
diff --git a/indra/llcharacter/lljoint.cpp b/indra/llcharacter/lljoint.cpp
index 91f33a73eb..7749e2748e 100644
--- a/indra/llcharacter/lljoint.cpp
+++ b/indra/llcharacter/lljoint.cpp
@@ -34,24 +34,6 @@
#include "llmath.h"
#include
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-#include
-
-std::unordered_map mpStringToKeys;
-
-JointKey JointKey::construct(const std::string& aName)
-{
- if (const auto itr = mpStringToKeys.find(aName); itr != mpStringToKeys.end())
- {
- return { aName, itr->second };
- }
-
- U32 size = static_cast(mpStringToKeys.size()) + 1;
- mpStringToKeys.try_emplace(aName, size);
- return { aName, size };
-}
-//
-
S32 LLJoint::sNumUpdates = 0;
S32 LLJoint::sNumTouches = 0;
@@ -260,7 +242,9 @@ LLJoint *LLJoint::getRoot()
//-----------------------------------------------------------------------------
// findJoint()
//-----------------------------------------------------------------------------
-LLJoint *LLJoint::findJoint( const std::string &name )
+// Joint-lookup improvements
+//LLJoint *LLJoint::findJoint( const std::string &name )
+LLJoint *LLJoint::findJoint(std::string_view name)
{
if (name == getName())
return this;
diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h
index 8118752bfc..f2ceed5f55 100644
--- a/indra/llcharacter/lljoint.h
+++ b/indra/llcharacter/lljoint.h
@@ -40,31 +40,6 @@
#include "xform.h"
#include "llmatrix4a.h"
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-struct JointKey
-{
- std::string mName;
- U32 mKey;
-
- static JointKey construct(const std::string& aName);
-};
-
-inline bool operator==(JointKey const &aLHS, JointKey const &aRHS)
-{
- return aLHS.mName == aRHS.mName;
-}
-
-inline bool operator!=(JointKey const &aLHS, JointKey const &aRHS)
-{
- return ! (aLHS == aRHS);
-}
-
-inline std::ostream& operator<<(std::ostream &aLHS, JointKey const &aRHS)
-{
- return aLHS << aRHS.mName << " (" << aRHS.mKey << ")";
-}
-//
-
constexpr S32 LL_CHARACTER_MAX_JOINTS_PER_MESH = 15;
// Need to set this to count of animate-able joints,
// currently = #bones + #collision_volumes + #attachments + 2,
@@ -247,7 +222,9 @@ public:
LLJoint *getRoot();
// search for child joints by name
- LLJoint *findJoint( const std::string &name );
+ // Joint-lookup improvements
+ //LLJoint *findJoint( const std::string &name );
+ LLJoint* findJoint(std::string_view name);
// add/remove children
void addChild( LLJoint *joint );
diff --git a/indra/llmath/llcamera.cpp b/indra/llmath/llcamera.cpp
index 3103ce90dd..b3f0530af5 100644
--- a/indra/llmath/llcamera.cpp
+++ b/indra/llmath/llcamera.cpp
@@ -35,7 +35,7 @@ LLCamera::LLCamera() :
LLCoordFrame(),
mView(DEFAULT_FIELD_OF_VIEW),
mAspect(DEFAULT_ASPECT_RATIO),
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//mInverseAspect(1.0f / DEFAULT_ASPECT_RATIO),
mDrawDistanceMultiplier(1.0f),
// [FIRE-35081]
@@ -67,14 +67,14 @@ LLCamera::LLCamera(F32 vertical_fov_rads, F32 aspect_ratio, S32 view_height_in_p
}
mAspect = llclamp(aspect_ratio, MIN_ASPECT_RATIO, MAX_ASPECT_RATIO);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Store the inverse of the aspect ratio, so we can remove it from texture calculations
//mInverseAspect = 1.0f / mAspect;
// [FIRE-35081]
mNearPlane = llclamp(near_plane, MIN_NEAR_PLANE, MAX_NEAR_PLANE);
if(far_plane < 0) far_plane = DEFAULT_FAR_PLANE;
mFarPlane = llclamp(far_plane, MIN_FAR_PLANE, MAX_FAR_PLANE);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Store the draw distance multiplier based upon how much bigger/smaller the far plan is then the default (64.0f)
mDrawDistanceMultiplier = mFarPlane / DEFAULT_FAR_PLANE;
mDrawDistanceMultiplier = mDrawDistanceMultiplier < 1.0f ? 1.0f : mDrawDistanceMultiplier;
@@ -141,7 +141,7 @@ void LLCamera::setViewHeightInPixels(S32 height)
void LLCamera::setAspect(F32 aspect_ratio)
{
mAspect = llclamp(aspect_ratio, MIN_ASPECT_RATIO, MAX_ASPECT_RATIO);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Store the inverse of the aspect ratio, so we can remove it from texture calculations
//mInverseAspect = 1.0f / mAspect;
// [FIRE-35081]
@@ -159,7 +159,7 @@ void LLCamera::setNear(F32 near_plane)
void LLCamera::setFar(F32 far_plane)
{
mFarPlane = llclamp(far_plane, MIN_FAR_PLANE, MAX_FAR_PLANE);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Store the draw distance multiplier based upon how much bigger/smaller the far plan is then the default (64.0f)
mDrawDistanceMultiplier = mFarPlane / DEFAULT_FAR_PLANE;
mDrawDistanceMultiplier = mDrawDistanceMultiplier < 1.0f ? 1.0f : mDrawDistanceMultiplier;
diff --git a/indra/llmath/llcamera.h b/indra/llmath/llcamera.h
index cfe2227620..ea6a303032 100644
--- a/indra/llmath/llcamera.h
+++ b/indra/llmath/llcamera.h
@@ -127,7 +127,7 @@ private:
F32 mView; // angle between top and bottom frustum planes in radians.
F32 mAspect; // width/height
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Store the inverse of the aspect ratio, for the texture's sizes
//F32 mInverseAspect; // height/width
F32 mDrawDistanceMultiplier; // mFarPlane / DEFAULT_FAR_PLANE
@@ -166,7 +166,7 @@ public:
F32 getView() const { return mView; } // vertical FOV in radians
S32 getViewHeightInPixels() const { return mViewHeightInPixels; }
F32 getAspect() const { return mAspect; } // width / height
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//F32 getInverseAspect() const { return mInverseAspect; } // width / height
F32 getDrawDistanceMultiplier() const { return mDrawDistanceMultiplier; } // mFarPlane / DEFAULT_FAR_PLANE (could also include near plane as well)
// [FIRE-35081]
diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp
index c3c3f81ea2..8d5d02aff0 100644
--- a/indra/llprimitive/lldaeloader.cpp
+++ b/indra/llprimitive/lldaeloader.cpp
@@ -1467,10 +1467,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
{
name = mJointMap[name];
}
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// model->mSkinInfo.mJointNames.push_back( name );
- model->mSkinInfo.mJointNames.push_back( JointKey::construct( name ) );
-//
+ model->mSkinInfo.mJointNames.push_back(name);
model->mSkinInfo.mJointNums.push_back(-1);
}
}
@@ -1488,10 +1485,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
{
name = mJointMap[name];
}
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// model->mSkinInfo.mJointNames.push_back( name );
- model->mSkinInfo.mJointNames.push_back( JointKey::construct( name ) );
-//
+ model->mSkinInfo.mJointNames.push_back(name);
model->mSkinInfo.mJointNums.push_back(-1);
}
}
@@ -1533,10 +1527,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
//but does not use the skeleton).
buildJointToNodeMappingFromScene( root );
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// critiqueRigForUploadApplicability( model->mSkinInfo.mJointNames );
- critiqueRigForUploadApplicability( toStringVector( model->mSkinInfo.mJointNames ) );
-//
+ critiqueRigForUploadApplicability( model->mSkinInfo.mJointNames );
if ( !missingSkeletonOrScene )
{
@@ -1589,11 +1580,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
//with the skeleton are not stored in the same order as they are in the exported joint buffer.
//This remaps the skeletal joints to be in the same order as the joints stored in the model.
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- // std::vector ::const_iterator jointIt = model->mSkinInfo.mJointNames.begin();
- std::vector< std::string > jointNames = toStringVector( model->mSkinInfo.mJointNames );
- std::vector ::const_iterator jointIt = jointNames.begin();
-//
+ std::vector ::const_iterator jointIt = model->mSkinInfo.mJointNames.begin();
const int jointCnt = static_cast(model->mSkinInfo.mJointNames.size());
for ( int i=0; i Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// mJointNames.push_back( skin[ "joint_names" ][ i ] );
- mJointNames.push_back( JointKey::construct( skin[ "joint_names" ][ i ] ) );
-// ND>
+ mJointNames.push_back( skin[ "joint_names" ][ i ] );
mJointNums.push_back(-1);
}
}
@@ -1589,10 +1586,7 @@ LLSD LLMeshSkinInfo::asLLSD(bool include_joints, bool lock_scale_if_joint_positi
for (U32 i = 0; i < mJointNames.size(); ++i)
{
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// ret[ "joint_names" ][ i ] = mJointNames[ i ];
- ret[ "joint_names" ][ i ] = mJointNames[ i ].mName;
-//
+ ret[ "joint_names" ][ i ] = mJointNames[ i ];
for (U32 j = 0; j < 4; j++)
{
@@ -1643,9 +1637,7 @@ void LLMeshSkinInfo::updateHash()
//mJointNames
for (auto& name : mJointNames)
{
- // Joint lookup speedup
- //hash.update(name);
- hash.update(name.mName);
+ hash.update(name);
}
//mJointNums
@@ -1671,10 +1663,7 @@ U32 LLMeshSkinInfo::sizeBytes() const
res += sizeof(std::vector) + sizeof(std::string) * static_cast(mJointNames.size());
for (U32 i = 0; i < mJointNames.size(); ++i)
{
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //res += static_cast(mJointNames[i].size()); // actual size, not capacity
- res += static_cast(mJointNames[i].mName.size()); // actual size, not capacity
- //
+ res += static_cast(mJointNames[i].size()); // actual size, not capacity
}
res += sizeof(std::vector) + sizeof(S32) * static_cast(mJointNums.size());
diff --git a/indra/llprimitive/llmodel.h b/indra/llprimitive/llmodel.h
index 816ca3d000..010b6d5d85 100644
--- a/indra/llprimitive/llmodel.h
+++ b/indra/llprimitive/llmodel.h
@@ -56,10 +56,7 @@ public:
U32 sizeBytes() const;
LLUUID mMeshID;
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// std::vector mJointNames;
- std::vector< JointKey > mJointNames;
-//
+ std::vector mJointNames;
mutable std::vector mJointNums;
typedef std::vector matrix_list_t;
matrix_list_t mInvBindMatrix;
diff --git a/indra/llprimitive/llmodelloader.cpp b/indra/llprimitive/llmodelloader.cpp
index d3fa1767a5..39b6c81be9 100644
--- a/indra/llprimitive/llmodelloader.cpp
+++ b/indra/llprimitive/llmodelloader.cpp
@@ -257,10 +257,7 @@ bool LLModelLoader::loadFromSLM(const std::string& filename)
if (!loaded_model->mSkinInfo.mJointNames.empty())
{
//check to see if rig is valid
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// critiqueRigForUploadApplicability( loaded_model->mSkinInfo.mJointNames );
- critiqueRigForUploadApplicability( toStringVector( loaded_model->mSkinInfo.mJointNames ) );
-//
+ critiqueRigForUploadApplicability( loaded_model->mSkinInfo.mJointNames );
}
else if (mCacheOnlyHitIfRigged)
{
diff --git a/indra/llprimitive/llmodelloader.h b/indra/llprimitive/llmodelloader.h
index d04585bd2c..f5783515fa 100644
--- a/indra/llprimitive/llmodelloader.h
+++ b/indra/llprimitive/llmodelloader.h
@@ -196,18 +196,6 @@ public:
void clearLog() { mWarningsArray.clear(); }
protected:
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- std::vector< std::string > toStringVector( std::vector< JointKey > const &aIn ) const
- {
- std::vector< std::string > out;
-
- for( std::vector< JointKey >::const_iterator itr = aIn.begin(); itr != aIn.end(); ++itr )
- out.push_back( itr->mName );
-
- return out;
- }
-//
-
LLModelLoader::load_callback_t mLoadCallback;
LLModelLoader::joint_lookup_func_t mJointLookupFunc;
LLModelLoader::texture_load_func_t mTextureLoadFunc;
diff --git a/indra/llrender/llgltexture.cpp b/indra/llrender/llgltexture.cpp
index 5f645b9d76..377e453ba4 100644
--- a/indra/llrender/llgltexture.cpp
+++ b/indra/llrender/llgltexture.cpp
@@ -104,7 +104,7 @@ void LLGLTexture::setBoostLevel(S32 level)
if(mBoostLevel != LLGLTexture::BOOST_NONE
&& mBoostLevel != LLGLTexture::BOOST_ICON
&& mBoostLevel != LLGLTexture::BOOST_THUMBNAIL
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Add the new grass, light and tree boosts
&& mBoostLevel != LLGLTexture::BOOST_GRASS
&& mBoostLevel != LLGLTexture::BOOST_LIGHT
diff --git a/indra/llrender/llgltexture.h b/indra/llrender/llgltexture.h
index 65911e92a7..4336039c1c 100644
--- a/indra/llrender/llgltexture.h
+++ b/indra/llrender/llgltexture.h
@@ -53,7 +53,7 @@ public:
BOOST_AVATAR_BAKED ,
BOOST_TERRAIN , // Needed for minimap generation for now. Lower than BOOST_HIGH so the texture stats don't get forced, i.e. texture stats are manually managed by minimap/terrain instead.
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
BOOST_GRASS , // Grass has a alternative calculation for virtual and face sizes.
BOOST_TREE , // Tree has a alternative calculation for virtual and face sizes.
BOOST_LIGHT , // Light textures has a alternative calculation for virtual and face sizes.
diff --git a/indra/llui/llconsole.cpp b/indra/llui/llconsole.cpp
index d810d365bc..0842c90409 100644
--- a/indra/llui/llconsole.cpp
+++ b/indra/llui/llconsole.cpp
@@ -565,7 +565,7 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, L
{
if ( !force_resize )
{
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// if ( mMaxWidth >= 0.0f
//&& mMaxWidth < screen_width)
// If viewer window was made as small as possible with the console enabled, it would cause an assert error
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 694007adb6..b8d2232264 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -1259,7 +1259,7 @@ void LLUrlEntryParcel::processParcelInfo(const LLParcelData& parcel_data)
//
LLUrlEntryPlace::LLUrlEntryPlace()
{
- mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+(?:/?(-?\\d+/-?\\d+/-?\\d+|-?\\d+/-?\\d+)/?)?", //
+ mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/[^/]+/?)|((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+/?(\\d+/\\d+/-?\\d+|\\d+/-?\\d+)/?)$", //
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_slurl.xml";
mTooltip = LLTrans::getString("TooltipSLURL");
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 834bf4595a..949c72d8b3 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -26286,5 +26286,16 @@ Change of this parameter will affect the layout of buttons in notification toast
Value
0
+ FSSnapshotLocalNamesWithTimestamps
+
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index 442fe4ce75..c2aeba6334 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 1024
RenderHeroProbeDistance 1 16
-RenderHeroProbeUpdateRate 1 1
+RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
@@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 2048
RenderHeroProbeDistance 1 16
-RenderHeroProbeUpdateRate 1 1
+RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index b1c2b3cf55..ecb1036c0b 100644
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
@@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 1024
RenderHeroProbeDistance 1 16
-RenderHeroProbeUpdateRate 1 1
+RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
@@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 2048
RenderHeroProbeDistance 1 16
-RenderHeroProbeUpdateRate 1 1
+RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index 1d8ebdf6fb..05bd89e3f6 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 2
RenderMirrors 1 0
RenderHeroProbeResolution 1 512
RenderHeroProbeDistance 1 16
-RenderHeroProbeUpdateRate 1 1
+RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
@@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 1024
RenderHeroProbeDistance 1 16
-RenderHeroProbeUpdateRate 1 1
+RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
diff --git a/indra/newview/fsfloaterposer.cpp b/indra/newview/fsfloaterposer.cpp
index 5a5f04c7e6..f3d01fd6a9 100644
--- a/indra/newview/fsfloaterposer.cpp
+++ b/indra/newview/fsfloaterposer.cpp
@@ -1645,13 +1645,14 @@ std::vector FSFloaterPoser::getUiSelectedPoserJo
return joints;
}
-void FSFloaterPoser::updateManipWithFirstSelectedJoint(std::vector joints)
+void FSFloaterPoser::updateManipWithFirstSelectedJoint(std::vector joints) const
{
- if (!gAgentAvatarp || gAgentAvatarp.isNull())
+ auto avatarp = getUiSelectedAvatar();
+ if (!avatarp)
return;
if (joints.size() >= 1)
- FSToolCompPose::getInstance()->setJoint(gAgentAvatarp->getJoint(JointKey::construct(joints[0]->jointName())));
+ FSToolCompPose::getInstance()->setJoint(avatarp->getJoint(joints[0]->jointName()));
else
FSToolCompPose::getInstance()->setJoint(nullptr);
}
diff --git a/indra/newview/fsfloaterposer.h b/indra/newview/fsfloaterposer.h
index 622577b0de..14c7d90615 100644
--- a/indra/newview/fsfloaterposer.h
+++ b/indra/newview/fsfloaterposer.h
@@ -136,7 +136,7 @@ public:
/// Updates the visual with the first selected joint from the supplied collection, if any.
///
/// The collection of selected joints.
- static void updateManipWithFirstSelectedJoint(std::vector joints);
+ void updateManipWithFirstSelectedJoint(std::vector joints) const;
///
/// Gets a detectable avatar by its UUID.
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index b92ee0becd..83782071b8 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -5989,7 +5989,7 @@ void LLAppViewer::idle()
// objects and camera should be in sync, do LOD calculations now
{
LL_RECORD_BLOCK_TIME(FTM_LOD_UPDATE);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Added a max time limit to the object list updates as these updates do affect the texture system
//gObjectList.updateApparentAngles(gAgent);
F32 max_update_apparent_angles = 0.025f * gFrameIntervalSeconds.value(); // 20 ms/second decode time
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index 5542a16b2e..961c103c22 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -516,7 +516,7 @@ void LLAvatarTracker::idleNotifyObservers()
void LLAvatarTracker::notifyObservers()
{
- if (mIsNotifyObservers || (LLStartUp::getStartupState() <= STATE_INVENTORY_CALLBACKS))
+ if (mIsNotifyObservers || (LLStartUp::getStartupState() <= STATE_INVENTORY_SEND2))
{
// Don't allow multiple calls.
// new masks and ids will be processed later from idle.
@@ -835,7 +835,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
mModifyMask |= LLFriendObserver::ONLINE;
instance().notifyObservers();
// Skip if we had received the friends list before the inventory callbacks were properly initialized
- if (LLStartUp::getStartupState() > STATE_INVENTORY_CALLBACKS)
+ if (LLStartUp::getStartupState() > STATE_INVENTORY_SEND2)
{
gInventory.notifyObservers();
}
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index ca997ff7aa..ef9b585423 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -75,7 +75,7 @@ static LLStaticHashedString sColorIn("color_in");
bool LLFace::sSafeRenderSelect = true; // false
-// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+// [FIRE-35081] Blurry prims not changing with graphics settings
// Moved to allow more code to access these values
const S8 FACE_IMPORTANCE_LEVEL = 4 ;
const F32 FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE[FACE_IMPORTANCE_LEVEL][2] = //{distance, importance_weight}
@@ -180,7 +180,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp)
mFaceColor = LLColor4(1,0,0,1);
mImportanceToCamera = 1.f ;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
mCloseToCamera = 1.0f;
// [FIRE-35081]
mBoundingSphereRadius = 0.0f ;
@@ -1683,7 +1683,7 @@ bool LLFace::getGeometryVolume(const LLVolume& volume,
xforms = XFORM_NONE;
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
//if (getVirtualSize() >= MIN_TEX_ANIM_SIZE) // || isState(LLFace::RIGGED))
// [FIRE-35081]
@@ -2287,7 +2287,7 @@ F32 LLFace::getTextureVirtualSize()
F32 radius;
F32 cos_angle_to_view_dir;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//bool in_frustum = calcPixelArea(cos_angle_to_view_dir, radius);
// The mInFrustum value is now updated in calcPixelArea, so no longer need to accss the value
calcPixelArea(cos_angle_to_view_dir, radius);
@@ -2325,7 +2325,7 @@ F32 LLFace::getTextureVirtualSize()
}
face_area = LLFace::adjustPixelArea(mImportanceToCamera, face_area);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Remove the face area being affected by being partial off screen as close to screen textures can then become scaled down along with
// animated textures.
/*
@@ -2423,7 +2423,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
// no rigged extents, zero out bounding box and skip update
mRiggedExtents[0] = mRiggedExtents[1] = LLVector4a(0.f, 0.f, 0.f);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Set the face to be out of the frustum as the object is invalid
mInFrustum = false;
// [FIRE-35081]
@@ -2473,7 +2473,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
LLVector4a x_axis;
x_axis.load3(camera->getXAxis().mV);
cos_angle_to_view_dir = lookAt.dot3(x_axis).getF32();
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Added close to camera (based upon the mImportanceToCamera) where any object that is within the FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE (16.1f)
// gets an extra texture scaling up.
// Use positive distance to the camera and apply the multiplier based upon the texture scaled for increase in the default draw distance
@@ -2488,7 +2488,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
if(!camera->AABBInFrustum(center, size))
{
mImportanceToCamera = 0.f ;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Added real in frustum check value. Previous was only false for media textures off screen and invalid rig objects
mInFrustum = false;
// [FIRE-35081]
@@ -2514,7 +2514,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
{
cos_angle_to_view_dir = 1.0f ;
mImportanceToCamera = 1.0f ;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
mInFrustum = true; // If the face is important to the camera, it is in the frustum
mCloseToCamera = 1.0f;
// [FIRE-35081]
@@ -2561,7 +2561,7 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_FACE;
F32 importance = 0.f ;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Move camera out to use for the inital check for the distance to the face importance with the multiplier
LLViewerCamera* camera = LLViewerCamera::getInstance();
@@ -2581,7 +2581,7 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist)
}
S32 i = 0 ;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Added draw distance multiplier to the distance
for(i = 0; i < FACE_IMPORTANCE_LEVEL && dist > FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE[i][0] * camera->getDrawDistanceMultiplier(); ++i);
// [FIRE-35081]
diff --git a/indra/newview/llface.h b/indra/newview/llface.h
index a3bd935760..16cd4d6eb1 100644
--- a/indra/newview/llface.h
+++ b/indra/newview/llface.h
@@ -52,7 +52,7 @@ class LLDrawInfo;
class LLMeshSkinInfo;
const F32 MIN_ALPHA_SIZE = 1024.f;
-// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+// [FIRE-35081] Blurry prims not changing with graphics settings
//const F32 MIN_TEX_ANIM_SIZE = 512.f;
// Change the min size to
const F32 MIN_TEX_ANIM_SIZE = 10.f;
diff --git a/indra/newview/llfloaterimnearbychathandler.cpp b/indra/newview/llfloaterimnearbychathandler.cpp
index 75b9c0e052..4dc711fbe6 100644
--- a/indra/newview/llfloaterimnearbychathandler.cpp
+++ b/indra/newview/llfloaterimnearbychathandler.cpp
@@ -96,6 +96,13 @@ public:
{
ctrl->getSignal()->connect(boost::bind(&LLFloaterIMNearbyChatScreenChannel::updateToastFadingTime, this));
}
+ // [FIRE-35039 > FIRE-35294] Add flag to show/hide the on-screen console
+ ctrl = gSavedSettings.getControl("FSShowOnscreenConsole").get();
+ if (ctrl)
+ {
+ ctrl->getSignal()->connect(boost::bind(&LLFloaterIMNearbyChatScreenChannel::removeToastsFromChannel, this));
+ }
+ // [FIRE-35039 > FIRE-35294] Add flag to show/hide the on-screen console
}
void addChat (LLSD& chat);
@@ -694,6 +701,14 @@ void LLFloaterIMNearbyChatHandler::processChat(const LLChat& chat_msg,
}
//
+ // [FIRE-35039 > FIRE-35294] Add flag to show/hide the on-screen console
+ static LLUICachedControl showOnscreenConsole("FSShowOnscreenConsole");
+ if (!showOnscreenConsole)
+ {
+ return;
+ }
+ // [FIRE-35039 > FIRE-35294]
+
static LLCachedControl useChatBubbles(gSavedSettings, "UseChatBubbles");
static LLCachedControl fsBubblesHideConsoleAndToasts(gSavedSettings, "FSBubblesHideConsoleAndToasts");
// [FS communication UI]
diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp
index 8e301cb76c..0fcd96dd8b 100644
--- a/indra/newview/llfloatermodelpreview.cpp
+++ b/indra/newview/llfloatermodelpreview.cpp
@@ -1625,14 +1625,9 @@ void LLFloaterModelPreview::updateAvatarTab(bool highlight_overrides)
for (U32 j = 0; j < joint_count; ++j)
{
const LLVector3& joint_pos = LLVector3(skin->mAlternateBindMatrix[j].getTranslation());
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
+ LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
- //LLJoint* pJoint = LLModelPreview::lookupJointByName(skin->mJointNames[j], mModelPreview);
- LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j].mName];
-
- LLJoint* pJoint = LLModelPreview::lookupJointByName(skin->mJointNames[j].mName, mModelPreview);
- //
+ LLJoint* pJoint = LLModelPreview::lookupJointByName(skin->mJointNames[j], mModelPreview);
if (pJoint)
{
// see how voavatar uses aboveJointPosThreshold
@@ -1661,9 +1656,7 @@ void LLFloaterModelPreview::updateAvatarTab(bool highlight_overrides)
{
for (U32 j = 0; j < joint_count; ++j)
{
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
- LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j].mName];
+ LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
data.mModelsNoOverrides.insert(model->getName());
}
}
diff --git a/indra/newview/llfloaternewfeaturenotification.cpp b/indra/newview/llfloaternewfeaturenotification.cpp
index 369727ff1e..9ea51451ad 100644
--- a/indra/newview/llfloaternewfeaturenotification.cpp
+++ b/indra/newview/llfloaternewfeaturenotification.cpp
@@ -45,10 +45,27 @@ bool LLFloaterNewFeatureNotification::postBuild()
const std::string title_txt = "title_txt";
const std::string dsc_txt = "description_txt";
- std::string feature = "_" + getKey().asString();
-
- getChild(title_txt)->setValue(getString(title_txt + feature));
- getChild(dsc_txt)->setValue(getString(dsc_txt + feature));
+ // FIRE-35393 stop crashing just cos whirly does something daft and blames Atlas for it
+ std::string feature = getKey().asString();
+ if(feature.empty() )
+ {
+ LL_WARNS("FloaterNewFeature") << "Unexpected failure - No feature name NewFeatureNotification." << LL_ENDL;
+ return false;
+ }
+ if (!hasString( title_txt + "_" + feature ) )
+ {
+ LL_WARNS("FloaterNewFeature") << "No string for " << title_txt + "_" + feature << LL_ENDL;
+ return false;
+ }
+ if (!hasString( dsc_txt + "_" + feature ) )
+ {
+ LL_WARNS("FloaterNewFeature") << "No string for " << dsc_txt + "_" + feature << LL_ENDL;
+ return false;
+ }
+ //
+
+ getChild(title_txt)->setValue(getString(title_txt + "_" + feature));
+ getChild(dsc_txt)->setValue(getString(dsc_txt + "_" + feature));
if (getKey().asString() == "gltf")
{
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index bae3b9fb18..c4269ae352 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -1085,9 +1085,9 @@ void LLFloaterWorldMap::updateLocation()
// mSLURL = LLSLURL(sim_name, pos_global);
// [FIRE-35268] OpenSim support for when on other grids
if (LLGridManager::getInstance()->isInSecondLife())
- mSLURL = LLSLURL(sim_info->getName(), gAgent.getPositionAgent());
+ mSLURL = LLSLURL(sim_info->getName(), sim_info->getGlobalOrigin(), pos_global);
else
- mSLURL = LLSLURL(LFSimFeatureHandler::instance().hyperGridURL(), sim_info->getName(), gAgent.getPositionAgent());
+ mSLURL = LLSLURL(LFSimFeatureHandler::instance().hyperGridURL(), sim_info->getName(), sim_info->getGlobalOrigin(), pos_global);
//
}
//
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 4336dac460..428da07414 100644
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -1902,42 +1902,36 @@ bool LLMeshRepoThread::fetchMeshPhysicsShape(const LLUUID& mesh_id)
//static
void LLMeshRepoThread::incActiveLODRequests()
{
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
++LLMeshRepoThread::sActiveLODRequests;
}
//static
void LLMeshRepoThread::decActiveLODRequests()
{
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
--LLMeshRepoThread::sActiveLODRequests;
}
//static
void LLMeshRepoThread::incActiveHeaderRequests()
{
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
++LLMeshRepoThread::sActiveHeaderRequests;
}
//static
void LLMeshRepoThread::decActiveHeaderRequests()
{
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
--LLMeshRepoThread::sActiveHeaderRequests;
}
//static
void LLMeshRepoThread::incActiveSkinRequests()
{
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
++LLMeshRepoThread::sActiveSkinRequests;
}
//static
void LLMeshRepoThread::decActiveSkinRequests()
{
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
--LLMeshRepoThread::sActiveSkinRequests;
}
@@ -4659,13 +4653,20 @@ void LLMeshRepository::notifyLoadedMeshes()
{
LLMutexTrylock lock1(mMeshMutex);
LLMutexTrylock lock2(mThread->mMutex);
+ LLMutexTrylock lock3(mThread->mHeaderMutex);
+ LLMutexTrylock lock4(mThread->mPendingMutex);
static U32 hold_offs(0);
- if (! lock1.isLocked() || ! lock2.isLocked())
+ if (! lock1.isLocked() || ! lock2.isLocked() || ! lock3.isLocked() || ! lock4.isLocked())
{
// If we can't get the locks, skip and pick this up later.
+ // Eventually thread queue will be free enough
++hold_offs;
sMaxLockHoldoffs = llmax(sMaxLockHoldoffs, hold_offs);
+ if (hold_offs > 4)
+ {
+ LL_WARNS_ONCE() << "High mesh thread holdoff" << LL_ENDL;
+ }
return;
}
hold_offs = 0;
@@ -4726,6 +4727,7 @@ void LLMeshRepository::notifyLoadedMeshes()
if (mPendingRequests.size() > push_count)
{
+ LL_PROFILE_ZONE_NAMED("Mesh score_map");
// More requests than the high-water limit allows so
// sort and forward the most important.
@@ -4776,8 +4778,6 @@ void LLMeshRepository::notifyLoadedMeshes()
std::partial_sort(mPendingRequests.begin(), mPendingRequests.begin() + push_count,
mPendingRequests.end(), PendingRequestBase::CompareScoreGreater());
}
- LLMutexTrylock lock3(mThread->mHeaderMutex);
- LLMutexTrylock lock4(mThread->mPendingMutex);
while (!mPendingRequests.empty() && push_count > 0)
{
std::unique_ptr& req_p = mPendingRequests.front();
diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp
index 7f43ddab7c..48bbcf4511 100644
--- a/indra/newview/llmodelpreview.cpp
+++ b/indra/newview/llmodelpreview.cpp
@@ -4183,10 +4183,7 @@ LLJoint* LLModelPreview::lookupJointByName(const std::string& str, void* opaque)
LLModelPreview* pPreview = static_cast< LLModelPreview* >(opaque);
if (pPreview)
{
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// return pPreview->getPreviewAvatar()->getJoint(str);
- return pPreview->getPreviewAvatar()->getJoint( JointKey::construct( str ) );
-//
+ return pPreview->getPreviewAvatar()->getJoint(str);
}
return NULL;
}
diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp
index 693915e813..cfbfa0ac27 100644
--- a/indra/newview/llmorphview.cpp
+++ b/indra/newview/llmorphview.cpp
@@ -131,10 +131,7 @@ void LLMorphView::updateCamera()
{
if (!mCameraTargetJoint)
{
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// setCameraTargetJoint( gAgentAvatarp->getJoint( "mHead" ) );
- setCameraTargetJoint( gAgentAvatarp->getJoint( JointKey::construct( "mHead" ) ) );
-//
+ setCameraTargetJoint( gAgentAvatarp->getJoint( "mHead" ) );
}
if (!isAgentAvatarValid()) return;
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index a7725d8899..07a168612a 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -1316,15 +1316,11 @@ void LLPanelEditWearable::showWearable(LLViewerWearable* wearable, bool show, bo
value_map_t sorted_params;
getSortedParams(sorted_params, edit_group);
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //LLJoint* jointp = gAgentAvatarp->getJoint( subpart_entry->mTargetJoint );
- LLJoint* jointp = gAgentAvatarp->getJoint( JointKey::construct( subpart_entry->mTargetJoint ) );
+ LLJoint* jointp = gAgentAvatarp->getJoint( subpart_entry->mTargetJoint );
if (!jointp)
{
- //jointp = gAgentAvatarp->getJoint( "mHead" );
- jointp = gAgentAvatarp->getJoint( JointKey::construct( "mHead" ) );
+ jointp = gAgentAvatarp->getJoint( "mHead" );
}
- //
buildParamList(panel_list, sorted_params, tab, jointp);
@@ -1440,11 +1436,7 @@ void LLPanelEditWearable::changeCamera(U8 subpart)
}
// Update the camera
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( subpart_entry->mTargetJoint ) );
- gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( JointKey::construct( subpart_entry->mTargetJoint ) ) );
-// ND>
-
+ gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( subpart_entry->mTargetJoint ) );
gMorphView->setCameraTargetOffset( subpart_entry->mTargetOffset );
gMorphView->setCameraOffset( subpart_entry->mCameraOffset );
if (gSavedSettings.getBOOL("AppearanceCameraMovement"))
diff --git a/indra/newview/llskinningutil.cpp b/indra/newview/llskinningutil.cpp
index d9f16fe34f..59f8e866ad 100644
--- a/indra/newview/llskinningutil.cpp
+++ b/indra/newview/llskinningutil.cpp
@@ -54,10 +54,7 @@ void dump_avatar_and_skin_state(const std::string& reason, LLVOAvatar *avatar, c
{
LL_WARNS("Avatar") << "skin joint idx " << j << " name [" << skin->mJointNames[j]
<< "] num " << skin->mJointNums[j] << LL_ENDL;
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //const std::string& name = skin->mJointNames[j];
- const std::string& name = skin->mJointNames[j].mName;
- //
+ const std::string& name = skin->mJointNames[j];
S32 joint_num = skin->mJointNums[j];
LLJoint *name_joint = avatar->getJoint(name);
@@ -119,14 +116,9 @@ void LLSkinningUtil::scrubInvalidJoints(LLVOAvatar *avatar, LLMeshSkinInfo* skin
// needed for handling of any legacy bad data.
if (!avatar->getJoint(skin->mJointNames[j]))
{
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //LL_DEBUGS("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint " << skin->mJointNames[j] << LL_ENDL;
- //LL_WARNS_ONCE("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint" << skin->mJointNames[j] << LL_ENDL;
- //skin->mJointNames[j] = "mPelvis";
- LL_DEBUGS("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint " << skin->mJointNames[j].mName << LL_ENDL;
- LL_WARNS_ONCE("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint" << skin->mJointNames[j].mName << LL_ENDL;
- skin->mJointNames[j] = JointKey::construct("mPelvis");
- //
+ LL_DEBUGS("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint " << skin->mJointNames[j] << LL_ENDL;
+ LL_WARNS_ONCE("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint" << skin->mJointNames[j] << LL_ENDL;
+ skin->mJointNames[j] = "mPelvis";
skin->mJointNumsInitialized = false; // force update after names change.
}
}
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 45af5f228d..e170d8fa19 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -835,7 +835,7 @@ void LLViewerObjectList::setAllObjectDefaultTextures(U32 nChannel, bool fShowDef
}
}
// [/SL:KB]
-// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+// [FIRE-35081] Blurry prims not changing with graphics settings
//void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
// Added time limit on processing of objects as they affect the texture system (They also calcuate mMaxVirtualSize and mPixelArea)
void LLViewerObjectList::updateApparentAngles(LLAgent &agent, F32 max_time)
@@ -845,7 +845,7 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent, F32 max_time)
LLViewerObject *objectp;
S32 num_updates, max_value;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Remove the old code as it worked on fixed number of updates (Total # of Object / 128) per frame
// and some objects had nothing to do while others were avatars or volumes and could t
/*
diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h
index fe13d3a4ae..c4a8026f93 100644
--- a/indra/newview/llviewerobjectlist.h
+++ b/indra/newview/llviewerobjectlist.h
@@ -89,7 +89,7 @@ public:
void processObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type, bool compressed=false);
void processCompressedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type);
void processCachedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//void updateApparentAngles(LLAgent &agent);
// Added time limit on processing of objects as they affect the texture system
void updateApparentAngles(LLAgent &agent, F32 max_time);
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 0a460152d5..0a8029b26d 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -779,7 +779,7 @@ void LLViewerTexture::setBoostLevel(S32 level)
mBoostLevel = level;
if(mBoostLevel != LLViewerTexture::BOOST_NONE &&
mBoostLevel != LLViewerTexture::BOOST_SELECTED &&
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Added the new boost levels
mBoostLevel != LLViewerTexture::BOOST_GRASS &&
mBoostLevel != LLViewerTexture::BOOST_LIGHT &&
@@ -796,7 +796,7 @@ void LLViewerTexture::setBoostLevel(S32 level)
if (mBoostLevel >= LLViewerTexture::BOOST_HIGH)
{
mMaxVirtualSize = 2048.f * 2048.f;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Add additional for the important to camera and in frustum
static LLCachedControl texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f);
mMaxVirtualSize = mMaxVirtualSize + (mMaxVirtualSize * 1.0f * texture_camera_boost);
@@ -1208,7 +1208,7 @@ void LLViewerFetchedTexture::init(bool firstinit)
mKeptSavedRawImageTime = 0.f;
mLastCallBackActiveTime = 0.f;
mForceCallbackFetch = false;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
mCloseToCamera = 1.0f; // Store if the camera is close to the camera (0.0f or 1.0f)
// [FIRE-35081]
@@ -3086,13 +3086,13 @@ void LLViewerLODTexture::processTextureStats()
else if (mBoostLevel < LLGLTexture::BOOST_HIGH && mMaxVirtualSize <= 10.f)
{
// If the image has not been significantly visible in a while, we don't want it
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL + 1));
// Off screen textures at 6 would not downscale.
mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL));
// [FIRE-35081]
mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S32)mLoadedCallbackDesiredDiscardLevel);
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Add scale down here as the textures off screen were not getting scaled down properly
S32 current_discard = getDiscardLevel();
if (mBoostLevel < LLGLTexture::BOOST_AVATAR_BAKED)
@@ -3111,7 +3111,7 @@ void LLViewerLODTexture::processTextureStats()
}
else
{
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
/*
//static const F64 log_2 = log(2.0);
static const F64 log_4 = log(4.0);
@@ -3456,7 +3456,7 @@ void LLViewerMediaTexture::initVirtualSize()
{
return;
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Add camera importance to the media textures as well
static LLCachedControl texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f);
F32 vsize = 0.0f;
@@ -3464,7 +3464,7 @@ void LLViewerMediaTexture::initVirtualSize()
findFaces();
for(std::list< LLFace* >::iterator iter = mMediaFaceList.begin(); iter!= mMediaFaceList.end(); ++iter)
{
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//addTextureStats((*iter)->getVirtualSize());
// Add camera importance to the media textures as well
vsize = (*iter)->getVirtualSize();
@@ -3532,7 +3532,7 @@ void LLViewerMediaTexture::addFace(U32 ch, LLFace* facep)
}
// [/SL:KB]
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Try to set the boost level to MEDIA to try to force the media to high quality
tex->setBoostLevel(LLViewerTexture::MEDIA);
// [FIRE-35081]
@@ -3777,7 +3777,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
{
addTextureStats(0.f, false);//reset
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
static LLCachedControl texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f);
F32 vsize = 0.0f;
// [FIRE-35081]
@@ -3791,7 +3791,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
LLFace* facep = mFaceList[ch][i];
if(facep->getDrawable()->isRecentlyVisible())
{
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//addTextureStats(facep->getVirtualSize());
// Add the importance to camera and close to camera to the media texture
vsize = facep->getVirtualSize();
@@ -3815,7 +3815,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
LLFace* facep = *iter;
if(facep->getDrawable()->isRecentlyVisible())
{
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//addTextureStats(facep->getVirtualSize());
// Add the importance to camera and close to camera to the media texture
vsize = facep->getVirtualSize();
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 13b6b6b883..812779c6d4 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -437,7 +437,7 @@ public:
void setInFastCacheList(bool in_list) { mInFastCacheList = in_list; }
bool isInFastCacheList() { return mInFastCacheList; }
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
F32 getCloseToCamera() const {return mCloseToCamera ;} // Get close to camera value
void setCloseToCamera(F32 value) {mCloseToCamera = value ;} // Set the close to camera value (0.0f or 1.0f)
// [FIRE-35081]
@@ -542,7 +542,7 @@ protected:
bool mForSculpt ; //a flag if the texture is used as sculpt data.
bool mIsFetched ; //is loaded from remote or from cache, not generated locally.
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
F32 mCloseToCamera; // Float (0.0f or 1.0f) to indicate if the texture is close to the camera
// [FIRE-35081]
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index dce5edaac5..dd0c77b482 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -372,7 +372,7 @@ void LLViewerTextureList::shutdown()
mInitialized = false ; //prevent loading textures again.
}
-// [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+// [FIRE-35081] Blurry prims not changing with graphics settings
// static
// Allows the menu to call the dump method of the texture list
void LLViewerTextureList::dumpTexturelist()
@@ -385,12 +385,13 @@ void LLViewerTextureList::dump()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
LL_INFOS() << "LLViewerTextureList::dump()" << LL_ENDL;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
S32 texture_count = 0;
S32 textures_close_to_camera = 0;
std::array image_counts{0}; // Double the size for higher discards from textures < 1024 (2048 can make a 7 and 4096 could make an 8)
std::array size_counts{0}; // Track the 12 possible sizes (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048)
std::array discard_counts{0}; // Also need to an 1 additional as -1 is a valid discard level (not loaded by reported as a 1x1 texture)
+ std::array fullsize_discard_counts{0}; // Also need to an 1 additional as -1 is a valid discard level (not loaded by reported as a 1x1 texture)
std::array boost_counts{0}; // Track the # of textures at boost levels by 12 possible sizes
// Don't Init the buffers with 0's like it's the the 1980's...
@@ -398,36 +399,30 @@ void LLViewerTextureList::dump()
for (image_list_t::iterator it = mImageList.begin(); it != mImageList.end(); ++it)
{
LLViewerFetchedTexture* image = *it;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
- std::string face_counts = "";
- std::string volume_counts = "";
- for (S32 index = 0; index < LLRender::NUM_TEXTURE_CHANNELS; index++)
- {
- face_counts += std::to_string(image->getNumFaces(index)) + " ";
- }
-
- for (S32 index = 0; index < LLRender::NUM_VOLUME_TEXTURE_CHANNELS; index++)
- {
- volume_counts += std::to_string(image->getNumVolumes(index)) + " ";
- }
- // [FIRE-35081]
-
LL_INFOS() << "priority " << image->getMaxVirtualSize()
<< " boost " << image->getBoostLevel()
<< " size " << image->getWidth() << "x" << image->getHeight()
<< " discard " << image->getDiscardLevel()
<< " desired " << image->getDesiredDiscardLevel()
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
<< " close to camera " << (image->getCloseToCamera() > 0.0f ? "Y" : "N") // Display the close to camera flag
<< " FFType " << fttype_to_string(image->getFTType()) // Display the FFType of the camera
<< " Type " << (S32)image->getType() // Display the type of the image (LOCAL_TEXTURE = 0, MEDIA_TEXTURE = 1, DYNAMIC_TEXTURE = 2, FETCHED_TEXTURE = 3,LOD_TEXTURE = 4)
<< " Sculpted " << (image->forSculpt() ? "Y" : "N")
- << " # of Faces " << face_counts
- << " # of Volumes " << volume_counts
+ << " # of Faces ";
+ for (S32 index = 0; index < LLRender::NUM_TEXTURE_CHANNELS; index++)
+ {
+ LL_CONT << image->getNumFaces(index) << " ";
+ }
+ LL_CONT << " # of Volumes ";
+ for (S32 index = 0; index < LLRender::NUM_VOLUME_TEXTURE_CHANNELS; index++)
+ {
+ LL_CONT << image->getNumVolumes(index) << " ";
+ }
// [FIRE-35081]
- << " http://asset.siva.lindenlab.com/" << image->getID() << ".texture"
+ LL_CONT << " http://asset.siva.lindenlab.com/" << image->getID() << ".texture"
<< LL_ENDL;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
image_counts[(image->getDiscardLevel() + 1)] += 1; // Need to add +1 to make up for -1 being a possible value
S32 x_index = (S32)log2(image->getWidth()); // Convert the width into a 0 based index by taking the Log2 of the size to get the exponent of the size. (1 = 2^0, 2 = 2^1, 4 = 2^2...)
S32 y_index = (S32)log2(image->getHeight()); // Convert the height into a 0 based index by taking the Log2 of the size to get the exponent of the size. (1 = 2^0, 2 = 2^1, 4 = 2^2...)
@@ -436,11 +431,15 @@ void LLViewerTextureList::dump()
S32 max_dimension = (y_index > x_index ? y_index : x_index);
discard_counts[(image->getDiscardLevel() + 1) + max_dimension * (MAX_DISCARD_LEVEL * 2 + 2)] += 1;
boost_counts[image->getBoostLevel() + max_dimension * (LLViewerTexture::BOOST_MAX_LEVEL)] += 1;
+ S32 full_x_index = (S32)log2(image->getFullWidth());
+ S32 full_y_index = (S32)log2(image->getFullHeight());
+ S32 full_max_dimension = (full_y_index > full_x_index ? full_y_index : full_x_index);
+ fullsize_discard_counts[(image->getDiscardLevel() + 1) + full_max_dimension * (MAX_DISCARD_LEVEL * 2 + 2)] += 1;
texture_count++;
textures_close_to_camera += S32(image->getCloseToCamera());
// [FIRE-35081]
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Add overal texture totals
LL_INFOS() << "Texture Stats: Textures in Close to Camera " << textures_close_to_camera << " of " << texture_count << " : " << LL_ENDL;
@@ -450,150 +449,108 @@ void LLViewerTextureList::dump()
LL_INFOS() << " Discard Level: " << (index - 1) << " Number of Textures: " << image_counts[index] << LL_ENDL;
}
- // Create a header that for the Sizes
- std::string header = "Size ";
- for (S32 x = 0; x < 12; x++)
- {
- std::string newValue = std::to_string((S32)pow(2, x));
- header += newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- header += " ";
- }
- }
-
// Create a line to break up the header from the content of the table
- std::string header_break = "";
- for (S32 x = 0; x < header.length(); x++)
- {
- header_break += "-";
- }
+ std::string header_break(13 * 8, '-');
+ LL_INFOS() << "Size vs Size" << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
- LL_INFOS() << header << LL_ENDL; // Size vs Size counts header
+ // Create a header that for the Sizes
+ LL_INFOS() << std::setw(8) << "Size";
+ for (S32 x = 1; x <= 2048; x <<= 1)
+ {
+ LL_CONT << std::setw(8) << x;
+ }
+ LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
// Y Axis is the size of the height of the texture
for (S32 y = 0; y < 12; y++)
{
- std::string newValue = std::to_string((S32)pow(2, y));
- std::string size_count_string = "" + newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- size_count_string += " ";
- }
-
+ LL_INFOS() << std::setw(8) << (1 << y);
//X Axis is the size of the width of the texture
for (S32 x = 0; x < 12; x++)
{
- newValue = std::to_string(size_counts[x + y * 12]);
- size_count_string += newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- size_count_string += " ";
- }
- }
- LL_INFOS() << size_count_string << LL_ENDL;
- }
- LL_INFOS() << header_break << LL_ENDL;
- LL_INFOS() << header << LL_ENDL; // Size vs Size counts footer
- LL_INFOS() << header_break << LL_ENDL;
+ LL_CONT << std::setw(8) << size_counts[x + y * 12];
- LL_INFOS() << "" << LL_ENDL;
+ }
+ LL_CONT << LL_ENDL;
+ }
+ LL_INFOS() << LL_ENDL;
// This is the Discard Level Vs Size counts table
- header = "Discard: ";
+ LL_INFOS() << "Discard Level Vs Size" << LL_ENDL;
+ LL_INFOS() << header_break << LL_ENDL;
+ LL_INFOS() << std::setw(8) << "Discard";
for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++)
{
- std::string newValue = std::to_string(x - 1);
- header += newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- header += " ";
- }
+ LL_CONT << std::setw(8) << (x - 1);
}
-
- header_break = "";
- for (S32 x = 0; x < header.length(); x++)
- {
- header_break += "-";
- }
-
- LL_INFOS() << header_break << LL_ENDL;
- LL_INFOS() << header << LL_ENDL; // Discard Level Vs Size counts header
+ LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
// Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used)
for (S32 y = 0; y < 12; y++)
{
- std::string newValue = std::to_string((S32)pow(2, y));
- std::string discard_count_string = "" + newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- discard_count_string += " ";
- }
+ LL_INFOS() << std::setw(8) << (1 << y);
// X Axis is the discard level starging from -1 up to 10 (2 x MAX_DISCARD_LEVEL + 1 (for negative number) + 1 additional for the fact that the last value actuauly used on not < but <=)
for (S32 x = 0; x < (MAX_DISCARD_LEVEL * 2 + 2); x++)
{
- std::string newValue = std::to_string(discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]);
- discard_count_string += newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- discard_count_string += " ";
- }
+ LL_CONT << std::setw(8) << discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)];
}
- LL_INFOS() << discard_count_string << LL_ENDL;
+ LL_CONT << LL_ENDL;
}
- LL_INFOS() << header_break << LL_ENDL;
- LL_INFOS() << header << LL_ENDL; // Discard Level Vs Size counts footer
- LL_INFOS() << header_break << LL_ENDL;
+ LL_INFOS() << LL_ENDL;
+
- // This is the Boost Level Vs Size counts table
- header = "Boost: ";
- for (S32 x = 0; x < LLViewerTexture::BOOST_MAX_LEVEL; x++)
+ // This is the Discard Level Vs Full Size counts table
+ LL_INFOS() << "Discard Level Vs Full Size" << LL_ENDL;
+ LL_INFOS() << header_break << LL_ENDL;
+ LL_INFOS() << std::setw(8) << "Discard";
+ for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++)
{
- std::string newValue = std::to_string(x);
- header += newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- header += " ";
- }
+ LL_CONT << std::setw(8) << (x - 1);
}
-
- header_break = "";
- for (S32 x = 0; x < header.length(); x++)
- {
- header_break += "-";
- }
-
- LL_INFOS() << header_break << LL_ENDL;
- LL_INFOS() << header << LL_ENDL; // Boost Level Vs Size counts header
+ LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
// Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used)
for (S32 y = 0; y < 12; y++)
{
- std::string newValue = std::to_string((S32)pow(2, y));
- std::string boost_count_string = "" + newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
+ LL_INFOS() << std::setw(8) << (1 << y);
+ // X Axis is the discard level starging from -1 up to 10 (2 x MAX_DISCARD_LEVEL + 1 (for negative number) + 1 additional for the fact that the last value actuauly used on not < but <=)
+ for (S32 x = 0; x < (MAX_DISCARD_LEVEL * 2 + 2); x++)
{
- boost_count_string += " ";
+ LL_CONT << std::setw(8) << fullsize_discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)];
}
+ LL_CONT << LL_ENDL;
+ }
+ LL_INFOS() << LL_ENDL;
+
+
+ // This is the Boost Level Vs Size counts table
+ LL_INFOS() << "Boost Level Vs Size" << LL_ENDL;
+ header_break.append((LLViewerTexture::BOOST_MAX_LEVEL * 8) - (12 * 8), '-');
+ LL_INFOS() << header_break << LL_ENDL;
+ LL_INFOS() << std::setw(8) << "Discard";
+ for (S32 x = 0; x < LLViewerTexture::BOOST_MAX_LEVEL; x++)
+ {
+ LL_CONT << std::setw(8) << x;
+ }
+ LL_CONT << LL_ENDL;
+ LL_INFOS() << header_break << LL_ENDL;
+
+ // Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used)
+ for (S32 y = 0; y < 12; y++)
+ {
+ LL_INFOS() << std::setw(8) << (1 << y);
// X Axis is the boost level starging from BOOST_NONE up to BOOST_MAX_LEVEL
for (S32 x = 0; x < (LLViewerTexture::BOOST_MAX_LEVEL); x++)
{
- std::string newValue = std::to_string(boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)]);
- boost_count_string += newValue;
- for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
- {
- boost_count_string += " ";
- }
+ LL_CONT << std::setw(8) << boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)];
}
- LL_INFOS() << boost_count_string << LL_ENDL;
+ LL_CONT << LL_ENDL;
}
- LL_INFOS() << header_break << LL_ENDL;
- LL_INFOS() << header << LL_ENDL; // Boost Level Vs Size counts footer
- LL_INFOS() << header_break << LL_ENDL;
+ LL_INFOS() << LL_ENDL;
// [FIRE-35081]
}
@@ -1138,7 +1095,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
F32 bias = llclamp(max_discard - 2.f, 1.f, LLViewerTexture::sDesiredDiscardBias);
// convert bias into a vsize scaler
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//bias = (F32) llroundf(powf(4, bias - 1.f));
// Pre-divide the bias so you can just use multiply in the loop
bias = (F32) 1.0f / llroundf(powf(4, bias - 1.f));
@@ -1180,7 +1137,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
if (face && face->getViewerObject())
{
++face_count;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// No longer needed as we no longer re-calculate the face's virtual texture size, we use it directly from the face
//F32 radius;
//F32 cos_angle_to_view_dir;
@@ -1199,7 +1156,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
}
// Also moved allocation outside the loop
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//F32 vsize = face->getPixelArea();
//on_screen |= face->mInFrustum;
@@ -1214,7 +1171,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
animated += S64(face->hasMedia()); // Add has media for both local and parcel media
animated += S64(imagep->hasParcelMedia());
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer (It is)
+ // [FIRE-35081] Blurry prims not changing with graphics settings (It is)
/*
// Scale desired texture resolution higher or lower depending on texture scale
//
@@ -1275,7 +1232,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
}
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//if (max_vsize >= LLViewerFetchedTexture::sMaxVirtualSize
// && (on_screen || LLViewerTexture::sDesiredDiscardBias <= BIAS_TRS_ON_SCREEN))
//{
@@ -1284,7 +1241,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
//
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Replaced all the checks for this bool to be only in this 1 place instead of in the loop.
// If the on screen counter is greater then 0, then there was at least 1 on screen texture
on_screen = bool(on_screen_count);
@@ -1312,7 +1269,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
}
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//imagep->addTextureStats(max_vsize);
// New logic block for the bias system
// Then depending on the type of texture, the higher resolution on_screen_max_vsize is applied.
@@ -1439,7 +1396,7 @@ F32 LLViewerTextureList::updateImagesCreateTextures(F32 max_time)
mCreateTextureList.pop();
if (imagep->hasGLTexture() && imagep->getDiscardLevel() < imagep->getDesiredDiscardLevel() &&
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//(imagep->getDesiredDiscardLevel() <= MAX_DISCARD_LEVEL))
// Add additional restrictions on scaling down (only BOOST_NONE LOD Textures (Also skip media)
(imagep->getDesiredDiscardLevel() <= MAX_DISCARD_LEVEL) && imagep->getBoostLevel() == LLViewerTexture::BOOST_NONE && imagep->getType() == LLViewerTexture::LOD_TEXTURE && !imagep->hasParcelMedia() && !imagep->isViewerMediaTexture())
diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h
index c8e9693c58..e2f9c15a5a 100644
--- a/indra/newview/llviewertexturelist.h
+++ b/indra/newview/llviewertexturelist.h
@@ -111,7 +111,7 @@ public:
static void receiveImageHeader(LLMessageSystem *msg, void **user_data);
static void receiveImagePacket(LLMessageSystem *msg, void **user_data);
//
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
static void dumpTexturelist(); // Added code to handle dumping texture information
// [FIRE-35081]
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index ce4b184eee..9c508e0c26 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -5430,6 +5430,14 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot, bool pick_transp
pick_transparent = true;
}
+ // Pick from center of screen in mouselook
+ if (gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK)
+ {
+ x = gViewerWindow->getWorldViewRectScaled().getWidth() / 2;
+ y_from_bot = gViewerWindow->getWorldViewRectScaled().getHeight() / 2;
+ }
+ //
+
// shortcut queueing in mPicks and just update mLastPick in place
MASK key_mask = gKeyboard->currentMask(true);
mLastPick = LLPickInfo(LLCoordGL(x, y_from_bot), key_mask, pick_transparent, pick_rigged, pick_particle, pick_reflection_probe, true, false, NULL);
@@ -5928,8 +5936,15 @@ void LLViewerWindow::saveImageLocal(LLImageFormatted *image, const snapshot_save
filepath = sSnapshotDir;
filepath += gDirUtilp->getDirDelimiter();
filepath += sSnapshotBaseName;
- filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S");
- filepath += llformat("%.2d", i);
+// FIRE-35391 - Restore ability for snapshots saving with simple index number
+// filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S");
+// filepath += llformat("%.2d", i);
+ if (gSavedSettings.getBOOL("FSSnapshotLocalNamesWithTimestamps"))
+ {
+ filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S");
+ }
+ filepath += llformat("_%.3d", i);
+//
filepath += extension;
llstat stat_info;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 7c152012df..6956990734 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2976,7 +2976,7 @@ LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUU
LL_DEBUGS("Avatar") << avString() << "get old-bake image from host " << uuid << LL_ENDL;
LLHost host = getObjectHost();
result = LLViewerTextureManager::getFetchedTexture(
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//uuid, FTT_HOST_BAKE, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
uuid, FTT_HOST_BAKE, true, LLGLTexture::BOOST_AVATAR_BAKED, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
// [FIRE-35081]
@@ -7268,69 +7268,44 @@ const LLUUID& LLVOAvatar::getID() const
// getJoint()
//-----------------------------------------------------------------------------
// RN: avatar joints are multi-rooted to include screen-based attachments
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-//LLJoint *LLVOAvatar::getJoint( const std::string &name )
-LLJoint *LLVOAvatar::getJoint( const JointKey &name )
-//
+// Joint-lookup improvements
+//LLJoint *LLVOAvatar::getJoint(const std::string &name)
+LLJoint *LLVOAvatar::getJoint(std::string_view name)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
+ // Joint-lookup improvements
//joint_map_t::iterator iter = mJointMap.find( name );
-
- //LLJoint* jointp = NULL;
-
- //if( iter == mJointMap.end() || iter->second == NULL )
- //{ //search for joint and cache found joint in lookup table
- // if (mJointAliasMap.empty())
- // {
- // getJointAliases();
- // }
- // joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(name);
- // std::string canonical_name;
- // if (alias_iter != mJointAliasMap.end())
- // {
- // canonical_name = alias_iter->second;
- // }
- // else
- // {
- // canonical_name = name;
- // }
- // jointp = mRoot->findJoint(canonical_name);
- // mJointMap[name] = jointp;
- //}
- //else
- //{ //return cached pointer
- // jointp = iter->second;
- //}
-
- joint_map_t::iterator iter = mJointMap.find( name.mKey );
+ joint_map_t::iterator iter = mJointMap.find(name.data());
LLJoint* jointp = NULL;
- if (iter == mJointMap.end() || iter->second == NULL)
- { //search for joint and cache found joint in lookup table
- if (mJointAliasMap.empty())
- {
- getJointAliases();
- }
- joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(name.mName);
- std::string canonical_name;
- if (alias_iter != mJointAliasMap.end())
- {
- canonical_name = alias_iter->second;
- }
- else
- {
- canonical_name = name.mName;
- }
- jointp = mRoot->findJoint(canonical_name);
- mJointMap[name.mKey] = jointp;
+ if( iter == mJointMap.end() || iter->second == NULL )
+ { //search for joint and cache found joint in lookup table
+ if (mJointAliasMap.empty())
+ {
+ getJointAliases();
+ }
+ // Joint-lookup improvements
+ //joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(name);
+ joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(std::string(name));
+ std::string canonical_name;
+ if (alias_iter != mJointAliasMap.end())
+ {
+ canonical_name = alias_iter->second;
+ }
+ else
+ {
+ canonical_name = name;
+ }
+ jointp = mRoot->findJoint(canonical_name);
+ // Joint-lookup improvements
+ //mJointMap[name] = jointp;
+ mJointMap[std::string(name)] = jointp;
}
else
- { //return cached pointer
- jointp = iter->second;
+ { //return cached pointer
+ jointp = iter->second;
}
-//
#ifndef LL_RELEASE_FOR_DOWNLOAD
if (jointp && jointp->getName()!="mScreen" && jointp->getName()!="mRoot")
@@ -7371,6 +7346,16 @@ LLJoint *LLVOAvatar::getJoint( S32 joint_num )
return pJoint;
}
+void LLVOAvatar::initAllJoints()
+{
+ getJointAliases();
+ for (auto& alias : mJointAliasMap)
+ {
+ mJointMap[alias.first] = mRoot->findJoint(alias.second);
+ }
+ // ignore mScreen and mRoot
+}
+
//-----------------------------------------------------------------------------
// getRiggedMeshID
//
@@ -7696,11 +7681,7 @@ void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo, std::set Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// std::string lookingForJoint = pSkinData->mJointNames[ i ].c_str();
- JointKey lookingForJoint = pSkinData->mJointNames[ i ];
-//
-
+ std::string lookingForJoint = pSkinData->mJointNames[i].c_str();
LLJoint* pJoint = getJoint( lookingForJoint );
if (pJoint)
{
@@ -7713,10 +7694,7 @@ void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo, std::set Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// if( lookingForJoint == "mPelvis" )
- if( lookingForJoint.mName == "mPelvis" )
-//
+ if( lookingForJoint == "mPelvis" )
{
pelvisGotSet = true;
}
@@ -7907,10 +7885,7 @@ void LLVOAvatar::removeAttachmentOverridesForObject(LLViewerObject *vo)
//-----------------------------------------------------------------------------
void LLVOAvatar::removeAttachmentOverridesForObject(const LLUUID& mesh_id)
{
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// LLJoint* pJointPelvis = getJoint( "mPelvis" );
- LLJoint* pJointPelvis = getJoint( JointKey::construct( "mPelvis" ) );
-//
+ LLJoint* pJointPelvis = getJoint( "mPelvis" );
const std::string av_string = avString();
for (S32 joint_num = 0; joint_num < LL_CHARACTER_MAX_ANIMATED_JOINTS; joint_num++)
@@ -8098,10 +8073,7 @@ void LLVOAvatar::initAttachmentPoints(bool ignore_hud_joints)
attachment->setName(info->mName);
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// LLJoint *parent_joint = getJoint(info->mJointName);
- LLJoint *parent_joint = getJoint( JointKey::construct( info->mJointName ) );
-//
+ LLJoint *parent_joint = getJoint(info->mJointName);
if (!parent_joint)
{
@@ -10996,7 +10968,7 @@ void LLVOAvatar::applyParsedAppearanceMessage(LLAppearanceMessageContents& conte
//LL_DEBUGS("Avatar") << avString() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL;
LL_DEBUGS("Avatar") << avString() << "sb " << (S32) isUsingServerBakes() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL;
setTEImage(mBakedTextureDatas[baked_index].mTextureIndex,
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
//Texture will use baked textures, so it should also use that for the boost.
LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_AVATAR_BAKED, LLViewerTexture::LOD_TEXTURE));
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 5909012c80..b9e60ecf78 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -204,12 +204,11 @@ public:
void startDefaultMotions();
void dumpAnimationState();
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //virtual LLJoint* getJoint( const std::string &name );
- virtual LLJoint* getJoint( const JointKey &name );
- LLJoint* getJoint( const std::string &name ) { return getJoint( JointKey::construct( name ) ); }
-//
+ // Joint-lookup improvements
+ //virtual LLJoint* getJoint(const std::string &name);
+ virtual LLJoint* getJoint(std::string_view name);
LLJoint* getJoint(S32 num);
+ void initAllJoints();
//if you KNOW joint_num is a valid animated joint index, use getSkeletonJoint for efficiency
inline LLJoint* getSkeletonJoint(S32 joint_num) { return mSkeleton[joint_num]; }
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index bd0405e37f..9dae1846ca 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -272,6 +272,8 @@ void LLVOAvatarSelf::initInstance()
doPeriodically(check_for_unsupported_baked_appearance, 120.0);
doPeriodically(boost::bind(&LLVOAvatarSelf::checkStuckAppearance, this), 30.0);
+ initAllJoints(); // mesh thread uses LLVOAvatarSelf as a joint source
+
mInitFlags |= 1<<2;
}
@@ -1027,27 +1029,22 @@ void LLVOAvatarSelf::idleUpdate(LLAgent &agent, const F64 &time)
}
// virtual
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-//LLJoint *LLVOAvatarSelf::getJoint( const std::string &name )
-LLJoint *LLVOAvatarSelf::getJoint( const JointKey &name )
-//
+// Joint-lookup improvements
+//LLJoint *LLVOAvatarSelf::getJoint(const std::string &name)
+LLJoint* LLVOAvatarSelf::getJoint(std::string_view name)
{
std::lock_guard lock(mJointMapMutex);
LLJoint *jointp = NULL;
jointp = LLVOAvatar::getJoint(name);
if (!jointp && mScreenp)
{
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
- //jointp = mScreenp->findJoint(name);
- jointp = mScreenp->findJoint(name.mName);
- //
+ jointp = mScreenp->findJoint(name);
if (jointp)
{
- // Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
+ // Joint-lookup improvements
//mJointMap[name] = jointp;
- mJointMap[name.mKey] = jointp;
- //
- }
+ mJointMap[std::string(name)] = jointp;
+ }
}
if (jointp && jointp != mScreenp && jointp != mRoot)
{
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index de8a435be9..688891eb68 100644
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -91,10 +91,9 @@ public:
/*virtual*/ void stopMotionFromSource(const LLUUID& source_id);
/*virtual*/ void requestStopMotion(LLMotion* motion);
-// Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
-// /*virtual*/ LLJoint* getJoint( const std::string &name );
- /*virtual*/ LLJoint* getJoint( const JointKey &name );
-//
+ // Joint-lookup improvements
+// /*virtual*/ LLJoint* getJoint(const std::string &name);
+ /*virtual*/ LLJoint* getJoint(std::string_view name);
/*virtual*/ void renderJoints();
diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp
index ccdc38a332..3551492a77 100644
--- a/indra/newview/llvograss.cpp
+++ b/indra/newview/llvograss.cpp
@@ -99,7 +99,7 @@ void LLVOGrass::updateSpecies()
SpeciesMap::const_iterator it = sSpeciesTable.begin();
mSpecies = (*it).first;
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
// Added new boost Grass as it forces a fixed size on updates
setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_GRASS, LLViewerTexture::LOD_TEXTURE));
diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp
index 954faa5572..deaa952f0a 100644
--- a/indra/newview/llvotree.cpp
+++ b/indra/newview/llvotree.cpp
@@ -330,7 +330,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
// Load Species-Specific data
//
static const S32 MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 32 ; //frames.
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
// Set boost level for Tree as it overrides the normal texture sizes
mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_TREE, LLViewerTexture::LOD_TEXTURE);
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 5144f95101..ba8fb0438a 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -742,7 +742,7 @@ void LLVOVolume::animateTextures()
{
LLFace* facep = mDrawable->getFace(i);
if (!facep) continue;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
//if(facep->getVirtualSize() <= MIN_TEX_ANIM_SIZE && facep->mTextureMatrix) continue;
// [FIRE-35081]
@@ -770,7 +770,7 @@ void LLVOVolume::animateTextures()
if (!facep->mTextureMatrix)
{
facep->mTextureMatrix = new LLMatrix4();
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
//if (facep->getVirtualSize() > MIN_TEX_ANIM_SIZE)
// [FIRE-35081]
@@ -926,7 +926,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
F32 min_vsize=999999999.f, max_vsize=0.f;
LLViewerCamera* camera = LLViewerCamera::getInstance();
std::stringstream debug_text;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Use this flag to indicate that there was a legit change to 0.0 for the mPixelArea (All faces off screen)
bool changed = false;
// [FIRE-35081]
@@ -978,7 +978,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
mPixelArea = llmax(mPixelArea, face->getPixelArea());
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// If the new area is changed from the old area, then accept it.
if (mPixelArea != old_area)
{
@@ -1073,7 +1073,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
{
LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE);
LLUUID id = params->getLightTexture();
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Light textures should be treaded not the same as normal LOD textures
mLightTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, true, LLGLTexture::BOOST_LIGHT);
// [FIRE-35081]
@@ -1126,7 +1126,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
setDebugText(output);
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
//if (mPixelArea == 0)
// If there is a legit change to 0.0, don't dismiss it.
if (mPixelArea == 0 && !changed)
@@ -5462,7 +5462,7 @@ bool can_batch_texture(LLFace* facep)
return false;
}
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
if (facep->isState(LLFace::TEXTURE_ANIM))//&& facep->getVirtualSize() > MIN_TEX_ANIM_SIZE)
// [FIRE-35081]
@@ -5612,7 +5612,7 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
}
const LLMatrix4* tex_mat = NULL;
- // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
+ // [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
if (facep->isState(LLFace::TEXTURE_ANIM)) //&& facep->getVirtualSize() > MIN_TEX_ANIM_SIZE)
// [FIRE-35081]
diff --git a/indra/newview/skins/default/xui/az/notifications.xml b/indra/newview/skins/default/xui/az/notifications.xml
index 70e7a08b6b..7a0d6e7743 100644
--- a/indra/newview/skins/default/xui/az/notifications.xml
+++ b/indra/newview/skins/default/xui/az/notifications.xml
@@ -5128,7 +5128,7 @@ Bu əməliyyatı geri qaytara bilməzsiniz.
Flickr doğrulaması alınmadı. Zəhmət olmasa, yenidən cəhd edin və doğrulama kodunu iki dəfə yoxladığınızdan əmin olun.
- Şəkiliniz indi [http://www.flickr.com/photos/upload/edit/?ids=[ID] burada] baxıla bilər.
+ Şəkiliniz indi [https://www.flickr.com/photos/me/[ID] burada] baxıla bilər.
"[REGION]" üçün
diff --git a/indra/newview/skins/default/xui/az/panel_preferences_colors.xml b/indra/newview/skins/default/xui/az/panel_preferences_colors.xml
index ccb5a158f9..fd002c1a7a 100644
--- a/indra/newview/skins/default/xui/az/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/az/panel_preferences_colors.xml
@@ -202,9 +202,16 @@
- Seçim axtarışının rəngi:
-
-
+ Seçim axtarışının rəngləri:
+
+
+ Fon:
+
+
+
+ Şrift:
+
+
Axtarış zonasının işarənin rəngi:
diff --git a/indra/newview/skins/default/xui/de/floater_fs_poser.xml b/indra/newview/skins/default/xui/de/floater_fs_poser.xml
index d2dd90388f..18c0a59cb1 100644
--- a/indra/newview/skins/default/xui/de/floater_fs_poser.xml
+++ b/indra/newview/skins/default/xui/de/floater_fs_poser.xml
@@ -145,7 +145,10 @@
Linke Brustmuskeln
Rechte Brustmuskeln
Pose laden
+ Pose speichern
Diff. laden
+ Diff. speichern
+ Überschreiben?
@@ -192,8 +195,8 @@
-
-
+
+
@@ -212,7 +215,7 @@
-
+
@@ -223,6 +226,7 @@
+
@@ -265,12 +269,12 @@
-
+
-
-
+
+
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 326b871bcf..5131f9d345 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -5782,7 +5782,7 @@ Flickr-Verifikation fehlgeschlagen. Bitte erneut versuchen sowie den eingegebene
-Das Foto kann jetzt [http://www.flickr.com/photos/upload/edit/?ids=[ID] hier] betrachtet werden.
+Das Foto kann jetzt [https://www.flickr.com/photos/me/[ID] hier] betrachtet werden.
diff --git a/indra/newview/skins/default/xui/de/panel_preferences_colors.xml b/indra/newview/skins/default/xui/de/panel_preferences_colors.xml
index a4c831050d..b97438dbf9 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_colors.xml
@@ -201,10 +201,17 @@
- Farbe für Einstellungssuche:
-
-
-
+ Farben für Einstellungssuche:
+
+
+ Hintergrund:
+
+
+
+ Schriftart:
+
+
+
Farbe für Markierung der Umgebungssuche:
diff --git a/indra/newview/skins/default/xui/de/panel_snapshot_local.xml b/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
index 3f3f86171c..7f61ecfebc 100644
--- a/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/de/panel_snapshot_local.xml
@@ -24,9 +24,8 @@
-
- Ort und Dateiname zwischen Sitzungen speichern
-
+
+
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index b01a41ab79..bcd4e24be6 100644
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -165,7 +165,7 @@ Additional code generously contributed to Firestorm by:
top_pad="4"
width="450"
wrap="true">
-Aira Yumi, Albatroz Hird, Alexie Birman, Andromeda Rage, Angus Boyd, Animats, Armin Weatherwax, Ayane Lyla, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Dax Dupont, Denver Maksim, Dragonborn Forzane, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hecklezz, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, minerjr, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, rafak360, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, 小滢 Zi Ying, Zwagoth Klaar and others.
+Aira Yumi, Albatroz Hird, Alexie Birman, Andromeda Rage, Angus Boyd, Animats, Armin Weatherwax, Ayane Lyla, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Dax Dupont, Denver Maksim, Dragonborn Forzane, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hecklezz, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, minerjr, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, rafak360, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sekkmer, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, 小滢 Zi Ying, Zwagoth Klaar and others.
-Your snapshot can now be viewed [http://www.flickr.com/photos/upload/edit/?ids=[ID] here].
+Your snapshot can now be viewed [https://www.flickr.com/photos/me/[ID] here].
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml
index b0545f31a9..3ad611d33d 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_colors.xml
@@ -1823,8 +1823,19 @@
height="12"
name="preferences_search_label"
top_pad="10"
- width="220">
- Preferences Search Highlight Color:
+ width="400">
+ Preferences Search Highlight Colors:
+
+
+
+ Background:
+ parameter="SearchableControlHighlightBgColor" />
+ parameter="SearchableControlHighlightBgColor" />
+ Font:
+
+
+
+
+
+
+
+ top_delta="-21"
+ width="310">
Area search beacon Color:
-
- Save location and filename between sessions
-
+ label_width="200"
+ label="Include date/time in filename"
+ left="10"
+ width="220"
+ name="local_use_timestamp"
+ control_name="FSSnapshotLocalNamesWithTimestamps"/>
- Tu instantánea puede ser vista ahora [http://www.flickr.com/photos/upload/edit/?ids=[ID] aquí].
+ Tu instantánea puede ser vista ahora [https://www.flickr.com/photos/me/[ID] aquí].
diff --git a/indra/newview/skins/default/xui/es/panel_preferences_colors.xml b/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
index e788ad8f03..5e82574653 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_colors.xml
@@ -181,6 +181,17 @@
+
+ Colores de resaltado de búsqueda de preferencias:
+
+
+ Fondo:
+
+
+
+ Fuente:
+
+
diff --git a/indra/newview/skins/default/xui/fr/floater_fs_poser.xml b/indra/newview/skins/default/xui/fr/floater_fs_poser.xml
index 86996e6a3f..ea7eff527e 100644
--- a/indra/newview/skins/default/xui/fr/floater_fs_poser.xml
+++ b/indra/newview/skins/default/xui/fr/floater_fs_poser.xml
@@ -142,7 +142,10 @@
Sein gauche
Sein droit
Charger pose
+ Enr. pose
Charger diff
+ Enr. diff
+ Écraser ?
@@ -181,8 +184,8 @@
-
-
+
+
@@ -203,7 +206,7 @@
-
+
@@ -214,6 +217,7 @@
+
@@ -256,12 +260,12 @@
-
+
-
-
+
+
diff --git a/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml
index 44ca063da9..23a3376a74 100644
--- a/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preferences_graphics_advanced.xml
@@ -33,7 +33,7 @@
0
-
+
0
@@ -152,6 +152,16 @@
+
+ Max. sondes de réflexion.:
+
+
+
+
+
+
+
+
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml
index f1643786e7..e10cd6b84c 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml
@@ -87,7 +87,8 @@
-
+
+
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
index ac991e4695..98722e46e0 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
@@ -13,6 +13,7 @@
+
+
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index dc6f090e73..7c4b487277 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -5116,7 +5116,7 @@ Autorizzare [APP_NAME] a pubblicare su Flickr?
Autenticazione Flickr fallita. Riprovare dopo aver controllato il codice di verifica.
- La foto può essere vista [http://www.flickr.com/photos/upload/edit/?ids=[ID] qui].
+ La foto può essere vista [https://www.flickr.com/photos/me/[ID] qui].
Inserire l'etichetta che si vuole usare
diff --git a/indra/newview/skins/default/xui/it/panel_preferences_colors.xml b/indra/newview/skins/default/xui/it/panel_preferences_colors.xml
index 5322171d9d..4039d7a972 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_colors.xml
@@ -200,10 +200,17 @@
- Risultati di ricerca nelle preferenze:
-
-
-
+ Risultati di ricerca nelle preferenze:
+
+
+ Sfondo:
+
+
+
+ Carattere:
+
+
+
Raggio di tracciamento (ad es. per Cerca Oggetti):
diff --git a/indra/newview/skins/default/xui/it/panel_snapshot_local.xml b/indra/newview/skins/default/xui/it/panel_snapshot_local.xml
index d555e707e5..fa8f3b2825 100644
--- a/indra/newview/skins/default/xui/it/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/it/panel_snapshot_local.xml
@@ -17,9 +17,7 @@
-
- Ricorda luogo e nome file tra le sessioni
-
+
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 10e9b1d827..ed99358619 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -5419,7 +5419,7 @@ Flickrの認証に失敗しました。もう一度試してみて下さい。
-あなたのスナップショットは次のURLでみることができるようになりました。 [http://www.flickr.com/photos/upload/edit/?ids=[ID] here]
+あなたのスナップショットは次のURLでみることができるようになりました。 [https://www.flickr.com/photos/me/[ID] here]
diff --git a/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
index e07aa9f356..bbf04baa62 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_colors.xml
@@ -235,12 +235,19 @@
- 検索結果の強調色:
-
-
+ 検索結果の強調色:
+
+
+ 背景:
+
+
+
+ フォント:
+
+
- エリアサーチ・ビーコンの色
-
+ エリアサーチ・ビーコンの色:
+
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index 12e42546ad..748c7adbc3 100644
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
@@ -5224,7 +5224,7 @@ Czy chcesz autoryzować [APP_NAME] do przesyłania zdjęć na Flickr?
Autoryzacja Flickr nie powiodła się. Spróbuj ponownie i sprawdź dokładnie kod weryfikacyjny.
- Możesz znaleźć swoje zdjęcie [http://www.flickr.com/photos/upload/edit/?ids=[ID] tutaj].
+ Możesz znaleźć swoje zdjęcie [https://www.flickr.com/photos/me/[ID] tutaj].
Jaką etykietę chcesz nadać regionowi
diff --git a/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml b/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml
index aedefdad99..c1c35259d2 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_colors.xml
@@ -198,10 +198,17 @@
- Wyniki wyszukiwania w opcjach:
-
-
-
+ Wyniki wyszukiwania w opcjach:
+
+
+ Tło:
+
+
+
+ Czcionka:
+
+
+
Emiter śledzenia (np. przeszukiwania obszaru):
diff --git a/indra/newview/skins/default/xui/pl/panel_snapshot_local.xml b/indra/newview/skins/default/xui/pl/panel_snapshot_local.xml
index febdbfd899..416bb6c5a7 100644
--- a/indra/newview/skins/default/xui/pl/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/pl/panel_snapshot_local.xml
@@ -14,9 +14,8 @@
-
- Trzymaj lokalizację i nazwę pliku między sesjami
-
+
+
diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml
index 469381010e..d5b1bf8128 100644
--- a/indra/newview/skins/default/xui/ru/notifications.xml
+++ b/indra/newview/skins/default/xui/ru/notifications.xml
@@ -5329,7 +5329,7 @@ https://wiki.firestormviewer.org/fs_voice
Flickr проверка не удалась. Пожалуйста, попробуйте еще раз, и проверьте код подтверждения.
- Ваш снимок теперь может быть просмотрен [http://www.flickr.com/photos/upload/edit/?ids=[ID] тут].
+ Ваш снимок теперь может быть просмотрен [https://www.flickr.com/photos/me/[ID] тут].
Какую бы метку вы хотели использовать
diff --git a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
index f6da72911b..202f3e45a1 100644
--- a/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/ru/panel_preferences_colors.xml
@@ -203,9 +203,16 @@
- Цвет подсветки поиска в настройках:
-
-
+ Цвета подсветки поиска в настройках:
+
+ gi
+ Фон:
+
+
+
+ Шрифт:
+
+
Цвет маяка зоны поиска:
diff --git a/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml b/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml
index d366d87fed..651207fcda 100644
--- a/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/ru/panel_snapshot_local.xml
@@ -24,9 +24,7 @@
-
- Сохранить место и имя файла между сессиями
-
+
diff --git a/indra/newview/skins/default/xui/zh/floater_fs_poser.xml b/indra/newview/skins/default/xui/zh/floater_fs_poser.xml
index e6472b9059..5787ea87ea 100644
--- a/indra/newview/skins/default/xui/zh/floater_fs_poser.xml
+++ b/indra/newview/skins/default/xui/zh/floater_fs_poser.xml
@@ -142,7 +142,10 @@
左胸肌
右胸肌
載入姿勢
+ 儲存姿勢
載入差異
+ 儲存差異
+ 覆蓋?
@@ -186,8 +189,8 @@
-
-
+
+
@@ -206,7 +209,7 @@
-
+
@@ -216,6 +219,7 @@
+
@@ -259,12 +263,12 @@
-
+
-
-
+
+
diff --git a/indra/newview/skins/default/xui/zh/floater_phototools.xml b/indra/newview/skins/default/xui/zh/floater_phototools.xml
index c629ea81ae..30c14faddf 100644
--- a/indra/newview/skins/default/xui/zh/floater_phototools.xml
+++ b/indra/newview/skins/default/xui/zh/floater_phototools.xml
@@ -308,7 +308,7 @@
化身物理
-
+
最大粒子數
@@ -346,14 +346,14 @@
-
-
+
+
-
+
反鋸齒類型(需要重啟)
@@ -407,20 +407,20 @@
-
+
-
-
-
-
+
+
+
+
-
+
統計資訊
@@ -433,7 +433,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml
index 4230a87c86..b7c51891dc 100644
--- a/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml
+++ b/indra/newview/skins/default/xui/zh/floater_preferences_graphics_advanced.xml
@@ -33,7 +33,7 @@
0
-
+
0
@@ -128,8 +128,16 @@
+
+ 反射探針數量:
+
+
+
+
+
+
+
-
鏡面解析度:
diff --git a/indra/newview/skins/default/xui/zh/menu_inventory.xml b/indra/newview/skins/default/xui/zh/menu_inventory.xml
index 1b5a7eef1c..3daaed641e 100644
--- a/indra/newview/skins/default/xui/zh/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/menu_inventory.xml
@@ -91,6 +91,7 @@
+
diff --git a/indra/newview/skins/default/xui/zh/menu_viewer.xml b/indra/newview/skins/default/xui/zh/menu_viewer.xml
index de90f67f75..fe3c048f1d 100644
--- a/indra/newview/skins/default/xui/zh/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/zh/menu_viewer.xml
@@ -439,6 +439,8 @@
+
+
@@ -650,7 +652,7 @@
-
+
diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml
index e678fa8273..d81a6073fa 100644
--- a/indra/newview/skins/default/xui/zh/notifications.xml
+++ b/indra/newview/skins/default/xui/zh/notifications.xml
@@ -955,18 +955,23 @@
[APP_NAME] 當前尚不支援 BVH 格式的動畫檔案批次上傳。
-無法上傳 [FILE],原因:[REASON]
+ 無法上傳 [FILE],原因:[REASON]
請稍候再試一次。
-無法上傳快照 [FILE],原因如下:[REASON]
+ 無法上傳快照 [FILE],原因如下:[REASON]
檔案可能太大,請嘗試降低解析度、降低品質或稍後重試。
-無法上傳快照。
+ 無法上傳快照。
檔案可能太大,請嘗試降低解析度或稍後重試。
+
+
+ 無法打開檔案。
+
+檢視器在打開檔案時記憶體不足。檔案可能過大。
你已新增「[LANDMARK_NAME]」到你的 [FOLDER_NAME] 檔案夾。
@@ -5467,7 +5472,7 @@ Flickr 驗證失敗。請重試並檢查輸入的程式碼。
-現在可以在這裡 [http://www.flickr.com/photos/upload/edit/?ids=[ID] 檢視相片。
+現在可以在這裡 https://www.flickr.com/photos/me/[ID] 檢視相片。
應該為區域「[REGION]」
@@ -5688,6 +5693,10 @@ gzip級別6壓縮的測試結果,對[FILE]檔案大小[SIZE] KB:
您的圖形硬體尚不支援GLTF場景。
+
+ 選中“隱藏水”複選框將覆蓋所選的紋理、凹凸和光澤圖選項。
+
+
你即將啟用自動影格率。所有未儲存的圖形設定將會丟失。
diff --git a/indra/newview/skins/default/xui/zh/panel_fs_tools_texture.xml b/indra/newview/skins/default/xui/zh/panel_fs_tools_texture.xml
index 8a31200a2c..3285d9f844 100644
--- a/indra/newview/skins/default/xui/zh/panel_fs_tools_texture.xml
+++ b/indra/newview/skins/default/xui/zh/panel_fs_tools_texture.xml
@@ -272,9 +272,7 @@
-
- 對映
-
+
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml b/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml
index 10fdd65c98..d88c118872 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_colors.xml
@@ -101,7 +101,10 @@
突出顯示搜尋偏好設定:
-
+ 背景:
+
+ 字体:
+
區域搜尋標記顏色:
@@ -134,4 +137,4 @@
-
\ No newline at end of file
+
diff --git a/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
index 2f519bafc0..2a2fb1fd43 100644
--- a/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/zh/panel_preferences_graphics1.xml
@@ -205,6 +205,15 @@
+
+ 反射探針數量:
+
+
+
+
+
+
+
色調映射器:
diff --git a/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml b/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
index 1b8b0791be..50194b7b7e 100644
--- a/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
+++ b/indra/newview/skins/default/xui/zh/panel_snapshot_local.xml
@@ -18,9 +18,8 @@
-
- 在對談之間儲存位置和檔案名
-
+
+
diff --git a/indra/newview/skins/default/xui/zh/panel_tools_texture.xml b/indra/newview/skins/default/xui/zh/panel_tools_texture.xml
index 2539cede61..79d59a48ad 100644
--- a/indra/newview/skins/default/xui/zh/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/zh/panel_tools_texture.xml
@@ -29,6 +29,7 @@
光暈
+
diff --git a/indra/newview/skins/default/xui/zh/strings.xml b/indra/newview/skins/default/xui/zh/strings.xml
index ea0cbe4615..1741143e1c 100644
--- a/indra/newview/skins/default/xui/zh/strings.xml
+++ b/indra/newview/skins/default/xui/zh/strings.xml
@@ -6286,6 +6286,12 @@ support@secondlife.com.
信標
+
+ 姿勢編輯器
+
+
+ 編輯你的化身與動畫物件的姿勢
+
拍攝360°旋轉圖像
diff --git a/indra/newview/vjlocalmeshimportdae.cpp b/indra/newview/vjlocalmeshimportdae.cpp
index d6f8fd40cc..9d73b0c80c 100644
--- a/indra/newview/vjlocalmeshimportdae.cpp
+++ b/indra/newview/vjlocalmeshimportdae.cpp
@@ -673,7 +673,7 @@ bool LLLocalMeshImportDAE::processSkin(daeDatabase* collada_db, daeElement* coll
{
LL_DEBUGS("LocalMesh") << "Found internal joint name: " << joint_name << LL_ENDL;
joint_name = joint_map[joint_name];
- skininfo.mJointNames.push_back(JointKey::construct(joint_name));
+ skininfo.mJointNames.push_back(joint_name);
skininfo.mJointNums.push_back(-1);
}
};
@@ -761,7 +761,7 @@ bool LLLocalMeshImportDAE::processSkin(daeDatabase* collada_db, daeElement* coll
jointname_iterator != skininfop->mJointNames.end();
++jointname_iterator, ++jointname_idx)
{
- std::string name_lookup = jointname_iterator->mName;
+ const std::string& name_lookup = *jointname_iterator;
if (joint_map.find(name_lookup) == joint_map.end())
{
pushLog("DAE Importer", "WARNING: Unknown joint named " + name_lookup + " found, skipping over it.");