diff options
| author | Tofu Buzzard <no-email> | 2011-03-09 17:11:23 -0800 | 
|---|---|---|
| committer | Tofu Buzzard <no-email> | 2011-03-09 17:11:23 -0800 | 
| commit | f2500cd93a8305de950d618551f589cc822d160c (patch) | |
| tree | f6341cb8cb66a4fa2b59393e32294921c4ce91cd /indra | |
| parent | 63636e8ceabc7487e42427d9a6a83cad5116daa0 (diff) | |
| parent | 1dbdb9b97c1a177edc45e078af6bd0b9997e80bb (diff) | |
merge
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/lldrawpoolavatar.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/llfloatermodelpreview.cpp | 50 | ||||
| -rw-r--r-- | indra/newview/llfloatermodelpreview.h | 2 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/pipeline.cpp | 18 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_model_preview.xml | 7 | 
6 files changed, 56 insertions, 25 deletions
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index 2de4c93ffd..645c7ebcae 100644 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -1137,7 +1137,7 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)  		if (impostor)  		{ -			if (LLPipeline::sRenderDeferred && avatarp->mImpostor.isComplete())  +			if (LLPipeline::sRenderDeferred && !LLPipeline::sReflectionRender && avatarp->mImpostor.isComplete())   			{  				if (normal_channel > -1)  				{ diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index e33ce055f6..fabf92c3c6 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -773,11 +773,13 @@ void LLFloaterModelPreview::onPhysicsStageExecute(LLUICtrl* ctrl, void* data)  		if (stage == "Decompose")  		{ +			sInstance->setStatusMessage(sInstance->getString("decomposing"));  			sInstance->childSetVisible("Decompose", false);  			sInstance->childSetVisible("decompose_cancel", true);  		}  		else if (stage == "Simplify")  		{ +			sInstance->setStatusMessage(sInstance->getString("simplifying"));  			sInstance->childSetVisible("Simplify", false);  			sInstance->childSetVisible("simplify_cancel", true);  		} @@ -823,6 +825,8 @@ void LLFloaterModelPreview::onPhysicsStageCancel(LLUICtrl* ctrl, void*data)  		    DecompRequest* req = *iter;  		    req->mContinue = 0;  		} + +		sInstance->mCurRequest.clear();  	}  } @@ -2231,6 +2235,11 @@ LLModelPreview::LLModelPreview(S32 width, S32 height, LLFloater* fmp)  	mBuildBorderMode = GLOD_BORDER_UNLOCK;  	mBuildOperator = GLOD_OPERATOR_EDGE_COLLAPSE; +	for (U32 i = 0; i < LLModel::NUM_LODS; ++i) +	{ +		mRequestedTriangleCount[i] = 0; +	} +  	mViewOption["show_textures"] = false;  	mFMP = fmp; @@ -2981,6 +2990,8 @@ void LLModelPreview::genLODs(S32 which_lod, U32 decimation, bool enforce_tri_lim  		U32 actual_verts = 0;  		U32 submeshes = 0; +		mRequestedTriangleCount[lod] = triangle_count; +  		glodGroupParameteri(mGroup, GLOD_ADAPT_MODE, lod_mode);  		stop_gloderror(); @@ -3462,7 +3473,7 @@ void LLModelPreview::updateStatusMessages()  				LLSpinCtrl* limit = mFMP->getChild<LLSpinCtrl>("lod_triangle_limit");  				limit->setMaxValue(mMaxTriangleLimit); -				limit->setValue(total_tris[mPreviewLOD]); +				limit->setValue(mRequestedTriangleCount[mPreviewLOD]);  				if (lod_mode == 0)  				{ @@ -3470,6 +3481,7 @@ void LLModelPreview::updateStatusMessages()  					threshold->setVisible(false);  					limit->setMaxValue(mMaxTriangleLimit); +					limit->setIncrement(mMaxTriangleLimit/32);  				}  				else  				{ @@ -4301,10 +4313,13 @@ void LLFloaterModelPreview::setStatusMessage(const std::string& msg)  S32 LLFloaterModelPreview::DecompRequest::statusCallback(const char* status, S32 p1, S32 p2)  { -	setStatusMessage(llformat("%s: %d/%d", status, p1, p2)); -	if (LLFloaterModelPreview::sInstance) +	if (mContinue)  	{ -		LLFloaterModelPreview::sInstance->setStatusMessage(mStatusMessage); +		setStatusMessage(llformat("%s: %d/%d", status, p1, p2)); +		if (LLFloaterModelPreview::sInstance) +		{ +			LLFloaterModelPreview::sInstance->setStatusMessage(mStatusMessage); +		}  	}  	return mContinue; @@ -4312,20 +4327,27 @@ S32 LLFloaterModelPreview::DecompRequest::statusCallback(const char* status, S32  void LLFloaterModelPreview::DecompRequest::completed()  { //called from the main thread -	mModel->setConvexHullDecomposition(mHull); - -	if (sInstance) +	if (mContinue)  	{ -		if (mContinue) +		mModel->setConvexHullDecomposition(mHull); + +		if (sInstance)  		{ -			if (sInstance->mModelPreview) +			if (mContinue)  			{ -				sInstance->mModelPreview->mPhysicsMesh[mModel] = mHullMesh; -				sInstance->mModelPreview->mDirty = true; -				LLFloaterModelPreview::sInstance->mModelPreview->refresh(); +				if (sInstance->mModelPreview) +				{ +					sInstance->mModelPreview->mPhysicsMesh[mModel] = mHullMesh; +					sInstance->mModelPreview->mDirty = true; +					LLFloaterModelPreview::sInstance->mModelPreview->refresh(); +				}  			} -		} -		sInstance->mCurRequest.erase(this); +			sInstance->mCurRequest.erase(this); +		} +	} +	else if (sInstance) +	{ +		llassert(sInstance->mCurRequest.find(this) == sInstance->mCurRequest.end());  	}  } diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h index 8a01f7db2c..ffda565fef 100644 --- a/indra/newview/llfloatermodelpreview.h +++ b/indra/newview/llfloatermodelpreview.h @@ -331,6 +331,8 @@ public:  	U32 mBuildQueueMode;  	U32 mBuildOperator;  	U32 mBuildBorderMode; +	S32 mRequestedTriangleCount[LLModel::NUM_LODS]; +  	LLModelLoader* mModelLoader; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index aa7349f129..a73bac39cf 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1428,7 +1428,7 @@ void LLVOAvatar::getSpatialExtents(LLVector4a& newMin, LLVector4a& newMax)  			if (attached_object && !attached_object->isHUDAttachment())
  			{
  				LLDrawable* drawable = attached_object->mDrawable;
 -				if (drawable)
 +				if (drawable && !drawable->isState(LLDrawable::RIGGED))
  				{
  					LLSpatialBridge* bridge = drawable->getSpatialBridge();
  					if (bridge)
 diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index c8ef75030d..eaa6ba231d 100755 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -192,19 +192,20 @@ std::string gPoolNames[] =  	// Correspond to LLDrawpool enum render type  	"NONE",  	"POOL_SIMPLE", -	"POOL_TERRAIN", +	"POOL_GROUND", +	"POOL_FULLBRIGHT",  	"POOL_BUMP", -	"POOL_TREE", +	"POOL_TERRAIN,"	  	"POOL_SKY",  	"POOL_WL_SKY", -	"POOL_GROUND", +	"POOL_TREE", +	"POOL_GRASS",  	"POOL_INVISIBLE",  	"POOL_AVATAR", +	"POOL_VOIDWATER",  	"POOL_WATER", -	"POOL_GRASS", -	"POOL_FULLBRIGHT",  	"POOL_GLOW", -	"POOL_ALPHA", +	"POOL_ALPHA"  };  void drawBox(const LLVector3& c, const LLVector3& r); @@ -3972,6 +3973,8 @@ void LLPipeline::renderDebug()  	glLoadMatrixd(gGLModelView);  	gGL.setColorMask(true, false); +	bool hud_only = hasRenderType(LLPipeline::RENDER_TYPE_HUD); +  	// Debug stuff.  	for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();   			iter != LLWorld::getInstance()->getRegionList().end(); ++iter) @@ -3982,7 +3985,8 @@ void LLPipeline::renderDebug()  			LLSpatialPartition* part = region->getSpatialPartition(i);  			if (part)  			{ -				if (hasRenderType(part->mDrawableType)) +				if ( hud_only && (part->mDrawableType == RENDER_TYPE_HUD || part->mDrawableType == RENDER_TYPE_HUD_PARTICLES) || +					 !hud_only && hasRenderType(part->mDrawableType) )  				{  					part->renderDebug();  				} diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 8a18861e1a..ca4e4a3a2a 100644 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -18,6 +18,9 @@    <string name="mesh_status_too_many_vertices">Level of detail has too many vertices.</string>    <string name="mesh_status_missing_lod">Missing required level of detail.</string>    <string name="layer_all">All</string> <!-- Text to display in physics layer combo box for "all layers" --> +  <string name="decomposing">Analyzing...</string> +  <string name="simplifying">Simplifying...</string> +      <text left="15" bottom="25" follows="top|left" height="15" name="name_label">      Name: @@ -162,8 +165,8 @@            Error Threshold          </combo_item>        </combo_box> -      <spinner follows="top|left" name="lod_triangle_limit" left_pad="5" height="20" width="100" decimal_digits="0" enabled="true"/> -      <spinner left_delta="0" bottom_delta="0"  follows="top|left" name="lod_error_threshold" min_val="0" max_val="100" height="20" width="100" decimal_digits="3" visible="false" enabled="true"/> +      <spinner follows="top|left" name="lod_triangle_limit" increment="10" left_pad="5" height="20" width="100" decimal_digits="0" enabled="true"/> +      <spinner left_delta="0" bottom_delta="0" increment="0.01"  follows="top|left" name="lod_error_threshold" min_val="0" max_val="100" height="20" width="100" decimal_digits="3" visible="false" enabled="true"/>        <text follows="top|left" name="build_operator_text" left="45" top_pad="10" width="100" height="15">          Build Operator:    | 
