summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/contributions.txt2
-rw-r--r--indra/cmake/Variables.cmake2
-rw-r--r--indra/llcharacter/lljoint.h3
-rwxr-xr-xindra/llcommon/llfasttimer.h1
-rwxr-xr-xindra/llcommon/llfasttimer_class.cpp19
-rw-r--r--indra/llcommon/llmemory.h14
-rw-r--r--indra/llinventory/llinventory.cpp2
-rw-r--r--indra/llrender/llglheaders.h55
-rw-r--r--indra/newview/llhudnametag.cpp5
-rw-r--r--indra/newview/llnamelistctrl.h20
-rw-r--r--indra/newview/llpanelpeople.cpp36
-rw-r--r--indra/newview/llpanelpeople.h1
-rw-r--r--indra/newview/llvoavatar.cpp58
-rw-r--r--indra/newview/llvoavatarself.cpp6
-rw-r--r--indra/newview/llvovolume.cpp6
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml16
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmarks.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_main_inventory.xml4
-rwxr-xr-xinstall.xml136
19 files changed, 221 insertions, 169 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 3f0d842643..2d6b20c51d 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -357,6 +357,8 @@ Joghert LeSabre
Jonathan Yap
VWR-17801
STORM-616
+ STORM-679
+ STORM-596
Kage Pixel
VWR-11
Ken March
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index bc517cde49..c543710d6c 100644
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -88,7 +88,7 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
# NOTE: setting -isysroot is NOT adequate: http://lists.apple.com/archives/Xcode-users/2007/Oct/msg00696.html
# see http://public.kitware.com/Bug/view.php?id=9959 + poppy
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.5.sdk)
+ set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX10.6.sdk)
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.4)
endif (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h
index 4c8bd690e8..cbfca588b0 100644
--- a/indra/llcharacter/lljoint.h
+++ b/indra/llcharacter/lljoint.h
@@ -83,6 +83,7 @@ protected:
LLXformMatrix mOldXform;
LLXformMatrix mDefaultXform;
+ LLUUID mId;
public:
U32 mDirtyFlags;
BOOL mUpdateXform;
@@ -182,6 +183,8 @@ public:
void setDefaultFromCurrentXform( void );
void storeCurrentXform( const LLVector3& pos );
+ LLUUID getId( void ) { return mId; }
+ void setId( const LLUUID& id ) { mId = id;}
};
#endif // LL_LLJOINT_H
diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h
index c177027f4e..2b25f2fabb 100755
--- a/indra/llcommon/llfasttimer.h
+++ b/indra/llcommon/llfasttimer.h
@@ -27,7 +27,6 @@
#ifndef LL_FASTTIMER_H
#define LL_FASTTIMER_H
-// Temporarily(?) de-inlined these functions to simplify diagnosis of problems.
// Implementation of getCPUClockCount32() and getCPUClockCount64 are now in llfastertimer_class.cpp.
// pull in the actual class definition
diff --git a/indra/llcommon/llfasttimer_class.cpp b/indra/llcommon/llfasttimer_class.cpp
index fba8a3bb57..0828635881 100755
--- a/indra/llcommon/llfasttimer_class.cpp
+++ b/indra/llcommon/llfasttimer_class.cpp
@@ -64,6 +64,8 @@ BOOL LLFastTimer::sMetricLog = FALSE;
LLMutex* LLFastTimer::sLogLock = NULL;
std::queue<LLSD> LLFastTimer::sLogQueue;
+#define USE_RDTSC 0
+
#if LL_LINUX || LL_SOLARIS
U64 LLFastTimer::sClockResolution = 1000000000; // Nanosecond resolution
#else
@@ -237,10 +239,23 @@ U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer
#else // windows or x86-mac or x86-linux or x86-solaris
U64 LLFastTimer::countsPerSecond() // counts per second for the *32-bit* timer
{
+#if USE_RDTSC || !LL_WINDOWS
//getCPUFrequency returns MHz and sCPUClockFrequency wants to be in Hz
static U64 sCPUClockFrequency = U64(LLProcessorInfo().getCPUFrequency()*1000000.0);
// we drop the low-order byte in our timers, so report a lower frequency
+#else
+ // If we're not using RDTSC, each fasttimer tick is just a performance counter tick.
+ // Not redefining the clock frequency itself (in llprocessor.cpp/calculate_cpu_frequency())
+ // since that would change displayed MHz stats for CPUs
+ static bool firstcall = true;
+ static U64 sCPUClockFrequency;
+ if (firstcall)
+ {
+ QueryPerformanceFrequency((LARGE_INTEGER*)&sCPUClockFrequency);
+ firstcall = false;
+ }
+#endif
return sCPUClockFrequency >> 8;
}
#endif
@@ -497,7 +512,7 @@ void LLFastTimer::NamedTimer::resetFrame()
llinfos << "elapsed sec " << ((F64)getCPUClockCount64())/((F64)LLProcessorInfo().getCPUFrequency()*1000000.0) << llendl;
}
call_count++;
-
+
F64 iclock_freq = 1000.0 / countsPerSecond(); // good place to calculate clock frequency
F64 total_time = 0;
@@ -814,7 +829,7 @@ LLFastTimer::LLFastTimer(LLFastTimer::FrameState* state)
// shift off lower 8 bits for lower resolution but longer term timing
// on 1Ghz machine, a 32-bit word will hold ~1000 seconds of timing
-#ifdef USE_RDTSC
+#if USE_RDTSC
U32 LLFastTimer::getCPUClockCount32()
{
U32 ret_val;
diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h
index 985f5ca30f..8d114f744b 100644
--- a/indra/llcommon/llmemory.h
+++ b/indra/llcommon/llmemory.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llmemory.h
* @brief Memory allocation/deallocation header-stuff goes here.
*
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -29,12 +29,13 @@
#include <stdlib.h>
// A not necessarily efficient, but general, aligned malloc http://stackoverflow.com/questions/196329/osx-lacks-memalign
+#if 0 //DON'T use ll_aligned_foo now that we use tcmalloc everywhere (tcmalloc aligns automatically at appropriate intervals)
inline void* ll_aligned_malloc( size_t size, int align )
{
void* mem = malloc( size + (align - 1) + sizeof(void*) );
char* aligned = ((char*)mem) + sizeof(void*);
aligned += align - ((uintptr_t)aligned & (align - 1));
-
+
((void**)aligned)[-1] = mem;
return aligned;
}
@@ -95,6 +96,7 @@ inline void ll_aligned_free_32(void *p)
free(p); // posix_memalign() is compatible with heap deallocator
#endif
}
+#endif
class LL_COMMON_API LLMemory
{
diff --git a/indra/llinventory/llinventory.cpp b/indra/llinventory/llinventory.cpp
index bda76eac80..a3caf79519 100644
--- a/indra/llinventory/llinventory.cpp
+++ b/indra/llinventory/llinventory.cpp
@@ -61,8 +61,6 @@ static const std::string INV_FOLDER_ID_LABEL_WS("category_id");
///----------------------------------------------------------------------------
/// Local function declarations, constants, enums, and typedefs
///----------------------------------------------------------------------------
-const U8 TASK_INVENTORY_ITEM_KEY = 0;
-const U8 TASK_INVENTORY_ASSET_KEY = 1;
const LLUUID MAGIC_ID("3c115e51-04f4-523c-9fa6-98aff1034730");
diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h
index 86a7d7d915..1f77897a56 100644
--- a/indra/llrender/llglheaders.h
+++ b/indra/llrender/llglheaders.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llglheaders.h
* @brief LLGL definitions
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -449,30 +449,27 @@ extern PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARB;
//GL_EXT_blend_func_separate
extern PFNGLBLENDFUNCSEPARATEEXTPROC glBlendFuncSeparateEXT;
-//GL_EXT_framebuffer_object
-extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
-extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
-extern PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXT;
-extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT;
-extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT;
-extern PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXT;
-extern PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXT;
-extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT;
-extern PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXT;
-extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT;
-extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT;
-extern PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glFramebufferTexture1DEXT;
-extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT;
-extern PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glFramebufferTexture3DEXT;
-extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT;
-extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXT;
-extern PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXT;
-
-// GL_EXT_framebuffer_multisample
-extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT;
-
-// GL_EXT_framebuffer_blit
-extern PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXT;
+//GL_ARB_framebuffer_object
+extern PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
+extern PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
+extern PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
+extern PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
+extern PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
+extern PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
+extern PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
+extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
+extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
+extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
+extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
+extern PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
+extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
+extern PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
+extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
+extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
+extern PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
+extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
+extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
+extern PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
//GL_ARB_draw_buffers
extern PFNGLDRAWBUFFERSARBPROC glDrawBuffersARB;
diff --git a/indra/newview/llhudnametag.cpp b/indra/newview/llhudnametag.cpp
index 38b21529a7..8caf4d3d4c 100644
--- a/indra/newview/llhudnametag.cpp
+++ b/indra/newview/llhudnametag.cpp
@@ -87,6 +87,7 @@ LLHUDNameTag::LLHUDNameTag(const U8 type)
mZCompare(TRUE),
mVisibleOffScreen(FALSE),
mOffscreen(FALSE),
+ mColor(1.f, 1.f, 1.f, 1.f),
// mScale(),
mWidth(0.f),
mHeight(0.f),
@@ -108,8 +109,6 @@ LLHUDNameTag::LLHUDNameTag(const U8 type)
{
LLPointer<LLHUDNameTag> ptr(this);
sTextObjects.insert(ptr);
-
- mColor = LLUIColorTable::instance().getColor("BackgroundChatColor");
}
LLHUDNameTag::~LLHUDNameTag()
@@ -257,7 +256,6 @@ void LLHUDNameTag::renderText(BOOL for_select)
LLColor4 shadow_color(0.f, 0.f, 0.f, 1.f);
F32 alpha_factor = 1.f;
- mColor = LLUIColorTable::instance().getColor("BackgroundChatColor");
LLColor4 text_color = mColor;
if (mDoFade)
{
@@ -523,6 +521,7 @@ void LLHUDNameTag::renderText(BOOL for_select)
x_offset += 1;
}
+ text_color = segment_iter->mColor;
text_color.mV[VALPHA] *= alpha_factor;
hud_render_text(segment_iter->getText(), render_position, *fontp, style, shadow, x_offset, y_offset, text_color, FALSE);
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index 330510814a..d64fdbe6a5 100644
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
@@ -1,25 +1,25 @@
-/**
+/**
* @file llnamelistctrl.h
* @brief A list of names, automatically refreshing from the name cache.
*
* $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -34,7 +34,7 @@
class LLAvatarName;
class LLNameListCtrl
-: public LLScrollListCtrl, protected LLInstanceTracker<LLNameListCtrl>
+: public LLScrollListCtrl, public LLInstanceTracker<LLNameListCtrl>
{
public:
typedef enum e_name_type
@@ -58,7 +58,7 @@ public:
NameItem()
: name("name"),
target("target", INDIVIDUAL)
- {}
+ {}
};
struct NameColumn : public LLInitParam::Choice<NameColumn>
@@ -83,7 +83,7 @@ protected:
LLNameListCtrl(const Params&);
friend class LLUICtrlFactory;
public:
- // Add a user to the list by name. It will be added, the name
+ // Add a user to the list by name. It will be added, the name
// requested from the cache, and updated as necessary.
void addNameItem(const LLUUID& agent_id, EAddPosition pos = ADD_BOTTOM,
BOOL enabled = TRUE, const std::string& suffix = LLStringUtil::null);
@@ -92,7 +92,7 @@ public:
/*virtual*/ LLScrollListItem* addElement(const LLSD& element, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL);
LLScrollListItem* addNameItemRow(const NameItem& value, EAddPosition pos = ADD_BOTTOM, const std::string& suffix = LLStringUtil::null);
- // Add a user to the list by name. It will be added, the name
+ // Add a user to the list by name. It will be added, the name
// requested from the cache, and updated as necessary.
void addGroupNameItem(const LLUUID& group_id, EAddPosition pos = ADD_BOTTOM,
BOOL enabled = TRUE);
@@ -126,7 +126,7 @@ private:
/**
* LLNameListCtrl item
- *
+ *
* We don't use LLScrollListItem to be able to override getUUID(), which is needed
* because the name list item value is not simply an UUID but a map (uuid, is_group).
*/
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 9e9bc5fc1a..54198d6aa4 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -231,7 +231,7 @@ public:
virtual void setActive(bool) {}
protected:
- void updateList()
+ void update()
{
mCallback();
}
@@ -239,6 +239,30 @@ protected:
callback_t mCallback;
};
+/**
+ * Update buttons on changes in our friend relations (STORM-557).
+ */
+class LLButtonsUpdater : public LLPanelPeople::Updater, public LLFriendObserver
+{
+public:
+ LLButtonsUpdater(callback_t cb)
+ : LLPanelPeople::Updater(cb)
+ {
+ LLAvatarTracker::instance().addObserver(this);
+ }
+
+ ~LLButtonsUpdater()
+ {
+ LLAvatarTracker::instance().removeObserver(this);
+ }
+
+ /*virtual*/ void changed(U32 mask)
+ {
+ (void) mask;
+ update();
+ }
+};
+
class LLAvatarListUpdater : public LLPanelPeople::Updater, public LLEventTimer
{
public:
@@ -306,7 +330,7 @@ public:
if (mMask & (LLFriendObserver::ADD | LLFriendObserver::REMOVE | LLFriendObserver::ONLINE))
{
- updateList();
+ update();
}
// Stop updates.
@@ -421,7 +445,7 @@ public:
if (val)
{
// update immediately and start regular updates
- updateList();
+ update();
mEventTimer.start();
}
else
@@ -433,7 +457,7 @@ public:
/*virtual*/ BOOL tick()
{
- updateList();
+ update();
return FALSE;
}
private:
@@ -450,7 +474,7 @@ public:
LLRecentListUpdater(callback_t cb)
: LLAvatarListUpdater(cb, 0)
{
- LLRecentPeople::instance().setChangedCallback(boost::bind(&LLRecentListUpdater::updateList, this));
+ LLRecentPeople::instance().setChangedCallback(boost::bind(&LLRecentListUpdater::update, this));
}
};
@@ -475,11 +499,13 @@ LLPanelPeople::LLPanelPeople()
mFriendListUpdater = new LLFriendListUpdater(boost::bind(&LLPanelPeople::updateFriendList, this));
mNearbyListUpdater = new LLNearbyListUpdater(boost::bind(&LLPanelPeople::updateNearbyList, this));
mRecentListUpdater = new LLRecentListUpdater(boost::bind(&LLPanelPeople::updateRecentList, this));
+ mButtonsUpdater = new LLButtonsUpdater(boost::bind(&LLPanelPeople::updateButtons, this));
mCommitCallbackRegistrar.add("People.addFriend", boost::bind(&LLPanelPeople::onAddFriendButtonClicked, this));
}
LLPanelPeople::~LLPanelPeople()
{
+ delete mButtonsUpdater;
delete mNearbyListUpdater;
delete mFriendListUpdater;
delete mRecentListUpdater;
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
index 4412aed062..b496bb3779 100644
--- a/indra/newview/llpanelpeople.h
+++ b/indra/newview/llpanelpeople.h
@@ -152,6 +152,7 @@ private:
Updater* mFriendListUpdater;
Updater* mNearbyListUpdater;
Updater* mRecentListUpdater;
+ Updater* mButtonsUpdater;
LLMenuButton* mNearbyGearButton;
LLMenuButton* mFriendsGearButton;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 7e9a6f64f2..34345f2471 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -3447,14 +3447,14 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
LLVector3d ground_under_pelvis;
if (isSelf())
- {
- if ( !mHasPelvisOffset )
- {
- gAgent.setPositionAgent(getRenderPosition());
- }
- else
- {
- gAgent.setPositionAgent( getRenderPosition() + mPelvisOffset );
+ {
+ if ( !mHasPelvisOffset )
+ {
+ gAgent.setPositionAgent(getRenderPosition());
+ }
+ else
+ {
+ gAgent.setPositionAgent( getRenderPosition() + mPelvisOffset );
}
}
@@ -3472,22 +3472,22 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
mInAir = in_air;
// correct for the fact that the pelvis is not necessarily the center
- // of the agent's physical representation
+ // of the agent's physical representation
root_pos.mdV[VZ] -= (0.5f * mBodySize.mV[VZ]) - mPelvisToFoot;
LLVector3 newPosition = gAgent.getPosAgentFromGlobal(root_pos);
if (newPosition != mRoot.getXform()->getWorldPosition())
{
- if ( !mHasPelvisOffset )
- {
- mRoot.touch();
- mRoot.setWorldPosition( newPosition ); // regular update
- }
- else
- {
- mRoot.touch();
- mRoot.setWorldPosition( newPosition + mPelvisOffset );
+ if ( !mHasPelvisOffset )
+ {
+ mRoot.touch();
+ mRoot.setWorldPosition( newPosition ); // regular update
+ }
+ else
+ {
+ mRoot.touch();
+ mRoot.setWorldPosition( newPosition + mPelvisOffset );
}
}
@@ -3792,21 +3792,21 @@ void LLVOAvatar::updateHeadOffset()
//------------------------------------------------------------------------
// setPelvisOffset
//------------------------------------------------------------------------
-void LLVOAvatar::setPelvisOffset( bool hasOffset, const LLVector3& offsetAmount )
-{
- mHasPelvisOffset = hasOffset;
- if ( mHasPelvisOffset )
- {
- mPelvisOffset = offsetAmount;
- }
-}
+void LLVOAvatar::setPelvisOffset( bool hasOffset, const LLVector3& offsetAmount )
+{
+ mHasPelvisOffset = hasOffset;
+ if ( mHasPelvisOffset )
+ {
+ mPelvisOffset = offsetAmount;
+ }
+}
//------------------------------------------------------------------------
// postPelvisSetRecalc
//------------------------------------------------------------------------
void LLVOAvatar::postPelvisSetRecalc( void )
{
- computeBodySize();
- mRoot.updateWorldMatrixChildren();
+ computeBodySize();
+ mRoot.updateWorldMatrixChildren();
dirtyMesh();
updateHeadOffset();
}
@@ -4975,7 +4975,7 @@ void LLVOAvatar::resetJointPositionsToDefault( void )
//restore joints to default positions, however skip over the pelvis
if ( pJoint && pPelvis != pJoint )
{
- pJoint->restoreToDefaultXform();
+ pJoint->restoreOldXform();
}
}
//make sure we don't apply the joint offset
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 6fa3da9b41..5054aa3c9e 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -650,10 +650,10 @@ LLJoint *LLVOAvatarSelf::getJoint(const std::string &name)
}
return LLVOAvatar::getJoint(name);
}
-
+//virtual
void LLVOAvatarSelf::resetJointPositions( void )
{
- return LLVOAvatar::resetJointPositionsToDefault();
+ return LLVOAvatar::resetJointPositions();
}
// virtual
BOOL LLVOAvatarSelf::setVisualParamWeight(LLVisualParam *which_param, F32 weight, BOOL upload_bake )
@@ -1161,7 +1161,7 @@ BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)
const int bindCnt = pSkinData->mAlternateBindMatrix.size();
if ( bindCnt > 0 )
{
- resetJointPositions();
+ LLVOAvatar::resetJointPositionsToDefault();
}
}
}
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 39e286ac38..fa0f48fce6 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -4057,7 +4057,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
if ( pAvatarVO )
{
- const LLMeshSkinInfo* pSkinData = gMeshRepo.getSkinInfo( vobj->getVolume()->getParams().getSculptID() );
+ LLUUID currentId = vobj->getVolume()->getParams().getSculptID();
+ const LLMeshSkinInfo* pSkinData = gMeshRepo.getSkinInfo( currentId );
if ( pSkinData )
{
@@ -4069,8 +4070,9 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
{
std::string lookingForJoint = pSkinData->mJointNames[i].c_str();
LLJoint* pJoint = pAvatarVO->getJoint( lookingForJoint );
- if ( pJoint )
+ if ( pJoint && pJoint->getId() != currentId )
{
+ pJoint->setId( currentId );
const LLVector3& jointPos = pSkinData->mAlternateBindMatrix[i].getTranslation();
//If joint is a pelvis then handle by setting avPos+offset
if ( lookingForJoint == "mPelvis" )
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index bd5a4f7116..ac854e1736 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1002,6 +1002,14 @@
function="ShowHelp"
parameter="f1_help" />
</menu_item_call>
+ <menu_item_check
+ label="Enable Hints"
+ name="Enable Hints">
+ <on_check
+ control="EnableUIHints"/>
+ <on_click
+ function="ToggleUIHints"/>
+ </menu_item_check>
<!-- <menu_item_call
label="Tutorial"
name="Tutorial">
@@ -1035,14 +1043,6 @@
function="Floater.Show"
parameter="sl_about" />
</menu_item_call>
- <menu_item_check
- label="Enable Hints"
- name="Enable Hints">
- <on_check
- control="EnableUIHints"/>
- <on_click
- function="ToggleUIHints"/>
- </menu_item_check>
</menu>
<menu
create_jump_keys="true"
diff --git a/indra/newview/skins/default/xui/en/panel_landmarks.xml b/indra/newview/skins/default/xui/en/panel_landmarks.xml
index 2a5933e3e9..23d8cb11ca 100644
--- a/indra/newview/skins/default/xui/en/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmarks.xml
@@ -114,6 +114,7 @@
height="25"
layout="topleft"
name="options_gear_btn_panel"
+ user_resize="false"
width="32">
<menu_button
follows="bottom|left"
@@ -134,6 +135,7 @@
height="25"
layout="topleft"
name="add_btn_panel"
+ user_resize="false"
width="32">
<button
follows="bottom|left"
@@ -154,6 +156,7 @@
height="25"
layout="topleft"
name="dummy_panel"
+ user_resize="false"
width="212">
<icon
follows="bottom|left|right"
@@ -170,6 +173,7 @@
height="25"
layout="topleft"
name="trash_btn_panel"
+ user_resize="false"
width="31">
<dnd_button
follows="bottom|left"
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 2b6e082542..96633cb5b4 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -118,6 +118,7 @@
height="25"
layout="topleft"
name="options_gear_btn_panel"
+ user_resize="false"
width="32">
<menu_button
follows="bottom|left"
@@ -138,6 +139,7 @@
height="25"
layout="topleft"
name="add_btn_panel"
+ user_resize="false"
width="32">
<button
follows="bottom|left"
@@ -158,6 +160,7 @@
height="25"
layout="topleft"
name="dummy_panel"
+ user_resize="false"
width="212">
<icon
follows="bottom|left|right"
@@ -174,6 +177,7 @@
height="25"
layout="topleft"
name="trash_btn_panel"
+ user_resize="false"
width="31">
<dnd_button
follows="bottom|left"
diff --git a/install.xml b/install.xml
index 20fddca7f9..7fa5c2e91e 100755
--- a/install.xml
+++ b/install.xml
@@ -23,9 +23,9 @@
<key>linux</key>
<map>
<key>md5sum</key>
- <string>2ab29212a7f3acdaebf10059af816be0</string>
+ <string>c92c4c82bcd7940f6f31ce0262ca1ccc</string>
<key>url</key>
- <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-linux-20080812.tar.bz2</uri>
+ <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/GL-linux-20101203.tar.bz2</uri>
</map>
<key>linux64</key>
<map>
@@ -1075,7 +1075,7 @@ anguage Infrstructure (CLI) international standard</string>
<string>a6969a966e83ac3f0dc652df3e499797</string>
<key>url</key>
<uri>scp:install-packages.lindenlab.com:/local/www/install-packages/doc/llconvexdecomposition-0.1-darwin-20100914.tar.bz2</uri>
- </map>
+ </map>
</map>
</map>
<key>llconvexdecompositionstub</key>
@@ -1769,117 +1769,117 @@ put a link on their web site to the GLOD web site when possible.
<key>MSDTW</key>
<map>
<key>text</key>
- <string>MICROSOFT SOFTWARE LICENSE TERMS
-MICROSOFT DEBUGGING TOOLS FOR WINDOWS
-These license terms are an agreement between Microsoft Corporation (or based on where you live, one of
-its affiliates) and you. Please read them. They apply to the software named above, which includes the
+ <string>MICROSOFT SOFTWARE LICENSE TERMS
+MICROSOFT DEBUGGING TOOLS FOR WINDOWS
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of
+its affiliates) and you. Please read them. They apply to the software named above, which includes the
media on which you received it, if any. The terms also apply to any Microsoft
* updates,
* supplements,
-* Internet-based services
+* Internet-based services
* support services, and
-* Debugging symbol files that you may access over the internet
+* Debugging symbol files that you may access over the internet
for this software, unless other terms accompany those items. If so, those terms apply.
-By using the software, you accept these terms. If you do not accept them, do not use the
+By using the software, you accept these terms. If you do not accept them, do not use the
software.
If you comply with these license terms, you have the rights below.
-1. INSTALLATION AND USE RIGHTS. One user may install and use any number of copies of the
+1. INSTALLATION AND USE RIGHTS. One user may install and use any number of copies of the
software on your devices to design, develop, debug and test your programs.
2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
-a. Distributable Code. The software contains code that you are permitted to distribute in programs
+a. Distributable Code. The software contains code that you are permitted to distribute in programs
you develop if you comply with the terms below.
i. Right to Use and Distribute. The code and text files listed below are “Distributable Code.”
-* REDIST.TXT Files. You may copy and distribute the object code form of code listed in
+* REDIST.TXT Files. You may copy and distribute the object code form of code listed in
REDIST.TXT files.
-* Sample Code. You may modify, copy, and distribute the source and object code form of
+* Sample Code. You may modify, copy, and distribute the source and object code form of
code marked as “sample.”
-* Third Party Distribution. You may permit distributors of your programs to copy and
+* Third Party Distribution. You may permit distributors of your programs to copy and
distribute the Distributable Code as part of those programs.
ii. Distribution Requirements. For any Distributable Code you distribute, you must
* add significant primary functionality to it in your programs;
-* require distributors and external end users to agree to terms that protect it at least as much
-as this agreement;
+* require distributors and external end users to agree to terms that protect it at least as much
+as this agreement;
* display your valid copyright notice on your programs; and
-* indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees,
+* indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees,
related to the distribution or use of your programs.
iii. Distribution Restrictions. You may not
-* alter any copyright, trademark or patent notice in the Distributable Code;
-* distribute any symbol files which you may access or use under these license terms for the
+* alter any copyright, trademark or patent notice in the Distributable Code;
+* distribute any symbol files which you may access or use under these license terms for the
software;
-* use Microsoft’s trademarks in your programs’ names or in a way that suggests your
-programs come from or are endorsed by Microsoft;
+* use Microsoft’s trademarks in your programs’ names or in a way that suggests your
+programs come from or are endorsed by Microsoft;
* distribute Distributable Code to run on a platform other than the Windows platform;
* include Distributable Code in malicious, deceptive or unlawful programs; or
-* modify or distribute the source code of any Distributable Code so that any part of it
-becomes subject to an Excluded License. An Excluded License is one that requires, as a
+* modify or distribute the source code of any Distributable Code so that any part of it
+becomes subject to an Excluded License. An Excluded License is one that requires, as a
condition of use, modification or distribution, that
-* the code be disclosed or distributed in source code form; or
+* the code be disclosed or distributed in source code form; or
* others have the right to modify it.
-3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights
-to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights
-despite this limitation, you may use the software only as expressly permitted in this agreement. In
-doing so, you must comply with any technical limitations in the software that only allow you to use it in
+3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights
+to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights
+despite this limitation, you may use the software only as expressly permitted in this agreement. In
+doing so, you must comply with any technical limitations in the software that only allow you to use it in
certain ways. You may not
* work around any technical limitations in the software;
-* reverse engineer, decompile or disassemble the software, except and only to the extent that
+* reverse engineer, decompile or disassemble the software, except and only to the extent that
applicable law expressly permits, despite this limitation;
-* make more copies of the software than specified in this agreement or allowed by applicable law,
+* make more copies of the software than specified in this agreement or allowed by applicable law,
despite this limitation;
* publish the software for others to copy;
* rent, lease or lend the software;
* transfer the software or this agreement to any third party; or
-* use the software for commercial software hosting services.
-4. INTERNET-BASED SERVICES. Microsoft provides Internet-based services with the software. It may
+* use the software for commercial software hosting services.
+4. INTERNET-BASED SERVICES. Microsoft provides Internet-based services with the software. It may
change or cancel them at any time.
-a. Consent for Internet-Based Services. The software contains features which may connect to
-Microsoft or service provider computer systems over the Internet. In some cases, you will not
-receive a separate notice when they connect. You may switch these features on or you may
-choose not to use them. For more information about these features, see
-http://www.microsoft.com/info/privacy/default.mspx. By using these features, you consent to the transmission of
+a. Consent for Internet-Based Services. The software contains features which may connect to
+Microsoft or service provider computer systems over the Internet. In some cases, you will not
+receive a separate notice when they connect. You may switch these features on or you may
+choose not to use them. For more information about these features, see
+http://www.microsoft.com/info/privacy/default.mspx. By using these features, you consent to the transmission of
this information. Microsoft does not use the information to identify or contact you.
-b. Misuse of Internet-based Services. You may not use these services in any way that could
-harm them or impair anyone else’s use of them. You may not use the services to try to gain
-unauthorized access to any service, data, account or network by any means.
-
-5. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the
+b. Misuse of Internet-based Services. You may not use these services in any way that could
+harm them or impair anyone else’s use of them. You may not use the services to try to gain
+unauthorized access to any service, data, account or network by any means.
+
+5. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the
software.
-6. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy
+6. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy
and use the documentation for your internal, reference purposes.
-7. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You
-must comply with all domestic and international export laws and regulations that apply to the software.
-These laws include restrictions on destinations, end users and end use. For additional information, see
+7. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You
+must comply with all domestic and international export laws and regulations that apply to the software.
+These laws include restrictions on destinations, end users and end use. For additional information, see
www.microsoft.com/exporting.
8. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
-9. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based
-services and support services that you use, are the entire agreement for the software and support
+9. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based
+services and support services that you use, are the entire agreement for the software and support
services.
10. APPLICABLE LAW.
-a. United States. If you acquired the software in the United States, Washington state law governs
-the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of
-laws principles. The laws of the state where you live govern all other claims, including claims under
+a. United States. If you acquired the software in the United States, Washington state law governs
+the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of
+laws principles. The laws of the state where you live govern all other claims, including claims under
state consumer protection laws, unfair competition laws, and in tort.
-b. Outside the United States. If you acquired the software in any other country, the laws of that
+b. Outside the United States. If you acquired the software in any other country, the laws of that
country apply.
-11. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the
-laws of your country. You may also have rights with respect to the party from whom you acquired the
-software. This agreement does not change your rights under the laws of your country if the laws of
+11. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the
+laws of your country. You may also have rights with respect to the party from whom you acquired the
+software. This agreement does not change your rights under the laws of your country if the laws of
your country do not permit it to do so.
-12. DISCLAIMER OF WARRANTY. The software is licensed “as-is.” You bear the risk of using
-it. Microsoft gives no express warranties, guarantees or conditions. You may have
-additional consumer rights under your local laws which this agreement cannot change. To
-the extent permitted under your local laws, Microsoft excludes the implied warranties of
+12. DISCLAIMER OF WARRANTY. The software is licensed “as-is.” You bear the risk of using
+it. Microsoft gives no express warranties, guarantees or conditions. You may have
+additional consumer rights under your local laws which this agreement cannot change. To
+the extent permitted under your local laws, Microsoft excludes the implied warranties of
merchantability, fitness for a particular purpose and non-infringement.
-13. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from
-Microsoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any
-other damages, including consequential, lost profits, special, indirect or incidental
+13. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from
+Microsoft and its suppliers only direct damages up to U.S. $5.00. You cannot recover any
+other damages, including consequential, lost profits, special, indirect or incidental
damages.
This limitation applies to
-* anything related to the software, services, content (including code) on third party Internet sites, or
+* anything related to the software, services, content (including code) on third party Internet sites, or
third party programs; and
-* claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence,
+* claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence,
or other tort to the extent permitted by applicable law.
-It also applies even if Microsoft knew or should have known about the possibility of the damages. The
-above limitation or exclusion may not apply to you because your country may not allow the exclusion or
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The
+above limitation or exclusion may not apply to you because your country may not allow the exclusion or
limitation of incidental, consequential or other damages.
</string>
</map>
@@ -1897,7 +1897,7 @@ Second Life(TM) Viewer Artwork. Copyright (C) 2008 Linden Research, Inc.
Linden Research, Inc. ("Linden Lab") licenses the Second Life viewer
artwork and other works in the files distributed with this Notice under
-the Creative Commons Attribution-Share Alike 3.0 License, available at
+the Creative Commons Attribution-Share Alike 3.0 License, available at
http://creativecommons.org/licenses/by-sa/3.0/legalcode. For the license
summary, see http://creativecommons.org/licenses/by-sa/3.0/.