Merge viewer-bear

Fri, 26 Feb 2016 21:34:32 +0100

author
Ansariel
date
Fri, 26 Feb 2016 21:34:32 +0100
changeset 48899
c85f952a50b6
parent 48886
afaada4c9de5
parent 48898
b4de46ad34b2
child 48900
718971f529e5

Merge viewer-bear

autobuild.xml file | annotate | diff | revisions
indra/llrender/llgltexture.cpp file | annotate | diff | revisions
indra/newview/llfloatermodelpreview.cpp file | annotate | diff | revisions
indra/newview/llhudtext.cpp file | annotate | diff | revisions
indra/newview/llpanelpermissions.cpp file | annotate | diff | revisions
indra/newview/llviewertexture.cpp file | annotate | diff | revisions
indra/newview/llviewertexture.h file | annotate | diff | revisions
indra/newview/llviewertexturelist.cpp file | annotate | diff | revisions
indra/newview/pipeline.cpp file | annotate | diff | revisions
     1.1 --- a/indra/llrender/llgltexture.cpp	Sun Feb 21 03:16:25 2016 +0100
     1.2 +++ b/indra/llrender/llgltexture.cpp	Fri Feb 26 21:34:32 2016 +0100
     1.3 @@ -112,7 +112,8 @@
     1.4  	if(mBoostLevel != level)
     1.5  	{
     1.6  		mBoostLevel = level ;
     1.7 -		if(mBoostLevel != LLGLTexture::BOOST_NONE)
     1.8 +		if(mBoostLevel != LLGLTexture::BOOST_NONE
     1.9 +		   && mBoostLevel != LLGLTexture::BOOST_ICON)
    1.10  		{
    1.11  			setNoDelete() ;		
    1.12  		}
     2.1 --- a/indra/newview/llfloatermodelpreview.cpp	Sun Feb 21 03:16:25 2016 +0100
     2.2 +++ b/indra/newview/llfloatermodelpreview.cpp	Fri Feb 26 21:34:32 2016 +0100
     2.3 @@ -1617,9 +1617,18 @@
     2.4  					}
     2.5  					instance.mLOD[i] = lod_model;
     2.6  				}
     2.7 -				else if (importerDebug)
     2.8 +				else
     2.9  				{
    2.10 -					LL_INFOS() << "List of models does not include " << instance.mLabel << LL_ENDL;
    2.11 +					if (i < LLModel::LOD_HIGH && !lodsReady())
    2.12 +					{
    2.13 +						// assign a placeholder from previous LOD until lod generation is complete.
    2.14 +						// Note: we might need to assign it regardless of conditions like named search does, to prevent crashes.
    2.15 +						instance.mLOD[i] = instance.mLOD[i + 1];
    2.16 +					}
    2.17 +					if (importerDebug)
    2.18 +					{
    2.19 +						LL_INFOS() << "List of models does not include " << instance.mLabel << LL_ENDL;
    2.20 +					}
    2.21  				}
    2.22  			}
    2.23  
     3.1 --- a/indra/newview/llhudtext.cpp	Sun Feb 21 03:16:25 2016 +0100
     3.2 +++ b/indra/newview/llhudtext.cpp	Fri Feb 26 21:34:32 2016 +0100
     3.3 @@ -423,11 +423,21 @@
     3.4  		mPositionAgent -= dir_from_camera * mSourceObject->getVObjRadius();
     3.5  	}
     3.6  
     3.7 +	if (!mTextSegments.size())
     3.8 +	{
     3.9 +		mVisible = FALSE;
    3.10 +		return;
    3.11 +	}
    3.12 +
    3.13  	mLastDistance = (mPositionAgent - LLViewerCamera::getInstance()->getOrigin()).magVec();
    3.14 -
    3.15  	F32 obj_dist = dist_vec(mSourceObject->getPositionEdit(), LLViewerCamera::getInstance()->getOrigin());
    3.16  
    3.17 -	if (!mTextSegments.size() || (mDoFade && (mLastDistance > mFadeDistance + mFadeRange)) || (obj_dist > MAX_DRAW_DISTANCE))
    3.18 +	if(mSourceObject->isAttachment())
    3.19 +	{
    3.20 +		LLViewerObject* parent = (LLViewerObject*)mSourceObject->getRoot();
    3.21 +		obj_dist = dist_vec(parent->getPositionEdit(), LLViewerCamera::getInstance()->getOrigin());
    3.22 +	}
    3.23 +	if ((mDoFade && (mLastDistance > mFadeDistance + mFadeRange)) || (obj_dist > MAX_DRAW_DISTANCE))
    3.24  	{
    3.25  		mVisible = FALSE;
    3.26  		return;
     4.1 --- a/indra/newview/llpanelpermissions.cpp	Sun Feb 21 03:16:25 2016 +0100
     4.2 +++ b/indra/newview/llpanelpermissions.cpp	Fri Feb 26 21:34:32 2016 +0100
     4.3 @@ -694,69 +694,60 @@
     4.4  	U32 next_owner_mask_on 		= 0;
     4.5  	U32 next_owner_mask_off		= 0;
     4.6  
     4.7 -	BOOL valid_base_perms = FALSE;
     4.8 -	BOOL valid_group_perms= FALSE;
     4.9 -	BOOL valid_everyone_perms= FALSE;
    4.10 -	BOOL valid_next_perms= FALSE;
    4.11 -
    4.12 -	if(root_selected)
    4.13 -	{
    4.14 -	    valid_base_perms 		= LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE,
    4.15 +	BOOL valid_base_perms 		= LLSelectMgr::getInstance()->selectGetPerm(PERM_BASE,
    4.16  																			&base_mask_on,
    4.17  																			&base_mask_off);
    4.18 -	    //BOOL valid_owner_perms =//
    4.19 -	    LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
    4.20 +	//BOOL valid_owner_perms =//
    4.21 +	LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
    4.22  											  &owner_mask_on,
    4.23  											  &owner_mask_off);
    4.24 -	    valid_group_perms 		= LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP,
    4.25 +	BOOL valid_group_perms 		= LLSelectMgr::getInstance()->selectGetPerm(PERM_GROUP,
    4.26  																			&group_mask_on,
    4.27  																			&group_mask_off);
    4.28  	
    4.29 -	    valid_everyone_perms 	= LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE,
    4.30 +	BOOL valid_everyone_perms 	= LLSelectMgr::getInstance()->selectGetPerm(PERM_EVERYONE,
    4.31  																			&everyone_mask_on,
    4.32  																			&everyone_mask_off);
    4.33  	
    4.34 -	    valid_next_perms 		= LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER,
    4.35 +	BOOL valid_next_perms 		= LLSelectMgr::getInstance()->selectGetPerm(PERM_NEXT_OWNER,
    4.36  																			&next_owner_mask_on,
    4.37  																			&next_owner_mask_off);
    4.38 -	}
    4.39 -	else
    4.40 -	{
    4.41 -	    if(object_count == 1)
    4.42 -	    {
    4.43 -	        LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode();
    4.44 -	        if (node && node->mValid)
    4.45 -	        {
    4.46 -	            valid_base_perms = TRUE;
    4.47  
    4.48 -	            base_mask_on = node->mPermissions->getMaskBase();
    4.49 -	            owner_mask_on = node->mPermissions->getMaskOwner();
    4.50 -	            group_mask_on = node->mPermissions->getMaskGroup();
    4.51 -	            everyone_mask_on = node->mPermissions->getMaskEveryone();
    4.52 -	            next_owner_mask_on = node->mPermissions->getMaskNextOwner();
    4.53 -	        }
    4.54 -	    }
    4.55 -	}
    4.56  
    4.57 -	
    4.58  	if (gSavedSettings.getBOOL("DebugPermissions") )
    4.59  	{
    4.60  		if (valid_base_perms)
    4.61  		{
    4.62  			getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string(base_mask_on));
    4.63 -			getChildView("B:")->setVisible(							TRUE);
    4.64 -			
    4.65 +			getChildView("B:")->setVisible(TRUE);
    4.66  			getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(owner_mask_on));
    4.67 -			getChildView("O:")->setVisible(							TRUE);
    4.68 -			
    4.69 +			getChildView("O:")->setVisible(TRUE);
    4.70  			getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(group_mask_on));
    4.71 -			getChildView("G:")->setVisible(							TRUE);
    4.72 -			
    4.73 +			getChildView("G:")->setVisible(TRUE);
    4.74  			getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(everyone_mask_on));
    4.75 -			getChildView("E:")->setVisible(							TRUE);
    4.76 -			
    4.77 +			getChildView("E:")->setVisible(TRUE);
    4.78  			getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(next_owner_mask_on));
    4.79 -			getChildView("N:")->setVisible(							TRUE);
    4.80 +			getChildView("N:")->setVisible(TRUE);
    4.81 +		}
    4.82 +		else if(!root_selected)
    4.83 +		{
    4.84 +			if(object_count == 1)
    4.85 +			{
    4.86 +				LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstNode();
    4.87 +				if (node && node->mValid)
    4.88 +				{
    4.89 +					getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string( node->mPermissions->getMaskBase()));
    4.90 +					getChildView("B:")->setVisible(TRUE);
    4.91 +					getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(node->mPermissions->getMaskOwner()));
    4.92 +					getChildView("O:")->setVisible(TRUE);
    4.93 +					getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(node->mPermissions->getMaskGroup()));
    4.94 +					getChildView("G:")->setVisible(TRUE);
    4.95 +					getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(node->mPermissions->getMaskEveryone()));
    4.96 +					getChildView("E:")->setVisible(TRUE);
    4.97 +					getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(node->mPermissions->getMaskNextOwner()));
    4.98 +					getChildView("N:")->setVisible(TRUE);
    4.99 +				}
   4.100 +			}
   4.101  		}
   4.102  		else
   4.103  		{
     5.1 --- a/indra/newview/llviewertexture.cpp	Sun Feb 21 03:16:25 2016 +0100
     5.2 +++ b/indra/newview/llviewertexture.cpp	Fri Feb 26 21:34:32 2016 +0100
     5.3 @@ -749,7 +749,8 @@
     5.4  	{
     5.5  		mBoostLevel = level;
     5.6  		if(mBoostLevel != LLViewerTexture::BOOST_NONE && 
     5.7 -			mBoostLevel != LLViewerTexture::BOOST_SELECTED)
     5.8 +			mBoostLevel != LLViewerTexture::BOOST_SELECTED && 
     5.9 +			mBoostLevel != LLViewerTexture::BOOST_ICON)
    5.10  		{
    5.11  			setNoDelete();		
    5.12  		}
     6.1 --- a/indra/newview/llviewertexture.h	Sun Feb 21 03:16:25 2016 +0100
     6.2 +++ b/indra/newview/llviewertexture.h	Fri Feb 26 21:34:32 2016 +0100
     6.3 @@ -686,7 +686,7 @@
     6.4  	static LLViewerFetchedTexture* getFetchedTextureFromFile(const std::string& filename,									 
     6.5  									 FTType f_type = FTT_LOCAL_FILE,
     6.6  									 BOOL usemipmap = TRUE,
     6.7 -									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_NONE,
     6.8 +									 LLViewerTexture::EBoostLevel boost_priority = LLGLTexture::BOOST_UI,
     6.9  									 S8 texture_type = LLViewerTexture::FETCHED_TEXTURE,
    6.10  									 LLGLint internal_format = 0,
    6.11  									 LLGLenum primary_format = 0,
     7.1 --- a/indra/newview/llviewertexturelist.cpp	Sun Feb 21 03:16:25 2016 +0100
     7.2 +++ b/indra/newview/llviewertexturelist.cpp	Fri Feb 26 21:34:32 2016 +0100
     7.3 @@ -453,11 +453,17 @@
     7.4  
     7.5  		if (boost_priority != 0)
     7.6  		{
     7.7 -			if (boost_priority == LLViewerFetchedTexture::BOOST_UI
     7.8 -				|| boost_priority == LLViewerFetchedTexture::BOOST_ICON)
     7.9 +			if (boost_priority == LLViewerFetchedTexture::BOOST_UI)
    7.10  			{
    7.11  				imagep->dontDiscard();
    7.12  			}
    7.13 +			if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)
    7.14 +			{
    7.15 +				// Agent and group Icons are downloadable content, nothing manages
    7.16 +				// icon deletion yet, so they should not persist
    7.17 +				imagep->dontDiscard();
    7.18 +				imagep->forceActive();
    7.19 +			}
    7.20  			imagep->setBoostLevel(boost_priority);
    7.21  		}
    7.22  	}
    7.23 @@ -557,11 +563,17 @@
    7.24  
    7.25  	if (boost_priority != 0)
    7.26  	{
    7.27 -		if (boost_priority == LLViewerFetchedTexture::BOOST_UI
    7.28 -			|| boost_priority == LLViewerFetchedTexture::BOOST_ICON)
    7.29 +		if (boost_priority == LLViewerFetchedTexture::BOOST_UI)
    7.30  		{
    7.31  			imagep->dontDiscard();
    7.32  		}
    7.33 +		if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)
    7.34 +		{
    7.35 +			// Agent and group Icons are downloadable content, nothing manages
    7.36 +			// icon deletion yet, so they should not persist.
    7.37 +			imagep->dontDiscard();
    7.38 +			imagep->forceActive();
    7.39 +		}
    7.40  		imagep->setBoostLevel(boost_priority);
    7.41  	}
    7.42  	else
    7.43 @@ -1752,8 +1764,11 @@
    7.44  	//don't compress UI images
    7.45  	imagep->getGLTexture()->setAllowCompression(false);
    7.46  
    7.47 -	//all UI images are non-deletable
    7.48 -	imagep->setNoDelete();
    7.49 +	//all UI images are non-deletable, except downloadable icons
    7.50 +	if (imagep->getBoostLevel() != LLGLTexture::BOOST_ICON)
    7.51 +	{
    7.52 +		imagep->setNoDelete();
    7.53 +	}
    7.54  
    7.55  	LLUIImagePtr new_imagep = new LLUIImage(name, imagep);
    7.56  	new_imagep->setScaleStyle(scale_style);
     8.1 --- a/indra/newview/pipeline.cpp	Sun Feb 21 03:16:25 2016 +0100
     8.2 +++ b/indra/newview/pipeline.cpp	Fri Feb 26 21:34:32 2016 +0100
     8.3 @@ -8753,6 +8753,11 @@
     8.4  						}
     8.5  					}
     8.6  
     8.7 +					const LLViewerObject *vobj = drawablep->getVObj();
     8.8 +					if(vobj && vobj->getAvatar() && vobj->getAvatar()->isInMuteList())
     8.9 +					{
    8.10 +						continue;
    8.11 +					}
    8.12  
    8.13  					LLVector4a center;
    8.14  					center.load3(drawablep->getPositionAgent().mV);

mercurial