diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/llui/llstatbar.cpp | 262 | ||||
| -rwxr-xr-x | indra/llui/llstatbar.h | 13 | ||||
| -rwxr-xr-x | indra/newview/skins/default/xui/en/floater_stats.xml | 110 | 
3 files changed, 186 insertions, 199 deletions
| diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp index 46e15af66e..a0a14f4610 100755 --- a/indra/llui/llstatbar.cpp +++ b/indra/llui/llstatbar.cpp @@ -38,9 +38,10 @@  #include "lltracerecording.h"  #include "llcriticaldamp.h"  #include "lltooltip.h" +#include "lllocalcliprect.h"  #include <iostream> -F32 calc_reasonable_tick_value(F32 min, F32 max) +F32 calc_tick_value(F32 min, F32 max)  {  	F32 range = max - min;  	const S32 DIVISORS[] = {6, 8, 10, 4, 5}; @@ -56,7 +57,7 @@ F32 calc_reasonable_tick_value(F32 min, F32 max)  		{  			F32 test_tick_value = min + (possible_tick_value * pow(10.0, digit_count)); -			if (is_approx_equal((F32)(S32)test_tick_value, (F32)test_tick_value)) +			if (is_approx_equal((F32)(S32)test_tick_value, test_tick_value))  			{  				if (digit_count < best_decimal_digit_count)  				{ @@ -68,12 +69,16 @@ F32 calc_reasonable_tick_value(F32 min, F32 max)  		}  	} -	return is_approx_equal(range, 0.f) ? 1.f : range / best_divisor; +	return is_approx_equal(range, 0.f) ? 0.f : range / best_divisor;  } -void calc_display_range(F32& min, F32& max) +void calc_auto_scale_range(F32& min, F32& max, F32& tick)  { -	const F32 RANGES[] = {1.f, 1.5f, 2.f, 3.f, 5.f, 10.f}; +	min = llmin(0.f, min, max); +	max = llmax(0.f, min, max); + +	const F32 RANGES[] = {0.f, 1.f,   1.5f, 2.f, 3.f, 5.f, 10.f}; +	const F32 TICKS[]  = {0.f, 0.25f, 0.5f, 1.f, 1.f, 1.f, 2.f };  	const S32 num_digits_max = is_approx_equal(fabs(max), 0.f)  							? S32_MIN + 1 @@ -83,46 +88,55 @@ void calc_display_range(F32& min, F32& max)  							: llceil(logf(fabs(min)) * OO_LN10);  	const S32 num_digits = llmax(num_digits_max, num_digits_min); -	const F32 starting_max = pow(10.0, num_digits - 1) * ((max < 0.f) ? -1 : 1); -	const F32 starting_min = pow(10.0, num_digits - 1) * ((min < 0.f) ? -1 : 1); +	const F32 power_of_10 = pow(10.0, num_digits - 1); +	const F32 starting_max = power_of_10 * ((max < 0.f) ? -1 : 1); +	const F32 starting_min = power_of_10 * ((min < 0.f) ? -1 : 1); -	F32 new_max = starting_max; -	F32 new_min = starting_min; +	F32 cur_max = starting_max; +	F32 cur_min = starting_min;  	F32 out_max = max;  	F32 out_min = min; +	F32 cur_tick_min = 0.f; +	F32 cur_tick_max = 0.f; +  	for (S32 range_idx = 0; range_idx < LL_ARRAY_SIZE(RANGES); range_idx++)  	{ -		new_max = starting_max * RANGES[range_idx]; -		new_min = starting_min * RANGES[range_idx]; +		cur_max = starting_max * RANGES[range_idx]; +		cur_min = starting_min * RANGES[range_idx]; -		if (min > 0.f && new_min < min) +		if (min > 0.f && cur_min <= min)  		{ -			out_min = new_min; +			out_min = cur_min; +			cur_tick_min = TICKS[range_idx];  		} -		if (max < 0.f && new_max > max) +		if (max < 0.f && cur_max >= max)  		{ -			out_max = new_max; +			out_max = cur_max; +			cur_tick_max = TICKS[range_idx];  		}  	} -	new_max = starting_max; -	new_min = starting_min; +	cur_max = starting_max; +	cur_min = starting_min;  	for (S32 range_idx = LL_ARRAY_SIZE(RANGES) - 1; range_idx >= 0; range_idx--)  	{ -		new_max = starting_max * RANGES[range_idx]; -		new_min = starting_min * RANGES[range_idx]; +		cur_max = starting_max * RANGES[range_idx]; +		cur_min = starting_min * RANGES[range_idx]; -		if (min < 0.f && new_min < min) +		if (min < 0.f && cur_min <= min)  		{ -			out_min = new_min; +			out_min = cur_min; +			cur_tick_min = TICKS[range_idx];  		} -		if (max > 0.f && new_max > max) +		if (max > 0.f && cur_max >= max)  		{ -			out_max = new_max; +			out_max = cur_max; +			cur_tick_max = TICKS[range_idx];  		}	  	} +	tick = power_of_10 * llmax(cur_tick_min, cur_tick_max);  	min = out_min;  	max = out_max;  } @@ -133,21 +147,26 @@ LLStatBar::LLStatBar(const Params& p)  :	LLView(p),  	mLabel(p.label),  	mUnitLabel(p.unit_label), -	mMinBar(p.bar_min), -	mMaxBar(p.bar_max), +	mMinBar(llmin(p.bar_min, p.bar_max)), +	mMaxBar(llmax(p.bar_max, p.bar_min)),  	mCurMaxBar(p.bar_max), -	mTickValue(p.tick_spacing.isProvided() ? p.tick_spacing : calc_reasonable_tick_value(p.bar_min, p.bar_max)),  	mDecimalDigits(p.decimal_digits),  	mNumFrames(p.num_frames),  	mMaxHeight(p.max_height),  	mPerSec(p.show_per_sec),  	mDisplayBar(p.show_bar),  	mDisplayHistory(p.show_history), -	mDisplayMean(p.show_mean),  	mOrientation(p.orientation), -	mScaleMax(!p.bar_max.isProvided()), -	mScaleMin(!p.bar_min.isProvided()) +	mAutoScaleMax(!p.bar_max.isProvided()), +	mAutoScaleMin(!p.bar_min.isProvided()), +	mTickValue(p.tick_spacing)  { +	// tick value will be automatically calculated later +	if (!p.tick_spacing.isProvided() && p.bar_min.isProvided() && p.bar_max.isProvided()) +	{ +		mTickValue = calc_tick_value(mMinBar, mMaxBar); +	} +  	setStat(p.stat);  } @@ -204,9 +223,9 @@ void LLStatBar::draw()  	F32 current = 0,   		min     = 0,   		max     = 0, -		mean    = 0, -		value	= 0; +		mean    = 0; +	LLLocalClipRect _(getLocalRect());  	LLTrace::PeriodicRecording& frame_recording = LLTrace::get_frame_recording();  	std::string unit_label; @@ -221,7 +240,6 @@ void LLStatBar::draw()  			min     = frame_recording.getPeriodMinPerSec(*mCountFloatp, mNumFrames);  			max     = frame_recording.getPeriodMaxPerSec(*mCountFloatp, mNumFrames);  			mean    = frame_recording.getPeriodMeanPerSec(*mCountFloatp, mNumFrames); -			value	= mDisplayMean ? mean : current;  		}  		else  		{ @@ -229,7 +247,6 @@ void LLStatBar::draw()  			min     = frame_recording.getPeriodMin(*mCountFloatp, mNumFrames);  			max     = frame_recording.getPeriodMax(*mCountFloatp, mNumFrames);  			mean    = frame_recording.getPeriodMean(*mCountFloatp, mNumFrames); -			value	= mDisplayMean ? mean : current;  		}  	}  	else if (mEventFloatp) @@ -241,18 +258,16 @@ void LLStatBar::draw()  		min     = frame_recording.getPeriodMin(*mEventFloatp, mNumFrames);  		max     = frame_recording.getPeriodMax(*mEventFloatp, mNumFrames);  		mean    = frame_recording.getPeriodMean(*mEventFloatp, mNumFrames); -		value	= mDisplayMean ? mean : current;  	}  	else if (mSampleFloatp)  	{  		LLTrace::Recording& last_frame_recording = frame_recording.getLastRecording();  		unit_label = mUnitLabel.empty() ? mSampleFloatp->getUnitLabel() : mUnitLabel; -		current = last_frame_recording.getLastValue(*mSampleFloatp); +		current = last_frame_recording.getMean(*mSampleFloatp);  		min     = frame_recording.getPeriodMin(*mSampleFloatp, mNumFrames);  		max     = frame_recording.getPeriodMax(*mSampleFloatp, mNumFrames);  		mean    = frame_recording.getPeriodMean(*mSampleFloatp, mNumFrames); -		value	= mDisplayMean ? mean : current;  	}  	S32 bar_top, bar_left, bar_right, bar_bottom; @@ -273,16 +288,24 @@ void LLStatBar::draw()  	const S32 tick_length = 4;  	const S32 tick_width = 1; -	if ((mScaleMax && max >= mCurMaxBar)|| (mScaleMin && min <= mCurMinBar)) +	if ((mAutoScaleMax && max >= mCurMaxBar)|| (mAutoScaleMin && min <= mCurMinBar))  	{ -		F32 range_min = min; -		F32 range_max = max; -		calc_display_range(range_min, range_max); -		if (mScaleMax) { mMaxBar = llmax(mMaxBar, range_max); } -		if (mScaleMin) { mMinBar = llmin(mMinBar, range_min); } -		mTickValue = calc_reasonable_tick_value(mMinBar, mMaxBar); - +		F32 range_min = mAutoScaleMin ? llmin(mMinBar, min) : mMinBar; +		F32 range_max = mAutoScaleMax ? llmax(mMaxBar, max) : mMaxBar; +		F32 tick_value = 0.f; +		calc_auto_scale_range(range_min, range_max, tick_value); +		if (mAutoScaleMin) { mMinBar = range_min; } +		if (mAutoScaleMax) { mMaxBar = range_max; } +		if (mAutoScaleMin && mAutoScaleMax) +		{ +			mTickValue = tick_value; +		} +		else +		{ +			mTickValue = calc_tick_value(mMinBar, mMaxBar); +		}  	} +  	mCurMaxBar = LLSmoothInterpolation::lerp(mCurMaxBar, mMaxBar, 0.05f);  	mCurMinBar = LLSmoothInterpolation::lerp(mCurMinBar, mMinBar, 0.05f); @@ -302,13 +325,13 @@ void LLStatBar::draw()  											 LLFontGL::LEFT, LLFontGL::TOP);  	S32 decimal_digits = mDecimalDigits; -	if (is_approx_equal((F32)(S32)value, value)) +	if (is_approx_equal((F32)(S32)mean, mean))  	{  		decimal_digits = 0;  	} -	std::string value_str = llformat("%10.*f %s", decimal_digits, value, unit_label.c_str()); +	std::string value_str = llformat("%10.*f %s", decimal_digits, mean, unit_label.c_str()); -	// Draw the value. +	// Draw the current value.  	if (mOrientation == HORIZONTAL)  	{  		LLFontGL::getFontMonospace()->renderUTF8(value_str, 0, bar_right, getRect().getHeight(),  @@ -330,53 +353,65 @@ void LLStatBar::draw()  		S32 last_tick = 0;  		S32 last_label = 0;  		const S32 MIN_TICK_SPACING  = mOrientation == HORIZONTAL ? 20 : 30; -		const S32 MIN_LABEL_SPACING = mOrientation == HORIZONTAL ? 40 : 60; +		const S32 MIN_LABEL_SPACING = mOrientation == HORIZONTAL ? 30 : 60;  		// start counting from actual min, not current, animating min, so that ticks don't float between numbers -		for (F32 tick_value = mMinBar; tick_value <= mCurMaxBar; tick_value += mTickValue) +		// ensure ticks always hit 0 +		if (mTickValue > 0.f)  		{ -			const S32 begin = llfloor((tick_value - mCurMinBar)*value_scale); -			const S32 end = begin + tick_width; -			if (begin - last_tick < MIN_TICK_SPACING) +			F32 start = mCurMinBar < 0.f +				? llceil(-mCurMinBar / mTickValue) * -mTickValue +				: 0.f; +			for (F32 tick_value = start; ;tick_value += mTickValue)  			{ -				continue; -			} -			last_tick = begin; - -			S32 decimal_digits = mDecimalDigits; -			if (is_approx_equal((F32)(S32)tick_value, tick_value)) -			{ -				decimal_digits = 0; -			} -			std::string tick_string = llformat("%10.*f", decimal_digits, tick_value); - -			if (mOrientation == HORIZONTAL) -			{ -				if (begin - last_label > MIN_LABEL_SPACING) +				const S32 begin = llfloor((tick_value - mCurMinBar)*value_scale); +				const S32 end = begin + tick_width; +				if (begin - last_tick < MIN_TICK_SPACING)  				{ -					gl_rect_2d(bar_left, end, bar_right - tick_length, begin, LLColor4(1.f, 1.f, 1.f, 0.25f)); -					LLFontGL::getFontMonospace()->renderUTF8(tick_string, 0, bar_right, begin, -						LLColor4(1.f, 1.f, 1.f, 0.5f), -						LLFontGL::LEFT, LLFontGL::VCENTER); -					last_label = begin; +					continue;  				} -				else +				last_tick = begin; + +				S32 decimal_digits = mDecimalDigits; +				if (is_approx_equal((F32)(S32)tick_value, tick_value))  				{ -					gl_rect_2d(bar_left, end, bar_right - tick_length/2, begin, LLColor4(1.f, 1.f, 1.f, 0.1f)); +					decimal_digits = 0;  				} -			} -			else -			{ -				if (begin - last_label > MIN_LABEL_SPACING) +				std::string tick_string = llformat("%10.*f", decimal_digits, tick_value); + +				if (mOrientation == HORIZONTAL)  				{ -					gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length, LLColor4(1.f, 1.f, 1.f, 0.25f)); -					LLFontGL::getFontMonospace()->renderUTF8(tick_string, 0, begin - 1, bar_bottom - tick_length, -						LLColor4(1.f, 1.f, 1.f, 0.5f), -						LLFontGL::RIGHT, LLFontGL::TOP); -					last_label = begin; +					if (begin - last_label > MIN_LABEL_SPACING) +					{ +						gl_rect_2d(bar_left, end, bar_right - tick_length, begin, LLColor4(1.f, 1.f, 1.f, 0.25f)); +						LLFontGL::getFontMonospace()->renderUTF8(tick_string, 0, bar_right, begin, +							LLColor4(1.f, 1.f, 1.f, 0.5f), +							LLFontGL::LEFT, LLFontGL::VCENTER); +						last_label = begin; +					} +					else +					{ +						gl_rect_2d(bar_left, end, bar_right - tick_length/2, begin, LLColor4(1.f, 1.f, 1.f, 0.1f)); +					}  				}  				else  				{ -					gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length/2, LLColor4(1.f, 1.f, 1.f, 0.1f)); +					if (begin - last_label > MIN_LABEL_SPACING) +					{ +						gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length, LLColor4(1.f, 1.f, 1.f, 0.25f)); +						LLFontGL::getFontMonospace()->renderUTF8(tick_string, 0, begin - 1, bar_bottom - tick_length, +							LLColor4(1.f, 1.f, 1.f, 0.5f), +							LLFontGL::RIGHT, LLFontGL::TOP); +						last_label = begin; +					} +					else +					{ +						gl_rect_2d(begin, bar_top, end, bar_bottom - tick_length/2, LLColor4(1.f, 1.f, 1.f, 0.1f)); +					} +				} +				// always draw one tick value past end, so we can see part of the text, if possible +				if (tick_value > mCurMaxBar) +				{ +					break;  				}  			}  		} @@ -416,8 +451,7 @@ void LLStatBar::draw()  		if (mDisplayHistory && (mCountFloatp || mEventFloatp || mSampleFloatp))  		{  			const S32 num_values = frame_recording.getNumRecordedPeriods() - 1; -			F32 begin = 0; -			F32 end = 0; +			F32 value = 0;  			S32 i;  			gGL.color4f( 1.f, 0.f, 0.f, 1.f );  			gGL.begin( LLRender::QUADS ); @@ -427,49 +461,41 @@ void LLStatBar::draw()  			{  				F32 offset = ((F32)i / (F32)mNumFrames) * span;  				LLTrace::Recording& recording = frame_recording.getPrevRecording(i); -				if (mPerSec && mCountFloatp) + +				if (mCountFloatp)  				{ -					begin       = ((recording.getPerSec(*mCountFloatp)  - mCurMinBar) * value_scale); -					end         = ((recording.getPerSec(*mCountFloatp)  - mCurMinBar) * value_scale) + 1; +					value       = mPerSec  +									? recording.getPerSec(*mCountFloatp)  +									: recording.getSum(*mCountFloatp);  					num_samples = recording.getSampleCount(*mCountFloatp);  				} -				else +				else if (mEventFloatp)  				{ -					if (mCountFloatp) -					{ -						begin       = ((recording.getSum(*mCountFloatp)  - mCurMinBar) * value_scale); -						end         = ((recording.getSum(*mCountFloatp)  - mCurMinBar) * value_scale) + 1; -						num_samples = recording.getSampleCount(*mCountFloatp); -					} -					else if (mEventFloatp) -					{ -						begin       = ((recording.getMean(*mEventFloatp)  - mCurMinBar) * value_scale); -						end         = ((recording.getMean(*mEventFloatp)  - mCurMinBar) * value_scale) + 1; -						num_samples = recording.getSampleCount(*mEventFloatp); -					} -					else if (mSampleFloatp) -					{ -						begin       = ((recording.getMean(*mSampleFloatp)  - mCurMinBar) * value_scale); -						end         = ((recording.getMean(*mSampleFloatp)  - mCurMinBar) * value_scale) + 1; -						num_samples = recording.getSampleCount(*mSampleFloatp); -					} - 				} +					value       = recording.getMean(*mEventFloatp); +					num_samples = recording.getSampleCount(*mEventFloatp); +				} +				else if (mSampleFloatp) +				{ +					value       = recording.getMean(*mSampleFloatp); +					num_samples = recording.getSampleCount(*mSampleFloatp); +				}  				if (!num_samples) continue; +				F32 begin = (value  - mCurMinBar) * value_scale;  				if (mOrientation == HORIZONTAL)  				{ -					gGL.vertex2f((F32)bar_right - offset, end); +					gGL.vertex2f((F32)bar_right - offset, begin + 1);  					gGL.vertex2f((F32)bar_right - offset, begin); -					gGL.vertex2f((F32)bar_right - offset - 1.f, begin); -					gGL.vertex2f((F32)bar_right - offset - 1.f, end); +					gGL.vertex2f((F32)bar_right - offset - 1, begin); +					gGL.vertex2f((F32)bar_right - offset - 1, begin + 1);  				}  				else  				{ -					gGL.vertex2f(begin, (F32)bar_bottom+offset+1.f); -					gGL.vertex2f(begin, (F32)bar_bottom+offset); -					gGL.vertex2f(end, (F32)bar_bottom+offset); -					gGL.vertex2f(end, (F32)bar_bottom+offset+1.f); +					gGL.vertex2f(begin, (F32)bar_bottom + offset + 1); +					gGL.vertex2f(begin, (F32)bar_bottom + offset); +					gGL.vertex2f(begin + 1, (F32)bar_bottom + offset); +					gGL.vertex2f(begin + 1, (F32)bar_bottom + offset + 1 );  				}  			}  			gGL.end(); @@ -517,9 +543,9 @@ void LLStatBar::setStat(const std::string& stat_name)  void LLStatBar::setRange(F32 bar_min, F32 bar_max)  { -	mMinBar		= bar_min; -	mMaxBar		= bar_max; -	mTickValue	= calc_reasonable_tick_value(mMinBar, mMaxBar); +	mMinBar		= llmin(bar_min, bar_max); +	mMaxBar		= llmax(bar_min, bar_max); +	mTickValue	= calc_tick_value(mMinBar, mMaxBar);  }  LLRect LLStatBar::getRequiredRect() diff --git a/indra/llui/llstatbar.h b/indra/llui/llstatbar.h index a0299c0efb..fc925b1a74 100755 --- a/indra/llui/llstatbar.h +++ b/indra/llui/llstatbar.h @@ -49,7 +49,6 @@ public:  		Optional<bool>			show_per_sec,  								show_bar,  								show_history, -								show_mean,  								scale_range;  		Optional<S32>			num_frames, @@ -60,14 +59,13 @@ public:  		Params()  		:	label("label"),  			unit_label("unit_label"), -			bar_min("bar_min", 0.0f), -			bar_max("bar_max", 0.0f), -			tick_spacing("tick_spacing", 10.0f), +			bar_min("bar_min", 0.f), +			bar_max("bar_max", 0.f), +			tick_spacing("tick_spacing", 0.f),  			decimal_digits("decimal_digits", 3),  			show_per_sec("show_per_sec", true),  			show_bar("show_bar", false),  			show_history("show_history", false), -			show_mean("show_mean", true),  			scale_range("scale_range", true),  			num_frames("num_frames", 200),  			max_height("max_height", 100), @@ -103,9 +101,8 @@ private:  	bool         mPerSec,				// Use the per sec stats.  				 mDisplayBar,			// Display the bar graph.  				 mDisplayHistory, -				 mDisplayMean,			// If true, display mean, if false, display current value -				 mScaleMax, -				 mScaleMin; +				 mAutoScaleMax, +				 mAutoScaleMin;  	EOrientation mOrientation;  	LLTrace::TraceType<LLTrace::CountAccumulator>*		mCountFloatp; diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml index def660e1e4..ad7094c6d8 100755 --- a/indra/newview/skins/default/xui/en/floater_stats.xml +++ b/indra/newview/skins/default/xui/en/floater_stats.xml @@ -35,10 +35,9 @@                    unit_label="frames"                    stat="FPS"                    decimal_digits="1" -                  bar_max="60"                    show_bar="true"                    show_history="true"/> -        <stat_bar name="bandwidth" +       <!-- <stat_bar name="bandwidth"                    label="Bandwidth"                    stat="Bandwidth"                    show_bar="true"/> @@ -48,8 +47,7 @@                    decimal_digits="3"/>          <stat_bar name="ping"                    label="Ping Sim" -                  stat="simpingstat" -                  show_mean="false"/> +                  stat="simpingstat"/>        </stat_view>       <stat_view name="advanced" @@ -179,20 +177,17 @@                    label="Time Dilation"                    stat="simtimedilation"                    decimal_digits="3" -                  bar_max="1"  -                  show_mean="false"/> +                  bar_max="1" />          <stat_bar name="simfps"                    label="Sim FPS"                    stat="simfps"                    decimal_digits="1" -                  bar_max="45"  -                  show_mean="false"/> +                  bar_max="45" />          <stat_bar name="simphysicsfps"                    label="Physics FPS"                    stat="simphysicsfps"                    decimal_digits="1" -                  bar_max="45"  -                  show_mean="false"/> +                  bar_max="45" />          <stat_view name="physicsdetail"                     label="Physics Details"                     follows="left|top|right" @@ -200,58 +195,47 @@                     show_label="true">            <stat_bar name="physicspinnedtasks"                      label="Pinned Objects" -                    stat="physicspinnedtasks" -                    show_mean="false"/> +                    stat="physicspinnedtasks"/>            <stat_bar name="physicslodtasks"                      label="Low LOD Objects" -                    stat="physicslodtasks" -                    show_mean="false"/> +                    stat="physicslodtasks"/>            <stat_bar name="physicsmemoryallocated"                      label="Memory Allocated"                      stat="physicsmemoryallocated" -                    decimal_digits="1" -                    show_mean="false"/> +                    decimal_digits="1"/>          </stat_view>          <stat_bar name="simagentups"                    label="Agent Updates/Sec"                    stat="simagentups" -                  decimal_digits="1" -                  show_mean="false"/> +                  decimal_digits="1"/>          <stat_bar name="simmainagents"                    label="Main Agents"                    stat="simmainagents" -                  bar_max="80"  -                  show_mean="false"/> +                  bar_max="80"/>          <stat_bar name="simchildagents"                    label="Child Agents" -                  stat="simchildagents" -                  show_mean="false"/> +                  stat="simchildagents"/>          <stat_bar name="simobjects"                    label="Objects"                    stat="simobjects" -                  bar_max="30000"  -                  show_mean="false"/> +                  bar_max="30000" />          <stat_bar name="simactiveobjects"                    label="Active Objects"                    stat="simactiveobjects" -                  bar_max="5000"  -                  show_mean="false"/> +                  bar_max="5000"/>          <stat_bar name="simactivescripts"                    label="Active Scripts"                    stat="simactivescripts" -                  bar_max="15000"  -                  show_mean="false"/> +                  bar_max="15000"/>          <stat_bar name="simpctscriptsrun"                    label="Scripts Run"                    stat="simpctscriptsrun"                    bar_max="100" -                  decimal_digits="3" -                  show_mean="true"/> +                  decimal_digits="3"/>          <stat_bar name="simscripteps"                    label="Script Events"                    stat="simscripteps" -                  unit_label="eps" -                  show_mean="false"/> +                  unit_label="eps"/>          <stat_view name="simpathfinding"                     label="Pathfinding"                     follows="left|top|right" @@ -260,8 +244,7 @@            <stat_bar name="simsimaistepmsec"                      label="AI Step Time"                      stat="simsimaistepmsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simsimskippedsilhouettesteps"                      label="Skipped Silhouette Steps"                      stat="simsimskippedsilhouettesteps" @@ -270,32 +253,26 @@            <stat_bar name="simsimpctsteppedcharacters"                      stat="simsimpctsteppedcharacters"                      bar_max="100" -                    decimal_digits="1" -                    show_mean="true"/> +                    decimal_digits="1"/>          </stat_view>          <stat_bar name="siminpps"                    label="Packets In"                    stat="siminpps" -                  unit_label="pkt/sec" -                  show_mean="false"/> +                  unit_label="pkt/sec"/>          <stat_bar name="simoutpps"                    label="Packets Out"                    stat="simoutpps" -                  unit_label="pkt/sec"  -                  show_mean="false"/> +                  unit_label="pkt/sec"/>          <stat_bar name="simpendingdownloads"                    label="Pending Downloads" -                  stat="simpendingdownloads" -                  show_mean="false"/> +                  stat="simpendingdownloads"/>          <stat_bar name="simpendinguploads"                    label="Pending Uploads" -                  stat="simpendinguploads" -                  show_mean="false"/> +                  stat="simpendinguploads"/>          <stat_bar name="simtotalunackedbytes"                    label="Total Unacked Bytes"                    stat="simtotalunackedbytes" -                  decimal_digits="1" -                  show_mean="false"/> +                  decimal_digits="1"/>          <stat_view name="simperf"                     label="Time"                     follows="left|top|right" @@ -304,43 +281,35 @@            <stat_bar name="simframemsec"                      label="Total Frame Time"                      stat="simframemsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simnetmsec"                      label="Net Time"                      stat="simnetmsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simsimphysicsmsec"                      label="Physics Time"                      stat="simsimphysicsmsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simsimothermsec"                      label="Simulation Time"                      stat="simsimothermsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simagentmsec"                      label="Agent Time"                      stat="simagentmsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simimagesmsec"                      label="Images Time"                      stat="simimagesmsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simscriptmsec"                      label="Script Time"                      stat="simscriptmsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_bar name="simsparemsec"                      label="Spare Time"                      stat="simsparemsec" -                    decimal_digits="3" -                    show_mean="false"/> +                    decimal_digits="3"/>            <stat_view name="timedetails"                       label="Time Details"                       follows="left|top|right" @@ -349,30 +318,25 @@              <stat_bar name="simsimphysicsstepmsec"                        label="Physics Step"                        stat="simsimphysicsstepmsec" -                      decimal_digits="3" -                      show_mean="false"/> +                      decimal_digits="3"/>              <stat_bar name="simsimphysicsshapeupdatemsec"                        label="Update Phys Shapes"                        stat="simsimphysicsshapeupdatemsec" -                      decimal_digits="3" -                      show_mean="false"/> +                      decimal_digits="3"/>              <stat_bar name="simsimphysicsothermsec"                        label="Physics Other"                        stat="simsimphysicsothermsec" -                      decimal_digits="3" -                      show_mean="false"/> +                      decimal_digits="3"/>              <stat_bar name="simsleepmsec"                        label="Sleep Time"                        stat="simsleepmsec" -                      decimal_digits="3" -                      show_mean="false"/> +                      decimal_digits="3"/>              <stat_bar name="simpumpiomsec"                        label="Pump IO"                        stat="simpumpiomsec" -                      decimal_digits="3" -                      show_mean="false"/> +                      decimal_digits="3"/>            </stat_view> -        </stat_view> +        </stat_view>-->        </stat_view>      </container_view>    </scroll_container> | 
