diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2016-08-19 11:58:32 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2016-08-19 11:58:32 +0300 | 
| commit | 8db7540908abf1eb6baab0d5d9e8028f489f5927 (patch) | |
| tree | 7bf2238b596eda00de3cb061dc03ca69ebd5b604 | |
| parent | e8b23bbfffd38dbdad0cd57b236fd4604232ff6c (diff) | |
MAINT-6649 PRIM_TEXT/llSetText upper draw distance limit
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llhudtext.cpp | 17 | 
2 files changed, 26 insertions, 2 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 00c769607f..d3b9f0faf0 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -7940,6 +7940,17 @@        <key>Value</key>        <integer>100000</integer>      </map> +    <key>PrimTextMaxDrawDistance</key> +    <map> +      <key>Comment</key> +      <string>Maximum draw distance beyond which PRIM_TEXT won't be rendered</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>F32</string> +      <key>Value</key> +      <real>64.0</real> +    </map>      <key>ProbeHardwareOnStartup</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp index 52e83fe412..6b1e196182 100644 --- a/indra/newview/llhudtext.cpp +++ b/indra/newview/llhudtext.cpp @@ -53,7 +53,7 @@ const F32 VERTICAL_PADDING = 12.f;  const F32 BUFFER_SIZE = 2.f;  const F32 HUD_TEXT_MAX_WIDTH = 190.f;  const F32 HUD_TEXT_MAX_WIDTH_NO_BUBBLE = 1000.f; -const F32 MAX_DRAW_DISTANCE = 64.f; +const F32 MAX_DRAW_DISTANCE = 300.f;  std::set<LLPointer<LLHUDText> > LLHUDText::sTextObjects;  std::vector<LLPointer<LLHUDText> > LLHUDText::sVisibleTextObjects; @@ -394,7 +394,20 @@ void LLHUDText::updateVisibility()  	LLVector3 pos_agent_center = gAgent.getPosAgentFromGlobal(mPositionGlobal) - dir_from_camera;  	F32 last_distance_center = (pos_agent_center - LLViewerCamera::getInstance()->getOrigin()).magVec(); -	if(last_distance_center > MAX_DRAW_DISTANCE) +	F32 max_draw_distance = gSavedSettings.getF32("PrimTextMaxDrawDistance"); + +	if(max_draw_distance < 0) +	{ +		max_draw_distance = 0; +		gSavedSettings.setF32("PrimTextMaxDrawDistance", max_draw_distance); +	} +	else if(max_draw_distance > MAX_DRAW_DISTANCE) +	{ +		max_draw_distance = MAX_DRAW_DISTANCE; +		gSavedSettings.setF32("PrimTextMaxDrawDistance", MAX_DRAW_DISTANCE); +	} + +	if(last_distance_center > max_draw_distance)  	{  		mVisible = FALSE;  		return; | 
