diff options
| author | Oz Linden <oz@lindenlab.com> | 2013-06-28 16:18:08 -0400 | 
|---|---|---|
| committer | Oz Linden <oz@lindenlab.com> | 2013-06-28 16:18:08 -0400 | 
| commit | 8ae792b38af42d26a0f588e9a8b778df99416fd5 (patch) | |
| tree | 8b2e1c3154861bd8852760be438cdd806dfe4a82 | |
| parent | 5f397fa58352fb58d79b72148904f925416f4978 (diff) | |
move reading of the sim features to LLViewerRegion for consistency, a couple of minor cleanups
| -rw-r--r-- | indra/newview/llmaterialmgr.cpp | 23 | ||||
| -rw-r--r-- | indra/newview/llmaterialmgr.h | 5 | ||||
| -rwxr-xr-x | indra/newview/llviewerregion.cpp | 12 | ||||
| -rwxr-xr-x | indra/newview/llviewerregion.h | 1 | 
4 files changed, 15 insertions, 26 deletions
diff --git a/indra/newview/llmaterialmgr.cpp b/indra/newview/llmaterialmgr.cpp index 96dd402d84..658fea944d 100644 --- a/indra/newview/llmaterialmgr.cpp +++ b/indra/newview/llmaterialmgr.cpp @@ -50,9 +50,7 @@  #define MATERIALS_CAP_MATERIAL_FIELD              "Material"  #define MATERIALS_CAP_OBJECT_ID_FIELD             "ID"  #define MATERIALS_CAP_MATERIAL_ID_FIELD           "MaterialID" -#define SIM_FEATURE_MAX_MATERIALS_PER_TRANSACTION "MaxMaterialsPerTransaction" -#define MATERIALS_DEFAULT_MAX_ENTRIES             50  #define MATERIALS_GET_TIMEOUT                     (60.f * 20)  #define MATERIALS_POST_TIMEOUT                    (60.f * 5)  #define MATERIALS_PUT_THROTTLE_SECS               1.f @@ -592,7 +590,7 @@ void LLMaterialMgr::processGetQueue()  		LLSD materialsData = LLSD::emptyArray();  		material_queue_t& materials = itRegionQueue->second; -		U32 max_entries = getMaxEntries(regionp); +		U32 max_entries = regionp->getMaxMaterialsPerTransaction();  		material_queue_t::iterator loopMaterial = materials.begin();		  		while ( (materials.end() != loopMaterial) && (materialsData.size() < max_entries) )  		{ @@ -698,7 +696,7 @@ void LLMaterialMgr::processPutQueue()  				LLSD& facesData = requests[regionp];  				facematerial_map_t& face_map = itQueue->second; -				U32 max_entries = getMaxEntries(regionp); +				U32 max_entries = regionp->getMaxMaterialsPerTransaction();  				facematerial_map_t::iterator itFace = face_map.begin();  				while ( (face_map.end() != itFace) && (facesData.size() < max_entries) )  				{ @@ -785,20 +783,3 @@ void LLMaterialMgr::onRegionRemoved(LLViewerRegion* regionp)  	// Put doesn't need clearing: objects that can't be found will clean up in processPutQueue()  } -U32 LLMaterialMgr::getMaxEntries(const LLViewerRegion* regionp) -{ -	LLSD sim_features; -	regionp->getSimulatorFeatures(sim_features); -	U32 max_entries; -	if (   sim_features.has( SIM_FEATURE_MAX_MATERIALS_PER_TRANSACTION ) -		&& sim_features[ SIM_FEATURE_MAX_MATERIALS_PER_TRANSACTION ].isInteger()) -	{ -		max_entries = sim_features[ SIM_FEATURE_MAX_MATERIALS_PER_TRANSACTION ].asInteger(); -	} -	else -	{ -		max_entries = MATERIALS_DEFAULT_MAX_ENTRIES; -	} -	return max_entries; -} - diff --git a/indra/newview/llmaterialmgr.h b/indra/newview/llmaterialmgr.h index 2836019c27..e317a791ad 100644 --- a/indra/newview/llmaterialmgr.h +++ b/indra/newview/llmaterialmgr.h @@ -124,11 +124,6 @@ protected:  	put_queue_t mPutQueue;  	material_map_t mMaterials; - -	U32 getMaxEntries(const LLViewerRegion* regionp); - -	LLFrameTimer mCapThrottleTimer; -	F32 getThrottleIntervalSecs(const LLUUID& region_id);  };  #endif // LL_LLMATERIALMGR_H diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 0f8decc643..b541a35111 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1976,3 +1976,15 @@ void LLViewerRegion::resetMaterialsCapThrottle()  	mMaterialsCapThrottleTimer.resetWithExpiry( 1.0f / requests_per_sec );  } +U32 LLViewerRegion::getMaxMaterialsPerTransaction() const +{ +	U32 max_entries = 50; // original hard coded default +	if (   mSimulatorFeatures.has( "MaxMaterialsPerTransaction" ) +		&& mSimulatorFeatures[ "MaxMaterialsPerTransaction" ].isInteger()) +	{ +		max_entries = mSimulatorFeatures[ "MaxMaterialsPerTransaction" ].asInteger(); +	} +	return max_entries; +} + + diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h index a3db7f5ac7..109baccf9a 100755 --- a/indra/newview/llviewerregion.h +++ b/indra/newview/llviewerregion.h @@ -348,6 +348,7 @@ public:  	bool materialsCapThrottled() const { return !mMaterialsCapThrottleTimer.hasExpired(); }  	void resetMaterialsCapThrottle(); +	U32 getMaxMaterialsPerTransaction() const;  public:  	struct CompareDistance  	{  | 
