diff options
| author | William Todd Stinson <stinson@lindenlab.com> | 2012-09-20 19:43:54 -0700 | 
|---|---|---|
| committer | William Todd Stinson <stinson@lindenlab.com> | 2012-09-20 19:43:54 -0700 | 
| commit | c6a2ac0489859111276421d620abd156339c607d (patch) | |
| tree | 1bfbeb5d0ddcedd77854e5e5c8b6ad675ed6ef3c | |
| parent | ae127dc01ab10d407cf165ae2ad74060f65c1832 (diff) | |
| parent | 29cdf94e95d0a4365bd18860c4759f9a6a13f45a (diff) | |
Pull and merge from ssh://hg@bitbucket.org/stinson_linden/viewer-beta-drtvwr-179.
33 files changed, 828 insertions, 699 deletions
| @@ -311,3 +311,12 @@ de3be913f68813a9bac7d1c671fef96d1159bcd6 DRTVWR-202  7b22c612fc756e0ea63b10b163e81d107f85dbf8 DRTVWR-206  8c9085066c78ed5f6c9379dc054c82a6fcdb1851 DRTVWR-207  351eea5f9dc192fc5ddea3b02958de97677a0a12 3.3.4-release3 +af7b28e75bd5a629cd9e0dc46fb3f1757626f493 DRTVWR-212 +015012c2b740ccdec8a8c3d6e5f898449ecfe0b8 DRTVWR-213 +62b07aa81b1957897c3846292bb9412977b0af6c 3.3.4-beta6 +baa627938dbb7956f45e1eebef11ffe9e7f2e5bc 3.4.1-beta1 +ceed0b65a69f1eac20d523e0203320a32f9a3f3c DRTVWR-215 +733ceac77583874f3626ef7a15c105b83ef0f5bb 3.4.0-beta7 +97977c67245f52db20eb15f1918cc0f24778cabc 3.4.0-release +baa627938dbb7956f45e1eebef11ffe9e7f2e5bc 3.4.1-beta1 +5adb2b8f96c3cac88ad7c7d996d707f1b29df336 3.4.1-beta1 @@ -78,7 +78,7 @@ pre_build()      check_for "After 'autobuild configure'" ${build_dir}/packages/dictionaries -  end_section "Pre$variant" + end_section "Pre$variant"  }  package_llphysicsextensions_tpv() diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake index 09501e0406..73b3642ae6 100644 --- a/indra/cmake/GooglePerfTools.cmake +++ b/indra/cmake/GooglePerfTools.cmake @@ -3,7 +3,7 @@ include(Prebuilt)  # If you want to enable or disable TCMALLOC in viewer builds, this is the place.  # set ON or OFF as desired. -set (USE_TCMALLOC ON) +set (USE_TCMALLOC OFF)  if (STANDALONE)    include(FindGooglePerfTools) diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h index 9dd776ff57..f37e8459ff 100644 --- a/indra/llcommon/llmemory.h +++ b/indra/llcommon/llmemory.h @@ -58,27 +58,35 @@ inline void* ll_aligned_malloc_16(size_t size) // returned hunk MUST be freed wi  #endif  } -inline void* ll_aligned_realloc_16(void* ptr, size_t size) // returned hunk MUST be freed with ll_aligned_free_16(). +inline void ll_aligned_free_16(void *p)  {  #if defined(LL_WINDOWS) -	return _aligned_realloc(ptr, size, 16); +	_aligned_free(p);  #elif defined(LL_DARWIN) -	return realloc(ptr,size); // default osx malloc is 16 byte aligned. +	return free(p);  #else -	return realloc(ptr,size); // FIXME not guaranteed to be aligned. +	free(p); // posix_memalign() is compatible with heap deallocator  #endif  } -inline void ll_aligned_free_16(void *p) +inline void* ll_aligned_realloc_16(void* ptr, size_t size, size_t old_size) // returned hunk MUST be freed with ll_aligned_free_16().  {  #if defined(LL_WINDOWS) -	_aligned_free(p); +	return _aligned_realloc(ptr, size, 16);  #elif defined(LL_DARWIN) -	return free(p); +	return realloc(ptr,size); // default osx malloc is 16 byte aligned.  #else -	free(p); // posix_memalign() is compatible with heap deallocator +	//FIXME: memcpy is SLOW +	void* ret = ll_aligned_malloc_16(size); +	if (ptr) +	{ +		memcpy(ret, ptr, old_size); +		ll_aligned_free_16(ptr); +	} +	return ret;  #endif  } +  #else // USE_TCMALLOC  // ll_aligned_foo_16 are not needed with tcmalloc  #define ll_aligned_malloc_16 malloc diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index 53d56e96da..85ea14f9bc 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -6979,19 +6979,20 @@ void LLVolumeFace::pushVertex(const LLVector4a& pos, const LLVector4a& norm, con  {  	S32 new_verts = mNumVertices+1;  	S32 new_size = new_verts*16; -//	S32 old_size = mNumVertices*16; +	S32 old_size = mNumVertices*16;  	//positions -	mPositions = (LLVector4a*) ll_aligned_realloc_16(mPositions, new_size); +	mPositions = (LLVector4a*) ll_aligned_realloc_16(mPositions, new_size, old_size);  	ll_assert_aligned(mPositions,16);  	//normals -	mNormals = (LLVector4a*) ll_aligned_realloc_16(mNormals, new_size); +	mNormals = (LLVector4a*) ll_aligned_realloc_16(mNormals, new_size, old_size);  	ll_assert_aligned(mNormals,16);  	//tex coords  	new_size = ((new_verts*8)+0xF) & ~0xF; -	mTexCoords = (LLVector2*) ll_aligned_realloc_16(mTexCoords, new_size); +	old_size = ((mNumVertices*8)+0xF) & ~0xF; +	mTexCoords = (LLVector2*) ll_aligned_realloc_16(mTexCoords, new_size, old_size);  	ll_assert_aligned(mTexCoords,16); @@ -7045,7 +7046,7 @@ void LLVolumeFace::pushIndex(const U16& idx)  	S32 old_size = ((mNumIndices*2)+0xF) & ~0xF;  	if (new_size != old_size)  	{ -		mIndices = (U16*) ll_aligned_realloc_16(mIndices, new_size); +		mIndices = (U16*) ll_aligned_realloc_16(mIndices, new_size, old_size);  		ll_assert_aligned(mIndices,16);  	} @@ -7087,11 +7088,11 @@ void LLVolumeFace::appendFace(const LLVolumeFace& face, LLMatrix4& mat_in, LLMat  	}  	//allocate new buffer space -	mPositions = (LLVector4a*) ll_aligned_realloc_16(mPositions, new_count*sizeof(LLVector4a)); +	mPositions = (LLVector4a*) ll_aligned_realloc_16(mPositions, new_count*sizeof(LLVector4a), mNumVertices*sizeof(LLVector4a));  	ll_assert_aligned(mPositions, 16); -	mNormals = (LLVector4a*) ll_aligned_realloc_16(mNormals, new_count*sizeof(LLVector4a)); +	mNormals = (LLVector4a*) ll_aligned_realloc_16(mNormals, new_count*sizeof(LLVector4a), mNumVertices*sizeof(LLVector4a));  	ll_assert_aligned(mNormals, 16); -	mTexCoords = (LLVector2*) ll_aligned_realloc_16(mTexCoords, (new_count*sizeof(LLVector2)+0xF) & ~0xF); +	mTexCoords = (LLVector2*) ll_aligned_realloc_16(mTexCoords, (new_count*sizeof(LLVector2)+0xF) & ~0xF, (mNumVertices*sizeof(LLVector2)+0xF) & ~0xF);  	ll_assert_aligned(mTexCoords, 16);  	mNumVertices = new_count; @@ -7138,7 +7139,7 @@ void LLVolumeFace::appendFace(const LLVolumeFace& face, LLMatrix4& mat_in, LLMat  	new_count = mNumIndices + face.mNumIndices;  	//allocate new index buffer -	mIndices = (U16*) ll_aligned_realloc_16(mIndices, (new_count*sizeof(U16)+0xF) & ~0xF); +	mIndices = (U16*) ll_aligned_realloc_16(mIndices, (new_count*sizeof(U16)+0xF) & ~0xF, (mNumIndices*sizeof(U16)+0xF) & ~0xF);  	//get destination address into new index buffer  	U16* dst_idx = mIndices+mNumIndices; diff --git a/indra/llmath/tests/alignment_test.cpp b/indra/llmath/tests/alignment_test.cpp index ac0c45ae6f..9105b1c1fd 100644 --- a/indra/llmath/tests/alignment_test.cpp +++ b/indra/llmath/tests/alignment_test.cpp @@ -34,16 +34,6 @@  #include "../llsimdmath.h"  #include "../llvector4a.h" -void* operator new(size_t size) -{ -	return ll_aligned_malloc_16(size); -} - -void operator delete(void *p) -{ -	ll_aligned_free_16(p); -} -  namespace tut  { @@ -59,6 +49,27 @@ tut::alignment_test_t tut_alignment_test("LLAlignment");  LL_ALIGN_PREFIX(16)  class MyVector4a  { +public: +	void* operator new(size_t size) +	{ +		return ll_aligned_malloc_16(size); +	} + +	void operator delete(void *p) +	{ +		ll_aligned_free_16(p); +	} + +	void* operator new[](size_t count) +	{	// try to allocate count bytes for an array +		return ll_aligned_malloc_16(count); +	} + +	void operator delete[](void *p) +	{ +		ll_aligned_free_16(p); +	} +  	LLQuad mQ;  } LL_ALIGN_POSTFIX(16); @@ -78,7 +89,7 @@ void alignment_test_object_t::test<1>()  		align_ptr = ll_aligned_malloc_16(sizeof(MyVector4a));  		ensure("ll_aligned_malloc_16 failed", is_aligned(align_ptr,16)); -		align_ptr = ll_aligned_realloc_16(align_ptr,2*sizeof(MyVector4a)); +		align_ptr = ll_aligned_realloc_16(align_ptr,2*sizeof(MyVector4a), sizeof(MyVector4a));  		ensure("ll_aligned_realloc_16 failed", is_aligned(align_ptr,16));  		ll_aligned_free_16(align_ptr); diff --git a/indra/llmessage/tests/llhttpclient_test.cpp b/indra/llmessage/tests/llhttpclient_test.cpp index e338d4ec71..843c3bcc4b 100644 --- a/indra/llmessage/tests/llhttpclient_test.cpp +++ b/indra/llmessage/tests/llhttpclient_test.cpp @@ -258,7 +258,6 @@ namespace tut  	void HTTPClientTestObject::test<1>()  	{  		LLHTTPClient::get(local_server, newResult()); -  		runThePump();  		ensureStatusOK();  		ensure("result object wasn't destroyed", mResultDeleted); diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index dbd96673a1..0644d2638c 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -1074,7 +1074,7 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message)  			mAuthURL = message.getValue("url");  			mAuthRealm = message.getValue("realm");  			mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_AUTH_REQUEST); -		}		 +		}  		else if(message_name == "debug_message")  		{  			mDebugMessageText = message.getValue("message_text"); diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp index 28a14b23b9..eadef93c89 100644 --- a/indra/llrender/llvertexbuffer.cpp +++ b/indra/llrender/llvertexbuffer.cpp @@ -291,7 +291,6 @@ void LLVBOPool::seedPool() -  void LLVBOPool::cleanup()  {  	U32 size = LL_VBO_BLOCK_SIZE; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 0031362210..9ada161cd8 100755 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1564,6 +1564,7 @@ set(PACKAGE ON CACHE BOOL  if (WINDOWS)      set_target_properties(${VIEWER_BINARY_NAME}          PROPERTIES +        # *TODO -reenable this once we get server usage sorted out          LINK_FLAGS "/debug /NODEFAULTLIB:LIBCMT /SUBSYSTEM:WINDOWS ${TCMALLOC_LINK_FLAGS}"          LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\" /INCREMENTAL:NO"          LINK_FLAGS_RELEASE "/FORCE:MULTIPLE /MAP\"secondlife-bin.MAP\" /OPT:REF" diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index b4f6bf9383..313b310e1e 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -411,12 +411,6 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)  					continue;  				} -				if ((params.mVertexBuffer->getTypeMask() & mask) != mask) -				{ //FIXME! -					llwarns << "Missing required components, skipping render batch." << llendl; -					continue; -				} -  				LLRenderPass::applyModelMatrix(params); diff --git a/indra/newview/lldriverparam.h b/indra/newview/lldriverparam.h index 7a4d711d4e..c0976d1d43 100644 --- a/indra/newview/lldriverparam.h +++ b/indra/newview/lldriverparam.h @@ -83,6 +83,16 @@ public:  	LLDriverParam(LLWearable *wearablep);  	~LLDriverParam(); +	void* operator new(size_t size) +	{ +		return ll_aligned_malloc_16(size); +	} + +	void operator delete(void* ptr) +	{ +		ll_aligned_free_16(ptr); +	} +  	// Special: These functions are overridden by child classes  	LLDriverParamInfo*		getInfo() const { return (LLDriverParamInfo*)mInfo; }  	//   This sets mInfo and calls initialization functions diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 4a0c94df33..188f943f13 100644..100755 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -166,7 +166,8 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp)  	//special value to indicate uninitialized position  	mIndicesIndex	= 0xFFFFFFFF; - +	 +	mIndexInTex = 0;  	mTexture		= NULL;  	mTEOffset		= -1;  	mTextureIndex = 255; diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp index 809d344d01..bca4b5e447 100644 --- a/indra/newview/llfloaterbuycontents.cpp +++ b/indra/newview/llfloaterbuycontents.cpp @@ -211,8 +211,8 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,  		BOOL item_is_multi = FALSE;  		if ((inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED -		     || inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS) -		     && !(inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK)) +			|| inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS) +			&& !(inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK))  		{  			item_is_multi = TRUE;  		} diff --git a/indra/newview/llfloaterpathfindinglinksets.cpp b/indra/newview/llfloaterpathfindinglinksets.cpp index 0fe0e151fb..1e46d7a402 100644 --- a/indra/newview/llfloaterpathfindinglinksets.cpp +++ b/indra/newview/llfloaterpathfindinglinksets.cpp @@ -98,7 +98,11 @@ LLFloaterPathfindingLinksets::LLFloaterPathfindingLinksets(const LLSD& pSeed)  	mLabelSuggestedUseD(NULL),  	mEditD(NULL),  	mApplyEditsButton(NULL), -	mBeaconColor() +	mBeaconColor(), +	mPreviousValueA(LLPathfindingLinkset::MAX_WALKABILITY_VALUE), +	mPreviousValueB(LLPathfindingLinkset::MAX_WALKABILITY_VALUE), +	mPreviousValueC(LLPathfindingLinkset::MAX_WALKABILITY_VALUE), +	mPreviousValueD(LLPathfindingLinkset::MAX_WALKABILITY_VALUE)  {  } @@ -168,7 +172,7 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mEditA = findChild<LLLineEditor>("edit_a_value");  	llassert(mEditA != NULL);  	mEditA->setPrevalidate(LLTextValidate::validateNonNegativeS32); -	mEditA->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1)); +	mEditA->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1, mPreviousValueA));  	mLabelEditB = findChild<LLTextBase>("edit_b_label");  	llassert(mLabelEditB != NULL); @@ -179,7 +183,7 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mEditB = findChild<LLLineEditor>("edit_b_value");  	llassert(mEditB != NULL);  	mEditB->setPrevalidate(LLTextValidate::validateNonNegativeS32); -	mEditB->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1)); +	mEditB->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1, mPreviousValueB));  	mLabelEditC = findChild<LLTextBase>("edit_c_label");  	llassert(mLabelEditC != NULL); @@ -190,7 +194,7 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mEditC = findChild<LLLineEditor>("edit_c_value");  	llassert(mEditC != NULL);  	mEditC->setPrevalidate(LLTextValidate::validateNonNegativeS32); -	mEditC->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1)); +	mEditC->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1, mPreviousValueC));  	mLabelEditD = findChild<LLTextBase>("edit_d_label");  	llassert(mLabelEditD != NULL); @@ -201,7 +205,7 @@ BOOL LLFloaterPathfindingLinksets::postBuild()  	mEditD = findChild<LLLineEditor>("edit_d_value");  	llassert(mEditD != NULL);  	mEditD->setPrevalidate(LLTextValidate::validateNonNegativeS32); -	mEditD->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1)); +	mEditD->setCommitCallback(boost::bind(&LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered, this, _1, mPreviousValueD));  	mApplyEditsButton = findChild<LLButton>("apply_edit_values");  	llassert(mApplyEditsButton != NULL); @@ -323,26 +327,38 @@ void LLFloaterPathfindingLinksets::onClearFiltersClicked()  	rebuildObjectsScrollList();  } -void LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered(LLUICtrl *pUICtrl) +void LLFloaterPathfindingLinksets::onWalkabilityCoefficientEntered(LLUICtrl *pUICtrl, LLSD &pPreviousValue)  {  	LLLineEditor *pLineEditor = static_cast<LLLineEditor *>(pUICtrl);  	llassert(pLineEditor != NULL);  	const std::string &valueString = pLineEditor->getText(); -	S32 value; -	if (LLStringUtil::convertToS32(valueString, value)) +	S32 intValue; +	LLSD value; +	bool doResetValue = false; + +	if (valueString.empty())  	{ -		if ((value < LLPathfindingLinkset::MIN_WALKABILITY_VALUE) || (value > LLPathfindingLinkset::MAX_WALKABILITY_VALUE)) -		{ -			value = llclamp(value, LLPathfindingLinkset::MIN_WALKABILITY_VALUE, LLPathfindingLinkset::MAX_WALKABILITY_VALUE); -			pLineEditor->setValue(LLSD(value)); -		} +		value = pPreviousValue; +		doResetValue = true; +	} +	else if (LLStringUtil::convertToS32(valueString, intValue)) +	{ +		doResetValue = ((intValue < LLPathfindingLinkset::MIN_WALKABILITY_VALUE) || (intValue > LLPathfindingLinkset::MAX_WALKABILITY_VALUE)); +		value = LLSD(llclamp(intValue, LLPathfindingLinkset::MIN_WALKABILITY_VALUE, LLPathfindingLinkset::MAX_WALKABILITY_VALUE));  	}  	else  	{ -		pLineEditor->setValue(LLSD(LLPathfindingLinkset::MAX_WALKABILITY_VALUE)); +		value = LLSD(LLPathfindingLinkset::MAX_WALKABILITY_VALUE); +		doResetValue = true; +	} + +	if (doResetValue) +	{ +		pLineEditor->setValue(value);  	} +	pPreviousValue = value;  }  void LLFloaterPathfindingLinksets::onApplyChangesClicked() @@ -376,10 +392,14 @@ void LLFloaterPathfindingLinksets::updateEditFieldValues()  		const LLPathfindingLinkset *linkset = dynamic_cast<const LLPathfindingLinkset *>(firstSelectedObjectPtr.get());  		setEditLinksetUse(linkset->getLinksetUse()); -		mEditA->setValue(LLSD(linkset->getWalkabilityCoefficientA())); -		mEditB->setValue(LLSD(linkset->getWalkabilityCoefficientB())); -		mEditC->setValue(LLSD(linkset->getWalkabilityCoefficientC())); -		mEditD->setValue(LLSD(linkset->getWalkabilityCoefficientD())); +		mPreviousValueA = LLSD(linkset->getWalkabilityCoefficientA()); +		mPreviousValueB = LLSD(linkset->getWalkabilityCoefficientB()); +		mPreviousValueC = LLSD(linkset->getWalkabilityCoefficientC()); +		mPreviousValueD = LLSD(linkset->getWalkabilityCoefficientD()); +		mEditA->setValue(mPreviousValueA); +		mEditB->setValue(mPreviousValueB); +		mEditC->setValue(mPreviousValueC); +		mEditD->setValue(mPreviousValueD);  	}  } diff --git a/indra/newview/llfloaterpathfindinglinksets.h b/indra/newview/llfloaterpathfindinglinksets.h index 6538308122..7149da9215 100644 --- a/indra/newview/llfloaterpathfindinglinksets.h +++ b/indra/newview/llfloaterpathfindinglinksets.h @@ -74,7 +74,7 @@ private:  	void onApplyAllFilters();  	void onClearFiltersClicked(); -	void onWalkabilityCoefficientEntered(LLUICtrl *pUICtrl); +	void onWalkabilityCoefficientEntered(LLUICtrl *pUICtrl, LLSD &pPreviousValue);  	void onApplyChangesClicked();  	void clearFilters(); @@ -132,6 +132,11 @@ private:  	LLButton         *mApplyEditsButton;  	LLColor4         mBeaconColor; + +	LLSD             mPreviousValueA; +	LLSD             mPreviousValueB; +	LLSD             mPreviousValueC; +	LLSD             mPreviousValueD;  };  #endif // LL_LLFLOATERPATHFINDINGLINKSETS_H diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index d4080ab3f7..8e540a0cc8 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -2234,12 +2234,11 @@ void LLFolderView::doIdle()  		mDebugFilters = debug_filters;  		arrangeAll();  	} -  	BOOL filter_modified_and_active = mFilter->isModified() && mFilter->isNotDefault();  	mNeedsAutoSelect = filter_modified_and_active &&  						!(gFocusMgr.childHasKeyboardFocus(this) || gFocusMgr.getMouseCapture());  	mFilter->clearModified(); -			 +  	// filter to determine visibility before arranging  	filterFromRoot(); diff --git a/indra/newview/llpanelmarketplaceinbox.cpp b/indra/newview/llpanelmarketplaceinbox.cpp index 66c9c323cb..5d75375847 100644 --- a/indra/newview/llpanelmarketplaceinbox.cpp +++ b/indra/newview/llpanelmarketplaceinbox.cpp @@ -115,8 +115,8 @@ void LLPanelMarketplaceInbox::onFocusReceived()  	if (sidepanel_inventory)  	{  		sidepanel_inventory->clearSelections(true, false); -	} - +		} +	  	gSavedPerAccountSettings.setU32("LastInventoryInboxActivity", time_corrected());  } @@ -168,8 +168,8 @@ U32 LLPanelMarketplaceInbox::getFreshItemCount() const  				if (inbox_item_view && inbox_item_view->isFresh())  				{  					fresh_item_count++; -				} -			} +		} +	}  		}  	} diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp index 70f3b5335e..9902d047e4 100644 --- a/indra/newview/llpolymesh.cpp +++ b/indra/newview/llpolymesh.cpp @@ -241,7 +241,7 @@ BOOL LLPolyMeshSharedData::allocateVertexData( U32 numVertices )  			mBaseNormals[i].clear();  			mBaseBinormals[i].clear();  			mTexCoords[i].clear(); -            mWeights[i] = 0.f; +			mWeights[i] = 0.f;          }          mNumVertices = numVertices;          return TRUE; diff --git a/indra/newview/llpolymesh.h b/indra/newview/llpolymesh.h index ffb11a3f7e..850171d169 100644 --- a/indra/newview/llpolymesh.h +++ b/indra/newview/llpolymesh.h @@ -406,6 +406,16 @@ public:  	LLPolySkeletalDistortion(LLVOAvatar *avatarp);  	~LLPolySkeletalDistortion(); +	void* operator new(size_t size) +	{ +		return ll_aligned_malloc_16(size); +	} + +	void operator delete(void* ptr) +	{ +		ll_aligned_free_16(ptr); +	} +  	// Special: These functions are overridden by child classes  	LLPolySkeletalDistortionInfo*	getInfo() const { return (LLPolySkeletalDistortionInfo*)mInfo; }  	//   This sets mInfo and calls initialization functions diff --git a/indra/newview/llpolymorph.cpp b/indra/newview/llpolymorph.cpp index d25d1420ee..bd96608641 100644 --- a/indra/newview/llpolymorph.cpp +++ b/indra/newview/llpolymorph.cpp @@ -73,9 +73,9 @@ LLPolyMorphData::LLPolyMorphData(const LLPolyMorphData &rhs) :  {  	const S32 numVertices = mNumIndices; -	mCoords = new LLVector4a[numVertices]; -	mNormals = new LLVector4a[numVertices]; -	mBinormals = new LLVector4a[numVertices]; +	mCoords = static_cast<LLVector4a*>(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a))); +	mNormals = static_cast<LLVector4a*>(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a))); +	mBinormals = static_cast<LLVector4a*>(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));  	mTexCoords = new LLVector2[numVertices];  	mVertexIndices = new U32[numVertices]; @@ -89,17 +89,12 @@ LLPolyMorphData::LLPolyMorphData(const LLPolyMorphData &rhs) :  	}  } -  //-----------------------------------------------------------------------------  // ~LLPolyMorphData()  //-----------------------------------------------------------------------------  LLPolyMorphData::~LLPolyMorphData()  { -	delete [] mVertexIndices; -	delete [] mCoords; -	delete [] mNormals; -	delete [] mBinormals; -	delete [] mTexCoords; +	freeData();  }  //----------------------------------------------------------------------------- @@ -119,11 +114,16 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)  	}  	//------------------------------------------------------------------------- +	// free any existing data +	//------------------------------------------------------------------------- +	freeData(); + +	//-------------------------------------------------------------------------  	// allocate vertices  	//------------------------------------------------------------------------- -	mCoords = new LLVector4a[numVertices]; -	mNormals = new LLVector4a[numVertices]; -	mBinormals = new LLVector4a[numVertices]; +	mCoords = static_cast<LLVector4a*>(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a))); +	mNormals = static_cast<LLVector4a*>(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a))); +	mBinormals = static_cast<LLVector4a*>(ll_aligned_malloc_16(numVertices * sizeof(LLVector4a)));  	mTexCoords = new LLVector2[numVertices];  	// Actually, we are allocating more space than we need for the skiplist  	mVertexIndices = new U32[numVertices]; @@ -207,6 +207,42 @@ BOOL LLPolyMorphData::loadBinary(LLFILE *fp, LLPolyMeshSharedData *mesh)  }  //----------------------------------------------------------------------------- +// freeData() +//----------------------------------------------------------------------------- +void LLPolyMorphData::freeData() +{ +	if (mCoords != NULL) +	{ +		ll_aligned_free_16(mCoords); +		mCoords = NULL; +	} + +	if (mNormals != NULL) +	{ +		ll_aligned_free_16(mNormals); +		mNormals = NULL; +	} + +	if (mBinormals != NULL) +	{ +		ll_aligned_free_16(mBinormals); +		mBinormals = NULL; +	} + +	if (mTexCoords != NULL) +	{ +		delete [] mTexCoords; +		mTexCoords = NULL; +	} + +	if (mVertexIndices != NULL) +	{ +		delete [] mVertexIndices; +		mVertexIndices = NULL; +	} +} + +//-----------------------------------------------------------------------------  // LLPolyMorphTargetInfo()  //-----------------------------------------------------------------------------  LLPolyMorphTargetInfo::LLPolyMorphTargetInfo() diff --git a/indra/newview/llpolymorph.h b/indra/newview/llpolymorph.h index 46e23b7792..678599d7e1 100644 --- a/indra/newview/llpolymorph.h +++ b/indra/newview/llpolymorph.h @@ -48,6 +48,16 @@ public:  	~LLPolyMorphData();  	LLPolyMorphData(const LLPolyMorphData &rhs); +	void* operator new(size_t size) +	{ +		return ll_aligned_malloc_16(size); +	} + +	void operator delete(void* ptr) +	{ +		ll_aligned_free_16(ptr); +	} +  	BOOL			loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh);  	const std::string& getName() { return mName; } @@ -67,6 +77,9 @@ public:  	F32					mMaxDistortion;		// maximum single vertex distortion in a given morph  	LLVector4a			mAvgDistortion;		// average vertex distortion, to infer directionality of the morph  	LLPolyMeshSharedData*	mMesh; + +private: +	void freeData();  };  //----------------------------------------------------------------------------- diff --git a/indra/newview/lltexlayerparams.h b/indra/newview/lltexlayerparams.h index 2c0da60b48..fffe20208f 100644 --- a/indra/newview/lltexlayerparams.h +++ b/indra/newview/lltexlayerparams.h @@ -67,6 +67,16 @@ public:  	/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const; +	void* operator new(size_t size) +	{ +		return ll_aligned_malloc_16(size); +	} + +	void operator delete(void* ptr) +	{ +		ll_aligned_free_16(ptr); +	} +  	// LLVisualParam Virtual functions  	///*virtual*/ BOOL		parseData(LLXmlTreeNode* node);  	/*virtual*/ void		apply( ESex avatar_sex ) {} @@ -143,6 +153,16 @@ public:  	LLTexLayerParamColor( LLVOAvatar* avatar );  	/* virtual */ ~LLTexLayerParamColor(); +	void* operator new(size_t size) +	{ +		return ll_aligned_malloc_16(size); +	} + +	void operator delete(void* ptr) +	{ +		ll_aligned_free_16(ptr); +	} +  	/*virtual*/ LLViewerVisualParam* cloneParam(LLWearable* wearable = NULL) const;  	// LLVisualParam Virtual functions diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 01a54509ef..d11e7e32c7 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5134,12 +5134,6 @@ class LLEditDelete : public view_listener_t  	}  }; -bool enable_object_return() -{ -	return (!LLSelectMgr::getInstance()->getSelection()->isEmpty() && -		(gAgent.isGodlike() || can_derez(DRD_RETURN_TO_OWNER))); -} -  void handle_spellcheck_replace_with_suggestion(const LLUICtrl* ctrl, const LLSD& param)  {  	const LLContextMenu* menu = dynamic_cast<const LLContextMenu*>(ctrl->getParent()); @@ -5212,6 +5206,12 @@ bool enable_spellcheck_add_to_ignore(const LLUICtrl* ctrl)  	return (spellcheck_handler) && (spellcheck_handler->canAddToIgnore());  } +bool enable_object_return() +{ +	return (!LLSelectMgr::getInstance()->getSelection()->isEmpty() && +		(gAgent.isGodlike() || can_derez(DRD_RETURN_TO_OWNER))); +} +  bool enable_object_delete()  {  	bool new_value =  diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 444bbb2776..2bc7430e06 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -237,6 +237,7 @@ LLViewerObject::LLViewerObject(const LLUUID &id, const LLPCode pcode, LLViewerRe  	mTimeDilation(1.f),  	mRotTime(0.f),  	mAngularVelocityRot(), +	mPreviousRotation(),  	mState(0),  	mMedia(NULL),  	mClickAction(0), @@ -784,7 +785,7 @@ BOOL LLViewerObject::setDrawableParent(LLDrawable* parentp)  	}  	LLDrawable* old_parent = mDrawable->mParent;  	mDrawable->mParent = parentp;  -	 +		  	if (parentp && mDrawable->isActive())  	{  		parentp->makeActive(); @@ -1410,9 +1411,10 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  #else  					val = (U16 *) &data[count];  #endif -					setAngularVelocity(	U16_to_F32(val[VX], -size, size), +					new_angv.set(U16_to_F32(val[VX], -size, size),  										U16_to_F32(val[VY], -size, size),  										U16_to_F32(val[VZ], -size, size)); +					setAngularVelocity(new_angv);  					break;  				case 16: @@ -1436,9 +1438,10 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  					new_rot.mQ[VZ] = U8_to_F32(data[11], -1.f, 1.f);  					new_rot.mQ[VW] = U8_to_F32(data[12], -1.f, 1.f); -					setAngularVelocity(	U8_to_F32(data[13], -size, size), +					new_angv.set(U8_to_F32(data[13], -size, size),  										U8_to_F32(data[14], -size, size),  										U8_to_F32(data[15], -size, size) ); +					setAngularVelocity(new_angv);  					break;  				} @@ -1510,9 +1513,10 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  				dp->unpackU16(val[VX], "AccX");  				dp->unpackU16(val[VY], "AccY");  				dp->unpackU16(val[VZ], "AccZ"); -				setAngularVelocity(	U16_to_F32(val[VX], -64.f, 64.f), +				new_angv.set(U16_to_F32(val[VX], -64.f, 64.f),  									U16_to_F32(val[VY], -64.f, 64.f),  									U16_to_F32(val[VZ], -64.f, 64.f)); +				setAngularVelocity(new_angv);  			}  			break;  			case OUT_FULL_COMPRESSED: @@ -1556,8 +1560,8 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  				if (value & 0x80)  				{ -					dp->unpackVector3(vec, "Omega"); -					setAngularVelocity(vec); +					dp->unpackVector3(new_angv, "Omega"); +					setAngularVelocity(new_angv);  				}  				if (value & 0x20) @@ -2038,12 +2042,16 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  		}  	} -	if (new_rot != getRotation() -		|| new_angv != old_angv) +	if ((new_rot != getRotation()) +		|| (new_angv != old_angv)) +	{ +		if (new_rot != mPreviousRotation)  	{ -		if (new_angv != old_angv) +			resetRot(); +		} +		else if (new_angv != old_angv)  		{ -			if (flagUsePhysics()) +			if (flagUsePhysics() || new_angv.isExactlyZero())  			{  				resetRot();  			} @@ -2053,6 +2061,9 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,  			}  		} +		// Remember the last rotation value +		mPreviousRotation = new_rot; +  		// Set the rotation of the object followed by adjusting for the accumulated angular velocity (llSetTargetOmega)  		setRotation(new_rot * mAngularVelocityRot);  		setChanged(ROTATED | SILHOUETTE); @@ -2159,29 +2170,29 @@ void LLViewerObject::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)  	if (!mDead)  	{ -		// CRO - don't velocity interp linked objects! -		// Leviathan - but DO velocity interp joints -		if (!mStatic && sVelocityInterpolate && !isSelected()) -		{ -			// calculate dt from last update -			F32 dt_raw = (F32)(time - mLastInterpUpdateSecs); -			F32 dt = mTimeDilation * dt_raw; +	// CRO - don't velocity interp linked objects! +	// Leviathan - but DO velocity interp joints +	if (!mStatic && sVelocityInterpolate && !isSelected()) +	{ +		// calculate dt from last update +		F32 dt_raw = (F32)(time - mLastInterpUpdateSecs); +		F32 dt = mTimeDilation * dt_raw;  			applyAngularVelocity(dt); -			 +  			if (isAttachment()) -			{ -				mLastInterpUpdateSecs = time; +				{ +					mLastInterpUpdateSecs = time;  				return; -			} -			else -			{	// Move object based on it's velocity and rotation -				interpolateLinearMotion(time, dt); -			}  		} - -		updateDrawable(FALSE); +		else +		{	// Move object based on it's velocity and rotation +			interpolateLinearMotion(time, dt); +		}  	} + +	updateDrawable(FALSE); +}  } @@ -5384,9 +5395,9 @@ void LLViewerObject::setPhysicsShapeType(U8 type)  	mPhysicsShapeUnknown = false;  	if (type != mPhysicsShapeType)  	{ -		mPhysicsShapeType = type; -		mCostStale = true; -	} +	mPhysicsShapeType = type; +	mCostStale = true; +}  }  void LLViewerObject::setPhysicsGravity(F32 gravity) diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h index 277bd1c430..1fb30db8f2 100644 --- a/indra/newview/llviewerobject.h +++ b/indra/newview/llviewerobject.h @@ -725,6 +725,7 @@ protected:  	F32				mTimeDilation;				// Time dilation sent with the object.  	F32				mRotTime;					// Amount (in seconds) that object has rotated according to angular velocity (llSetTargetOmega)  	LLQuaternion	mAngularVelocityRot;		// accumulated rotation from the angular velocity computations +	LLQuaternion	mPreviousRotation;  	U8				mState;	// legacy  	LLViewerObjectMedia* mMedia;	// NULL if no media associated diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 920bac93a2..e324d60fec 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2328,7 +2328,7 @@ void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result, S32 water_cl  		bound_shader = true;  		gOcclusionCubeProgram.bind();  	} - +	  	if (sUseOcclusion > 1)  	{  		if (mCubeVB.isNull()) @@ -2506,7 +2506,7 @@ void LLPipeline::doOcclusion(LLCamera& camera)  			{  				gOcclusionCubeProgram.bind();  			} -			} +		}  		if (mCubeVB.isNull())  		{ //cube VB will be used for issuing occlusion queries @@ -2563,11 +2563,6 @@ void LLPipeline::updateGL()  			glu->mInQ = FALSE;  			LLGLUpdate::sGLQ.pop_front();  		} - -	{ //seed VBO Pools -		LLFastTimer t(FTM_SEED_VBO_POOLS); -		LLVertexBuffer::seedPools(); -	}  	}  	{ //seed VBO Pools @@ -3376,11 +3371,11 @@ void renderScriptedTouchBeacons(LLDrawable* drawablep)  				if (facep)  				{  					gPipeline.mHighlightFaces.push_back(facep); -				}  			}  		}  	}  } +}  void renderPhysicalBeacons(LLDrawable* drawablep)  { @@ -3405,11 +3400,11 @@ void renderPhysicalBeacons(LLDrawable* drawablep)  				if (facep)  				{  					gPipeline.mHighlightFaces.push_back(facep); -				}  			}  		}  	}  } +}  void renderMOAPBeacons(LLDrawable* drawablep)  { @@ -3445,11 +3440,11 @@ void renderMOAPBeacons(LLDrawable* drawablep)  				if (facep)  				{  					gPipeline.mHighlightFaces.push_back(facep); -				}  			}  		}  	}  } +}  void renderParticleBeacons(LLDrawable* drawablep)  { @@ -3474,11 +3469,11 @@ void renderParticleBeacons(LLDrawable* drawablep)  				if (facep)  				{  					gPipeline.mHighlightFaces.push_back(facep); -				}  			}  		}  	}  } +}  void renderSoundHighlights(LLDrawable* drawablep)  { @@ -3496,11 +3491,11 @@ void renderSoundHighlights(LLDrawable* drawablep)  				if (facep)  				{  					gPipeline.mHighlightFaces.push_back(facep); -				}  			}  		}  	}  } +}  void LLPipeline::postSort(LLCamera& camera)  { @@ -3713,7 +3708,7 @@ void LLPipeline::postSort(LLCamera& camera)  						if (facep)  						{  							gPipeline.mSelectedFaces.push_back(facep); -						} +					}  					}  					return true;  				} diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml index 6ee708ed62..845df1f050 100644 --- a/indra/newview/skins/default/xui/de/menu_viewer.xml +++ b/indra/newview/skins/default/xui/de/menu_viewer.xml @@ -21,6 +21,7 @@  			<menu_item_call label="Beschäftigt" name="Set Busy"/>  		</menu>  		<menu_item_call label="L$ kaufen..." name="Buy and Sell L$"/> +		<menu_item_call label="Händler-Outbox..." name="MerchantOutbox"/>  		<menu_item_call label="Kontoübersicht..." name="Manage My Account">  			<menu_item_call.on_click name="ManageMyAccount_url" parameter="WebLaunchJoinNow,http://secondlife.com/account/index.php?lang=de"/>  		</menu_item_call> diff --git a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml index 9bc5c7d5a4..4a457fb929 100644 --- a/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml +++ b/indra/newview/skins/default/xui/en/floater_pathfinding_linksets.xml @@ -6,7 +6,7 @@      height="395"      width="1075"      min_height="395" -    min_width="1075" +    min_width="990"      layout="topleft"      name="floater_pathfinding_linksets"      help_topic="floater_pathfinding_linksets" @@ -524,7 +524,7 @@          tool_tip="Walkability for characters of type D.  Example character type is other."          width="45" />      <button -        follows="right|bottom" +        follows="left|bottom"          height="21"          label="Apply changes"          layout="topleft" diff --git a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml index 2e29c61cb2..6021ba0a5a 100644 --- a/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml +++ b/indra/newview/skins/default/xui/en/floater_texture_ctrl.xml @@ -134,16 +134,6 @@       top_delta="-25"       name="Pipette"       width="28" /> -   <check_box -     follows="left|bottom" -     height="20" -     initial_value="true" -     label="Live Preview" -     layout="topleft" -     left="4" -     name="apply_immediate_check" -     top="262" -     width="120" />     <text       follows="left|bottom"       height="20" diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index f0a126724b..8e6de6ed4f 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -7576,18 +7576,6 @@ We cannot display a preview of this texture because it is no-copy and/or no-tran    <notification     icon="alertmodal.tga" -   name="LivePreviewUnavailable" -   type="alert"> -    -We cannot display a preview of this texture because it is no-copy and/or no-transfer. -  <usetemplate -    ignoretext="Warn me that Live Preview mode is not available for no-copy and/or no-transfer textures" -    name="okignore" -    yestext="OK"/> -  </notification> - -  <notification -   icon="alertmodal.tga"     name="ConfirmLeaveCall"     type="alert">  Are you sure you want to leave this call? diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml index e9a787cef0..e69a17e037 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml @@ -1,36 +1,36 @@  <?xml version="1.0" encoding="utf-8" standalone="yes" ?>  <panel -    height="570" -    layout="topleft" -    name="object properties" -    help_topic="object_properties" -    title="Object Profile" -    width="333"> -  <panel.string -      name="text deed continued"> -    Deed -  </panel.string> -  <panel.string -      name="text deed"> -    Deed -  </panel.string> -  <panel.string -      name="text modify info 1"> -    You can modify this object -  </panel.string> -  <panel.string -      name="text modify info 2"> -    You can modify these objects -  </panel.string> -  <panel.string -      name="text modify info 3"> -    You can't modify this object -  </panel.string> -  <panel.string -      name="text modify info 4"> -    You can't modify these objects -  </panel.string> -  <panel.string +	 height="570" +	 layout="topleft" +	 name="object properties" +	 help_topic="object_properties" +	 title="Object Profile" +	 width="333"> +	 <panel.string +	  name="text deed continued"> +		Deed +	 </panel.string> +	<panel.string +	 name="text deed"> +		Deed +	</panel.string> +            <panel.string +             name="text modify info 1"> +                You can modify this object +            </panel.string> +            <panel.string +             name="text modify info 2"> +                You can modify these objects +            </panel.string> +            <panel.string +             name="text modify info 3"> +                You can't modify this object +            </panel.string> +            <panel.string +             name="text modify info 4"> +                You can't modify these objects +            </panel.string> +            <panel.string        name="text modify info 5">      You can't modify this object across a region boundary    </panel.string> @@ -39,399 +39,399 @@      You can't modify these objects across a region boundary    </panel.string>    <panel.string -      name="text modify warning"> -    This object has linked parts -  </panel.string> -  <panel.string -      name="Cost Default"> -    Price: L$ -  </panel.string> -  <panel.string -      name="Cost Total"> -    Total Price: L$ -  </panel.string> -  <panel.string -      name="Cost Per Unit"> -    Price Per: L$ -  </panel.string> -  <panel.string -      name="Cost Mixed"> -    Mixed Price -  </panel.string> -  <panel.string -      name="Sale Mixed"> -    Mixed Sale -  </panel.string> -  <button -      follows="top|left" -      height="24" -      image_hover_unselected="BackButton_Over" -      image_pressed="BackButton_Press" -      image_unselected="BackButton_Off" -      layout="topleft" -      left="8" -      name="back_btn" -      tab_stop="false" -      top="0" -      width="30" -      use_draw_context_alpha="false" /> -  <text -      follows="top|left|right" -      font="SansSerifHuge" -      height="26" -      layout="topleft" -      left_pad="10" -      name="title" -      text_color="LtGray" -      top="0" -      use_ellipses="true" -      value="Object Profile" -      width="290" /> -  <text -      follows="top|left" -      height="13" -      layout="topleft" -      left="45" -      name="where" -      text_color="LtGray_50" -      value="(Inworld)" -      width="150" /> -  <panel -      follows="all" -      height="490" -      label="" -      layout="topleft" -      left="10" -      help_topic="" -      name="properties_panel" -      top="45" -      width="313" -      background_visible="true" -      bg_alpha_color="DkGray2"> -    <text -        type="string" -        length="1" -        follows="left|top" -        height="10" -        layout="topleft" -        left="5" -        name="Name:" -        top="10" -        width="78"> -      Name: -    </text> -    <line_editor -        border_style="line" -        border_thickness="1" -        follows="left|top|right" -        height="20" -        layout="topleft" -        left_delta="78" -        max_length_bytes="63" -        name="Object Name" -        top_delta="0" -        width="225" /> -    <text -        type="string" -        length="1" -        follows="left|top" -        height="10" -        layout="topleft" -        left="5" -        name="Description:" -        top_pad="10" -        width="78"> -      Description: -    </text> -    <line_editor -        border_style="line" -        border_thickness="1" -        follows="left|top|right" -        height="23" -        layout="topleft" -        name="Object Description" -        select_on_focus="true" -        left_delta="78" -        max_length_bytes="127" -        top_delta="-5" -        width="225"/> -    <text -        type="string" -        length="1" -        follows="left|top" -        height="23" -        layout="topleft" -        left="5" -        name="CreatorNameLabel" -        top_pad="12" -        width="78"> -      Creator: -    </text> -    <text -        type="string" -        follows="left|right|top" -        font="SansSerifSmall" -        height="15" -        layout="topleft" -        left_pad="0" -        name="Creator Name" -        top_delta="0" -        translate="false" -        use_ellipses="true"  -        width="225"> -      TestString PleaseIgnore -    </text> -    <text -        type="string" -        length="1" -        follows="left|top" -        height="23" -        layout="topleft" -        left="5" -        name="Owner:" -        top_pad="15" -        width="78"> -      Owner: -    </text> -    <text -        type="string" -        follows="left|right|top" -        font="SansSerifSmall" -        height="15" -        layout="topleft" -        left_pad="0" -        name="Owner Name" -        top_delta="0" -        translate="false" -        use_ellipses="true"  -        width="225"> -      TestString PleaseIgnore -    </text> -    <text -        type="string" -        length="1" -        follows="left|top" -        height="23" -        layout="topleft" -        left="5" -        name="Group_label" -        top_pad="15" -        width="78"> -      Group: -    </text> +             name="text modify warning"> +                This object has linked parts +            </panel.string> +            <panel.string +             name="Cost Default"> +                Price: L$ +            </panel.string> +            <panel.string +             name="Cost Total"> +                Total Price: L$ +            </panel.string> +            <panel.string +             name="Cost Per Unit"> +                Price Per: L$ +            </panel.string> +            <panel.string +             name="Cost Mixed"> +                Mixed Price +            </panel.string> +            <panel.string +             name="Sale Mixed"> +                Mixed Sale +            </panel.string>      <button -        follows="top|left" -        height="10" -        image_disabled="Activate_Checkmark" -        image_selected="Activate_Checkmark" -        image_unselected="Activate_Checkmark" -        image_color="White_50" -        layout="topleft" -        left_pad="0" -        top_delta="0" -        name="button set group" -        tab_stop="false" -        tool_tip="Choose a group to share this object's permissions" -        width="10" /> -    <name_box -        follows="left|top" -        height="18" -        initial_value="Loading..." -        layout="topleft" -        left_pad="5" -        top_delta="-1" -        name="Group Name Proxy" -        width="150" /> -    <button -        follows="top|left" -        height="23" -        label="Deed" -        label_selected="Deed" -        layout="topleft" -        name="button deed" -        top_pad="0" -        left="81" -        tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer." -        width="100" /> -    <text -        type="string" -        length="1" -        follows="left|top" -        height="9" -        layout="topleft" -        top_pad="5" -        left="5" -        name="label click action" -        width="280"> -      Click to: -    </text> -    <combo_box -        follows="left|top" -        height="23" -        layout="topleft" -        name="clickaction" -        width="168" -        left="81"> -      <combo_box.item -          label="Touch  (default)" -          name="Touch/grab(default)" +     follows="top|left" +     height="24" +     image_hover_unselected="BackButton_Over" +     image_pressed="BackButton_Press" +     image_unselected="BackButton_Off" +     layout="topleft" +     left="8" +     name="back_btn" +     tab_stop="false" +     top="0" +     width="30" +     use_draw_context_alpha="false" /> +        <text +     follows="top|left|right" +     font="SansSerifHuge" +     height="26" +     layout="topleft" +     left_pad="10" +     name="title" +     text_color="LtGray" +     top="0" +     use_ellipses="true" +     value="Object Profile" +     width="290" /> +	    <text +     follows="top|left" +     height="13" +     layout="topleft" +     left="45" +     name="where" +     text_color="LtGray_50" +     value="(Inworld)" +     width="150" /> +	<panel +         follows="all" +         height="490" +         label="" +         layout="topleft" +         left="10" +         help_topic="" +         name="properties_panel" +         top="45" +         width="313" +   background_visible="true" +   bg_alpha_color="DkGray2"> +	    	    <text +		     type="string" +		     length="1" +		     follows="left|top" +		     height="10" +		     layout="topleft" +		     left="5" +             name="Name:" +		     top="10" +		     width="78"> +	        Name: +	    </text> +	    <line_editor +		     border_style="line" +		     border_thickness="1" +	    	 follows="left|top|right" +		     height="20" +		     layout="topleft" +	    	 left_delta="78" +		     max_length_bytes="63" +             name="Object Name" +	    	 top_delta="0" +		     width="225" /> +	    <text +	    type="string" +	    length="1" +	    follows="left|top" +	    height="10" +	    layout="topleft" +	    left="5" +             name="Description:" +	    top_pad="10" +	    width="78"> +	        Description: +	    </text> +            <line_editor +	     border_style="line" +    	     border_thickness="1" +             follows="left|top|right" +             height="23" +             layout="topleft" +             name="Object Description" +             select_on_focus="true" +    		 left_delta="78" +		     max_length_bytes="127" +	    	 top_delta="-5" +	    	 width="225"/> +	    <text +		     type="string" +		     length="1" +		     follows="left|top" +		     height="23" +		     layout="topleft" +    		 left="5" +		 name="CreatorNameLabel" +		  top_pad="12" +		     width="78"> +	        Creator: +    	</text> +	    <text +		     type="string" +     follows="left|right|top" +     font="SansSerifSmall" +     height="15" +     layout="topleft" +     left_pad="0" +             name="Creator Name" +		     top_delta="0" +		     translate="false" +         use_ellipses="true"  +		     width="225"> +	        TestString PleaseIgnore +	     </text> +	    <text +			 type="string" +			 length="1" +			 follows="left|top" +			 height="23" +			layout="topleft" +			left="5" +			name="Owner:" +			top_pad="15" +			 width="78"> +			    Owner: +	     </text> +	     <text +			    type="string" +			    follows="left|right|top" +			    font="SansSerifSmall" +			    height="15" +			    layout="topleft" +			    left_pad="0" +			    name="Owner Name" +			    top_delta="0" +			    translate="false" +          use_ellipses="true"  +			    width="225"> +			    TestString PleaseIgnore +	     </text> +	    	    <text +			 type="string" +			 length="1" +			 follows="left|top" +			 height="23" +			 layout="topleft" +			 left="5" +			name="Group_label" +			top_pad="15" +			width="78"> +			    Group: +	     </text> +      		<button +			 follows="top|left" +			 height="10" +			 image_disabled="Activate_Checkmark" +			 image_selected="Activate_Checkmark" +			 image_unselected="Activate_Checkmark" +			 image_color="White_50" +			 layout="topleft" +			 left_pad="0" +			 top_delta="0" +			 name="button set group" +			 tab_stop="false" +			 tool_tip="Choose a group to share this object's permissions" +			 width="10" /> +            <name_box +             follows="left|top" +             height="18" +             initial_value="Loading..." +             layout="topleft" +             left_pad="5" +             top_delta="-1" +             name="Group Name Proxy" +             width="150" /> +            <button +             follows="top|left" +             height="23" +             label="Deed" +             label_selected="Deed" +             layout="topleft" +             name="button deed" +             top_pad="0" +             left="81" +             tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer." +             width="100" /> +            <text +             type="string" +             length="1" +             follows="left|top" +             height="9" +             layout="topleft" +             top_pad="5" +             left="5" +             name="label click action" +             width="280"> +                Click to: +            </text> +            <combo_box +             follows="left|top" +             height="23" +             layout="topleft" +             name="clickaction" +             width="168" +             left="81"> +                <combo_box.item +                 label="Touch  (default)" +                 name="Touch/grab(default)"            value="Touch" /> -      <combo_box.item -          label="Sit on object" -          name="Sitonobject" +                <combo_box.item +                 label="Sit on object" +                 name="Sitonobject"            value="Sit" /> -      <combo_box.item -          label="Buy object" -          name="Buyobject" +                <combo_box.item +                 label="Buy object" +                 name="Buyobject"            value="Buy" /> -      <combo_box.item -          label="Pay object" -          name="Payobject" +                <combo_box.item +                 label="Pay object" +                 name="Payobject"            value="Pay" /> -      <combo_box.item -          label="Open" -          name="Open" -          value="Open" /> -    </combo_box> -    <panel -        border="false" -        follows="left|top" -        layout="topleft" -        mouse_opaque="false" -        background_visible="true" -        bg_alpha_color="DkGray" -        name="perms_inv" -        left="0" -        top_pad="15" -        height="135" -        width="313"> -      <text -          type="string" -          length="1" +                <combo_box.item +                 label="Open" +                 name="Open" +                 value="Open" /> +            </combo_box> +	 <panel +         border="false" +         follows="left|top" +         layout="topleft" +         mouse_opaque="false" +         background_visible="true" +         bg_alpha_color="DkGray" +         name="perms_inv" +         left="0" +         top_pad="15" +         height="135" +         width="313"> +	  <text +             type="string" +             length="1"            left="5" -          top_pad="15" -          text_color="EmphasisColor" -          height="15" -          follows="left|top|right" -          layout="topleft" -          name="perm_modify" -          width="310"> -        You can modify this object -      </text> -      <text -          type="string" -          length="1" -          follows="left|top" -          height="16" -          layout="topleft" -          left="10" -          name="Anyone can:" -          top_pad="8" -          width="100"> -        Anyone: -      </text> -      <check_box -          height="18" -          label="Copy" -          layout="topleft" -          left_pad="0" -          name="checkbox allow everyone copy" -          top_delta="-2" -          width="90" /> -      <check_box -          height="18" -          label="Move" -          layout="topleft" -          name="checkbox allow everyone move" -          left_pad="0" -          width="150" /> -      <text -          type="string" -          length="1" -          follows="left|top" -          height="16" -          layout="topleft" -          left="10" -          name="GroupLabel" -          top_pad="8" -          width="100"> -        Group: -      </text> -      <check_box -          height="18" -          label="Share" -          layout="topleft" -          left_pad="90" -          top_delta="-2" -          name="checkbox share with group" -          tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions." -          width="150" /> -      <text -          type="string" -          length="1" -          follows="left|top" -          height="16" -          layout="topleft" -          left="10" -          name="NextOwnerLabel" -          top_pad="8" -          width="200" -          word_wrap="true"> -        Next owner: -      </text> -      <check_box -          height="18" -          label="Modify" -          layout="topleft" -          left="20" -          top_pad="0" -          name="checkbox next owner can modify" -          width="90" /> -      <check_box -          height="18" -          label="Copy" -          layout="topleft" -          left_pad="0" -          name="checkbox next owner can copy" -          width="90" /> -      <check_box -          height="18" -          label="Transfer" -          layout="topleft" -          left_pad="0" -          name="checkbox next owner can transfer" -          tool_tip="Next owner can give away or resell this object" -          width="106" /> -    </panel> -    <check_box -        height="23" -        label="For Sale" -        layout="topleft" -        left="20" -        name="checkbox for sale" -        top_pad="10" -        width="100" /> -    <combo_box -        height="23" -        left_pad="0" -        layout="topleft" -        follows="left|top" -        name="sale type" -        width="170"> -      <combo_box.item -          name="Copy" -          label="Copy" -          value="2" /> -      <combo_box.item -          name="Contents" -          label="Contents" -          value="3" /> -      <combo_box.item -          name="Original" -          label="Original" -          value="1" /> -    </combo_box> -    <spinner +             top_pad="15" +             text_color="EmphasisColor" +	     height="15" +             follows="left|top|right" +             layout="topleft" +             name="perm_modify" +             width="310"> +                You can modify this object +            </text> +	  	    <text +			 type="string" +			 length="1" +			 follows="left|top" +			 height="16" +			 layout="topleft" +			 left="10" +               name="Anyone can:" +			 top_pad="8" +			 width="100"> +			Anyone: +	    </text> +	    <check_box +			 height="18" +			 label="Copy" +			 layout="topleft" +			 left_pad="0" +             name="checkbox allow everyone copy" +			 top_delta="-2" +			 width="90" /> +	    <check_box +             height="18" +             label="Move" +             layout="topleft" +             name="checkbox allow everyone move" +			 left_pad="0" +             width="150" /> +	       	<text +			 type="string" +			 length="1" +			 follows="left|top" +			 height="16" +			 layout="topleft" +			 left="10" +			 name="GroupLabel" +			 top_pad="8" +			 width="100"> +			Group: +    	</text> +			    <check_box +			 height="18" +			 label="Share" +			 layout="topleft" +			 left_pad="90" +			 top_delta="-2" +             name="checkbox share with group" +			 tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions." +			 width="150" /> +	    	    <text +			 type="string" +			 length="1" +			 follows="left|top" +			 height="16" +			 layout="topleft" +			 left="10" +			 name="NextOwnerLabel" +			 top_pad="8" +			 width="200" +			 word_wrap="true"> +			Next owner: +	    </text> +	    <check_box +			 height="18" +			 label="Modify" +			 layout="topleft" +			 left="20" +			 top_pad="0" +             name="checkbox next owner can modify" +			 width="90" /> +	    <check_box +			 height="18" +			 label="Copy" +			 layout="topleft" +			 left_pad="0" +             name="checkbox next owner can copy" +			 width="90" /> +	    <check_box +			 height="18" +			 label="Transfer" +			 layout="topleft" +			 left_pad="0" +             name="checkbox next owner can transfer" +			 tool_tip="Next owner can give away or resell this object" +			 width="106" /> +	    </panel> +	    <check_box +			 height="23" +			 label="For Sale" +			 layout="topleft" +			 left="20" +             name="checkbox for sale" +			 top_pad="10" +			 width="100" /> +		<combo_box +			 height="23" +			 left_pad="0" +			 layout="topleft" +			 follows="left|top" +            name="sale type" +			 width="170"> +        <combo_box.item +           name="Copy" +           label="Copy" +           value="2" /> +        <combo_box.item +           name="Contents" +           label="Contents" +           value="3" /> +        <combo_box.item +           name="Original" +           label="Original" +           value="1" /> +	    </combo_box> +		<spinner          follows="left|top"          decimal_digits="0"          increment="1" @@ -445,17 +445,17 @@          min_val="1"          height="20"          max_val="999999999" /> -    <check_box -        height="20" -        width="110" -        top_pad="6" -        label="Show in search" -        layout="topleft" -        left="120" -        name="search_check" -        tool_tip="Let people see this object in search results" /> -    <text -        type="string" +      <check_box +	   height="20" +	   width="110" +	   top_pad="6" +	   label="Show in search" +       layout="topleft" +	   left="120" +       name="search_check" +       tool_tip="Let people see this object in search results" /> +            <text +             type="string"          follows="left|top"          name="pathfinding_attributes_label"          top_pad="6" @@ -466,7 +466,7 @@      <text          type="string"          follows="left|top" -        text_color="EmphasisColor" +             text_color="EmphasisColor"          name="pathfinding_attributes_value"          width="130"          word_wrap="false" @@ -475,120 +475,120 @@      <text          type="string"          text_color="EmphasisColor" -        length="1" +             length="1"          top_pad="10" -        follows="left|top" -        layout="topleft" -        left="10" -        name="B:" -        height="10" -        width="50"> -      B: -    </text> -    <text -        type="string" -        text_color="White" -        length="1" -        follows="left|top" -        layout="topleft" -        left_pad="0" -        name="O:" -        height="10" -        width="50"> -      O: -    </text> -    <text -        type="string" -        text_color="EmphasisColor" -        length="1" -        follows="left|top" -        layout="topleft" -        left_pad="0" -        name="G:" -        height="10" -        width="50"> -      G: -    </text> -    <text -        type="string" -        text_color="White" -        length="1" -        follows="left|top" -        left_pad="0" -        layout="topleft" -        name="E:" -        height="10" -        width="50"> -      E: -    </text> -    <text -        type="string" -        text_color="EmphasisColor" -        length="1" -        follows="left|top" -        layout="topleft" -        left_pad="0" -        name="N:" -        height="10" -        width="50"> -      N: -    </text> -    <text -        type="string" -        text_color="White" -        length="1" -        follows="left|top" -        layout="topleft" -        left_pad="0" -        name="F:" -        height="10" -        width="50"> -      F: -    </text> -  </panel> -  <panel -      height="25" -      layout="bottomright" -      name="button_panel" -      left="5" -      bottom="5" -      width="313"> -    <button -        follows="bottom|left" -        height="23" -        label="Open" -        layout="topleft" -        left="5" -        name="open_btn" -        top="0" -        width="73" /> -    <button -        follows="bottom|left" -        height="23" -        label="Pay" -        layout="topleft" -        left_pad="5" -        name="pay_btn" -        top="0" -        width="73" /> -    <button -        follows="bottom|left" -        height="23" -        label="Buy" -        layout="topleft" -        left_pad="5" -        name="buy_btn" -        top="0" -        width="73" /> -    <button -        follows="bottom|left" -        height="23" -        label="Details" -        layout="topleft" -        left_pad="5" -        name="details_btn" -        top="0" -        width="74" /> +             follows="left|top" +             layout="topleft" +             left="10" +             name="B:" +             height="10" +             width="50"> +                B: +            </text> +            <text +             type="string" +             text_color="White" +             length="1" +             follows="left|top" +             layout="topleft" +             left_pad="0" +             name="O:" +             height="10" +             width="50"> +                O: +            </text> +            <text +             type="string" +             text_color="EmphasisColor" +             length="1" +             follows="left|top" +             layout="topleft" +             left_pad="0" +             name="G:" +             height="10" +             width="50"> +                G: +            </text> +            <text +             type="string" +             text_color="White" +             length="1" +             follows="left|top" +             left_pad="0" +             layout="topleft" +             name="E:" +             height="10" +             width="50"> +                E: +            </text> +            <text +             type="string" +             text_color="EmphasisColor" +             length="1" +             follows="left|top" +             layout="topleft" +             left_pad="0" +             name="N:" +             height="10" +             width="50"> +                N: +            </text> +            <text +             type="string" +             text_color="White" +             length="1" +             follows="left|top" +             layout="topleft" +             left_pad="0" +             name="F:" +             height="10" +             width="50"> +                F: +            </text> +		</panel> +    <panel +		 height="25" +		 layout="bottomright" +		 name="button_panel" +		 left="5" +		 bottom="5" +		 width="313"> +        <button +		     follows="bottom|left" +		     height="23" +		     label="Open" +		     layout="topleft" +		     left="5" +		     name="open_btn" +		     top="0" +		     width="73" /> +	    <button +		     follows="bottom|left" +		     height="23" +		     label="Pay" +		     layout="topleft" +		     left_pad="5" +		     name="pay_btn" +		     top="0" +		     width="73" /> +	    <button +		     follows="bottom|left" +		     height="23" +		     label="Buy" +		     layout="topleft" +		     left_pad="5" +		     name="buy_btn" +		     top="0" +		     width="73" /> +        <button +		     follows="bottom|left" +		     height="23" +		     label="Details" +		     layout="topleft" +		     left_pad="5" +		     name="details_btn" +		     top="0" +		     width="74" /> -  </panel> +	</panel>  </panel> diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 3c3aba23f8..1bc8306826 100644 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -1086,7 +1086,6 @@ class Linux_i686Manifest(LinuxManifest):              self.path("libalut.so")              self.path("libopenal.so", "libopenal.so.1")              self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname -              # KLUDGE: As of 2012-04-11, the 'fontconfig' package installs              # libfontconfig.so.1.4.4, along with symlinks libfontconfig.so.1              # and libfontconfig.so. Before we added support for library-file @@ -1105,7 +1104,15 @@ class Linux_i686Manifest(LinuxManifest):              # previous call did, without having to explicitly state the              # version number.              self.path("libfontconfig.so.*.*") -            self.path("libtcmalloc.so*") #formerly called google perf tools +            try: +                self.path("libtcmalloc.so", "libtcmalloc.so") #formerly called google perf tools +                self.path("libtcmalloc.so.0", "libtcmalloc.so.0") #formerly called google perf tools +                self.path("libtcmalloc.so.0.1.0", "libtcmalloc.so.0.1.0") #formerly called google perf tools +                pass +            except: +                print "tcmalloc files not found, skipping" +                pass +              try:                      self.path("libfmod-3.75.so")                      pass | 
