diff options
| author | Richard Linden <none@none> | 2013-08-21 14:06:57 -0700 | 
|---|---|---|
| committer | Richard Linden <none@none> | 2013-08-21 14:06:57 -0700 | 
| commit | 2c6bc5afa59a88136fd6de4ebf0cb99ea7cdef3f (patch) | |
| tree | c91e15225fc14b0ea753d8188199f8e7f806e7a5 /indra/llui | |
| parent | 6d9af374066421a1d8465a57795250a1614adcbb (diff) | |
SH-4433 WIP Interesting: Statistics > Ping Sim is always 0 ms
made getPrimaryAccumulator return a reference since it was an
always non-null pointer
changed unit conversion to perform lazy division in order to avoid truncation
of timer values
Diffstat (limited to 'indra/llui')
| -rwxr-xr-x | indra/llui/llstatbar.cpp | 24 | ||||
| -rwxr-xr-x | indra/llui/llstatbar.h | 2 | 
2 files changed, 14 insertions, 12 deletions
| diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp index 03a2895289..8658a2f968 100755 --- a/indra/llui/llstatbar.cpp +++ b/indra/llui/llstatbar.cpp @@ -386,17 +386,24 @@ void LLStatBar::draw()  	mCurMaxBar = LLSmoothInterpolation::lerp(mCurMaxBar, mMaxBar, 0.05f);  	mCurMinBar = LLSmoothInterpolation::lerp(mCurMinBar, mMinBar, 0.05f); +	S32 decimal_digits = mDecimalDigits; +	if (is_approx_equal((F32)(S32)display_value, display_value)) +	{ +		decimal_digits = 0; +	} +  	// rate limited updates -	if (mLastDisplayValueTimer.getElapsedTimeF32() > MEAN_VALUE_UPDATE_TIME) +	if (mLastDisplayValueTimer.getElapsedTimeF32() < MEAN_VALUE_UPDATE_TIME)  	{ -		mLastDisplayValueTimer.reset(); -		drawLabelAndValue(display_value, unit_label, bar_rect); -		mLastDisplayValue = display_value; +		display_value = mLastDisplayValue;  	}  	else  	{ -		drawLabelAndValue(mLastDisplayValue, unit_label, bar_rect); +		mLastDisplayValueTimer.reset();  	} +	drawLabelAndValue(display_value, unit_label, bar_rect, mDecimalDigits); +	mLastDisplayValue = display_value; +  	if (mDisplayBar          && (mCountFloatp || mEventFloatp || mSampleFloatp)) @@ -568,16 +575,11 @@ LLRect LLStatBar::getRequiredRect()  	return rect;  } -void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_rect ) +void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_rect, S32 decimal_digits )  {  	LLFontGL::getFontMonospace()->renderUTF8(mLabel, 0, 0, getRect().getHeight(), LLColor4(1.f, 1.f, 1.f, 1.f),  		LLFontGL::LEFT, LLFontGL::TOP); -	S32 decimal_digits = mDecimalDigits; -	if (is_approx_equal((F32)(S32)value, value)) -	{ -		decimal_digits = 0; -	}  	std::string value_str	= !llisnan(value)  							? llformat("%10.*f %s", decimal_digits, value, label.c_str())  							: "n/a"; diff --git a/indra/llui/llstatbar.h b/indra/llui/llstatbar.h index bf2bd3e259..f311e4a13c 100755 --- a/indra/llui/llstatbar.h +++ b/indra/llui/llstatbar.h @@ -72,7 +72,7 @@ public:  	/*virtual*/ LLRect getRequiredRect();	// Return the height of this object, given the set options.  private: -	void drawLabelAndValue( F32 mean, std::string &unit_label, LLRect &bar_rect ); +	void drawLabelAndValue( F32 mean, std::string &unit_label, LLRect &bar_rect, S32 decimal_digits );  	void drawTicks( F32 min, F32 max, F32 value_scale, LLRect &bar_rect );  	F32          mMinBar, | 
