SL-15297 performance floater UI update #2

master
Mnikolenko Productengine 2021-07-19 20:07:03 +03:00
parent 84ae60a3b3
commit 928191f525
16 changed files with 249 additions and 158 deletions

View File

@ -234,8 +234,7 @@ void LLScrollListBar::draw(const LLColor4& color, const LLColor4& highlight_colo
S32 left = bar_width - bar_width * mRatio;
left = llclamp(left, mLeftPad, getWidth() - mRightPad - 1);
gl_line_2d(left, mBottom, getWidth() - mRightPad, mBottom, mColor);
gl_line_2d(left, mBottom - 1, getWidth() - mRightPad, mBottom - 1, mColor);
gl_rect_2d(left, mBottom, getWidth() - mRightPad, mBottom - 1, mColor);
}
//

View File

@ -154,6 +154,7 @@ public:
void setText(const LLStringExplicit& text);
void setFontStyle(const U8 font_style);
void setAlignment(LLFontGL::HAlign align) { mFontAlignment = align; }
protected:
LLUIString mText;

View File

@ -114,10 +114,10 @@ BOOL LLFloaterPerformance::postBuild()
mObjectList->setIconClickedCallback(boost::bind(&LLFloaterPerformance::detachItem, this, _1));
mSettingsPanel->getChild<LLButton>("advanced_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickAdvanced, this));
mSettingsPanel->getChild<LLCheckBoxCtrl>("hide_avatars")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickHideAvatars, this));
mSettingsPanel->getChild<LLCheckBoxCtrl>("hide_avatars")->set(!LLPipeline::hasRenderTypeControl(LLPipeline::RENDER_TYPE_AVATAR));
mNearbyPanel->getChild<LLButton>("exceptions_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickExceptions, this));
mNearbyPanel->getChild<LLCheckBoxCtrl>("hide_avatars")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickHideAvatars, this));
mNearbyPanel->getChild<LLCheckBoxCtrl>("hide_avatars")->set(!LLPipeline::hasRenderTypeControl(LLPipeline::RENDER_TYPE_AVATAR));
mNearbyList = mNearbyPanel->getChild<LLNameListCtrl>("nearby_list");
mNearbyList->setRightMouseDownCallback(boost::bind(&LLFloaterPerformance::onAvatarListRightClick, this, _1, _2, _3));
@ -164,15 +164,12 @@ void LLFloaterPerformance::draw()
else if (mNearbyPanel->getVisible())
{
populateNearbyList();
mNearbyPanel->getChild<LLCheckBoxCtrl>("hide_avatars")->set(!LLPipeline::hasRenderTypeControl(LLPipeline::RENDER_TYPE_AVATAR));
}
else if (mComplexityPanel->getVisible())
{
populateObjectList();
}
else if (mSettingsPanel->getVisible())
{
mSettingsPanel->getChild<LLCheckBoxCtrl>("hide_avatars")->set(!LLPipeline::hasRenderTypeControl(LLPipeline::RENDER_TYPE_AVATAR));
}
mUpdateTimer->setTimerExpirySec(REFRESH_INTERVAL);
}
@ -223,7 +220,7 @@ void LLFloaterPerformance::populateHUDList()
for (iter = complexity_list.begin(); iter != end; ++iter)
{
LLHUDComplexity hud_object_complexity = *iter;
S32 obj_cost_short = hud_object_complexity.objectsCost / 1000;
LLSD item;
item["special_id"] = hud_object_complexity.objectId;
item["target"] = LLNameListCtrl::SPECIAL;
@ -231,14 +228,14 @@ void LLFloaterPerformance::populateHUDList()
row[0]["column"] = "complex_visual";
row[0]["type"] = "bar";
LLSD& value = row[0]["value"];
value["ratio"] = (F32)hud_object_complexity.objectsCost / max_complexity;
value["ratio"] = (F32)obj_cost_short / max_complexity * 1000;
value["bottom"] = BAR_BOTTOM_PAD;
value["left_pad"] = BAR_LEFT_PAD;
value["right_pad"] = BAR_RIGHT_PAD;
row[1]["column"] = "complex_value";
row[1]["type"] = "text";
row[1]["value"] = std::to_string(hud_object_complexity.objectsCost);
row[1]["value"] = std::to_string(obj_cost_short);
row[1]["font"]["name"] = "SANSSERIF";
row[2]["column"] = "name";
@ -246,7 +243,15 @@ void LLFloaterPerformance::populateHUDList()
row[2]["value"] = hud_object_complexity.objectName;
row[2]["font"]["name"] = "SANSSERIF";
mHUDList->addElement(item);
LLScrollListItem* obj = mHUDList->addElement(item);
if (obj)
{
LLScrollListText* value_text = dynamic_cast<LLScrollListText*>(obj->getColumn(1));
if (value_text)
{
value_text->setAlignment(LLFontGL::HCENTER);
}
}
}
mHUDList->sortByColumnIndex(1, FALSE);
mHUDList->setScrollPos(prev_pos);
@ -274,7 +279,7 @@ void LLFloaterPerformance::populateObjectList()
for (iter = complexity_list.begin(); iter != end; ++iter)
{
LLObjectComplexity object_complexity = *iter;
S32 obj_cost_short = object_complexity.objectCost / 1000;
LLSD item;
item["special_id"] = object_complexity.objectId;
item["target"] = LLNameListCtrl::SPECIAL;
@ -282,14 +287,14 @@ void LLFloaterPerformance::populateObjectList()
row[0]["column"] = "complex_visual";
row[0]["type"] = "bar";
LLSD& value = row[0]["value"];
value["ratio"] = (F32)object_complexity.objectCost / max_complexity;
value["ratio"] = (F32)obj_cost_short / max_complexity * 1000;
value["bottom"] = BAR_BOTTOM_PAD;
value["left_pad"] = BAR_LEFT_PAD;
value["right_pad"] = BAR_RIGHT_PAD;
row[1]["column"] = "complex_value";
row[1]["type"] = "text";
row[1]["value"] = std::to_string(object_complexity.objectCost);
row[1]["value"] = std::to_string(obj_cost_short);
row[1]["font"]["name"] = "SANSSERIF";
row[2]["column"] = "name";
@ -297,7 +302,15 @@ void LLFloaterPerformance::populateObjectList()
row[2]["value"] = object_complexity.objectName;
row[2]["font"]["name"] = "SANSSERIF";
mObjectList->addElement(item);
LLScrollListItem* obj = mObjectList->addElement(item);
if (obj)
{
LLScrollListText* value_text = dynamic_cast<LLScrollListText*>(obj->getColumn(1));
if (value_text)
{
value_text->setAlignment(LLFontGL::HCENTER);
}
}
}
mObjectList->sortByColumnIndex(1, FALSE);
mObjectList->setScrollPos(prev_pos);
@ -321,20 +334,21 @@ void LLFloaterPerformance::populateNearbyList()
LLVOAvatar* avatar = dynamic_cast<LLVOAvatar*>(*char_iter);
if (avatar && (LLVOAvatar::AOA_INVISIBLE != avatar->getOverallAppearance()))
{
S32 complexity_short = avatar->getVisualComplexity() / 1000;
LLSD item;
item["id"] = avatar->getID();
LLSD& row = item["columns"];
row[0]["column"] = "complex_visual";
row[0]["type"] = "bar";
LLSD& value = row[0]["value"];
value["ratio"] = (F32)avatar->getVisualComplexity() / mNearbyMaxComplexity;
value["ratio"] = (F32)complexity_short / mNearbyMaxComplexity * 1000;
value["bottom"] = BAR_BOTTOM_PAD;
value["left_pad"] = BAR_LEFT_PAD;
value["right_pad"] = BAR_RIGHT_PAD;
row[1]["column"] = "complex_value";
row[1]["type"] = "text";
row[1]["value"] = std::to_string( avatar->getVisualComplexity());
row[1]["value"] = std::to_string(complexity_short);
row[1]["font"]["name"] = "SANSSERIF";
row[2]["column"] = "name";
@ -345,24 +359,36 @@ void LLFloaterPerformance::populateNearbyList()
LLScrollListItem* av_item = mNearbyList->addElement(item);
if(av_item)
{
LLScrollListText* value_text = dynamic_cast<LLScrollListText*>(av_item->getColumn(1));
if (value_text)
{
value_text->setAlignment(LLFontGL::HCENTER);
}
LLScrollListText* name_text = dynamic_cast<LLScrollListText*>(av_item->getColumn(2));
if (name_text)
{
std::string color = "white";
if (LLVOAvatar::AOA_JELLYDOLL == avatar->getOverallAppearance())
if (avatar->isSelf())
{
color = "LabelDisabledColor";
LLScrollListBar* bar = dynamic_cast<LLScrollListBar*>(av_item->getColumn(0));
if (bar)
name_text->setColor(LLUIColorTable::instance().getColor("DrYellow"));
}
else
{
std::string color = "white";
if (LLVOAvatar::AOA_JELLYDOLL == avatar->getOverallAppearance())
{
bar->setColor(LLUIColorTable::instance().getColor(color));
color = "LabelDisabledColor";
LLScrollListBar* bar = dynamic_cast<LLScrollListBar*>(av_item->getColumn(0));
if (bar)
{
bar->setColor(LLUIColorTable::instance().getColor(color));
}
}
else if (LLVOAvatar::AOA_NORMAL == avatar->getOverallAppearance())
{
color = LLAvatarActions::isFriend(avatar->getID()) ? "ConversationFriendColor" : "white";
}
name_text->setColor(LLUIColorTable::instance().getColor(color));
}
else if (LLVOAvatar::AOA_NORMAL == avatar->getOverallAppearance())
{
color = LLAvatarActions::isFriend(avatar->getID()) ? "ConversationFriendColor" : "white";
}
name_text->setColor(LLUIColorTable::instance().getColor(color));
}
}
}
@ -376,12 +402,13 @@ void LLFloaterPerformance::populateNearbyList()
void LLFloaterPerformance::getNearbyAvatars(std::vector<LLCharacter*> &valid_nearby_avs)
{
static LLCachedControl<F32> render_far_clip(gSavedSettings, "RenderFarClip", 64);
mNearbyMaxComplexity = 0;
F32 radius = render_far_clip * render_far_clip;
std::vector<LLCharacter*>::iterator char_iter = LLCharacter::sInstances.begin();
while (char_iter != LLCharacter::sInstances.end())
{
LLVOAvatar* avatar = dynamic_cast<LLVOAvatar*>(*char_iter);
if (avatar && !avatar->isDead() && !avatar->isControlAvatar() && !avatar->isSelf())
if (avatar && !avatar->isDead() && !avatar->isControlAvatar())
{
if ((dist_vec_squared(avatar->getPositionGlobal(), gAgent.getPositionGlobal()) > radius) &&
(dist_vec_squared(avatar->getPositionGlobal(), gAgentCamera.getCameraPositionGlobal()) > radius))
@ -426,13 +453,15 @@ void LLFloaterPerformance::updateMaxComplexity()
{
LLAvatarComplexityControls::updateMax(
mNearbyPanel->getChild<LLSliderCtrl>("IndirectMaxComplexity"),
mNearbyPanel->getChild<LLTextBox>("IndirectMaxComplexityText"));
mNearbyPanel->getChild<LLTextBox>("IndirectMaxComplexityText"),
true);
}
void LLFloaterPerformance::updateComplexityText()
{
LLAvatarComplexityControls::setText(gSavedSettings.getU32("RenderAvatarMaxComplexity"),
mNearbyPanel->getChild<LLTextBox>("IndirectMaxComplexityText", true));
mNearbyPanel->getChild<LLTextBox>("IndirectMaxComplexityText", true),
true);
}
static LLVOAvatar* find_avatar(const LLUUID& id)

View File

@ -1455,7 +1455,7 @@ void LLFloaterPreference::refreshUI()
refresh();
}
void LLAvatarComplexityControls::updateMax(LLSliderCtrl* slider, LLTextBox* value_label)
void LLAvatarComplexityControls::updateMax(LLSliderCtrl* slider, LLTextBox* value_label, bool short_val)
{
// Called when the IndirectMaxComplexity control changes
// Responsible for fixing the slider label (IndirectMaxComplexityText) and setting RenderAvatarMaxComplexity
@ -1477,10 +1477,10 @@ void LLAvatarComplexityControls::updateMax(LLSliderCtrl* slider, LLTextBox* valu
}
gSavedSettings.setU32("RenderAvatarMaxComplexity", (U32)max_arc);
setText(max_arc, value_label);
setText(max_arc, value_label, short_val);
}
void LLAvatarComplexityControls::setText(U32 value, LLTextBox* text_box)
void LLAvatarComplexityControls::setText(U32 value, LLTextBox* text_box, bool short_val)
{
if (0 == value)
{
@ -1488,7 +1488,8 @@ void LLAvatarComplexityControls::setText(U32 value, LLTextBox* text_box)
}
else
{
text_box->setText(llformat("%d", value));
std::string text_value = short_val ? llformat("%d", value / 1000) : llformat("%d", value);
text_box->setText(text_value);
}
}

View File

@ -351,8 +351,8 @@ private:
class LLAvatarComplexityControls
{
public:
static void updateMax(LLSliderCtrl* slider, LLTextBox* value_label);
static void setText(U32 value, LLTextBox* text_box);
static void updateMax(LLSliderCtrl* slider, LLTextBox* value_label, bool short_val = false);
static void setText(U32 value, LLTextBox* text_box, bool short_val = false);
static void setIndirectControls();
static void setIndirectMaxNonImpostors();
static void setIndirectMaxArc();

View File

@ -363,7 +363,7 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
else if (LLAvatarNameCache::get(id, &av_name))
{
if (mShortNames)
fullname = av_name.getDisplayName();
fullname = av_name.getDisplayName(true);
else
fullname = av_name.getCompleteName();
}

View File

@ -3149,6 +3149,8 @@ class LLAvatarCheckImpostorMode : public view_listener_t
return (avatar->getVisualMuteSettings() == LLVOAvatar::AV_DO_NOT_RENDER);
case 2:
return (avatar->getVisualMuteSettings() == LLVOAvatar::AV_ALWAYS_RENDER);
case 4:
return (avatar->getVisualMuteSettings() != LLVOAvatar::AV_RENDER_NORMALLY);
default:
return false;
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater
height="692"
height="592"
layout="topleft"
name="performance"
save_rect="true"
@ -47,7 +47,7 @@
text_color="White"
height="20"
layout="topleft"
left_pad="0"
left_pad="3"
top="13"
name="fps_lbl"
width="450">
@ -93,7 +93,7 @@
border="true"
bevel_style="none"
follows="left|top"
height="70"
height="50"
width="560"
name="settings_subpanel"
layout="topleft"
@ -107,7 +107,7 @@
layout="topleft"
left="10"
name="settings_lbl"
top="12"
top="7"
width="180">
Graphics settings
</text>
@ -119,7 +119,7 @@
layout="topleft"
left="10"
name="settings_desc"
top_pad="10"
top_pad="0"
width="395">
Choose settings for distance, water, lighting and more.
</text>
@ -130,7 +130,7 @@
mouse_opaque="true"
name="icon_arrow3"
follows="right|top"
top="29"
top="19"
right="-20"/>
</panel>
<panel
@ -140,11 +140,11 @@
border="true"
bevel_style="none"
follows="left|top"
height="70"
height="50"
width="560"
name="nearby_subpanel"
layout="topleft"
top_pad="20">
top_pad="10">
<text
follows="left|top"
font="SansSerifLarge"
@ -153,7 +153,7 @@
layout="topleft"
left="10"
name="avatars_nearby_lbl"
top="12"
top="7"
width="205">
Avatars nearby
</text>
@ -165,7 +165,7 @@
layout="topleft"
left="10"
name="avatars_nearby_desc"
top_pad="10"
top_pad="0"
width="395">
Manage which nearby avatars are fully displayed.
</text>
@ -176,7 +176,7 @@
mouse_opaque="true"
name="icon_arrow2"
follows="right|top"
top="29"
top="19"
right="-20"/>
</panel>
<panel
@ -186,11 +186,11 @@
border="true"
bevel_style="none"
follows="left|top"
height="70"
height="50"
width="560"
name="complexity_subpanel"
layout="topleft"
top_pad="20">
top_pad="10">
<text
follows="left|top"
font="SansSerifLarge"
@ -199,7 +199,7 @@
layout="topleft"
left="10"
name="complexity_lbl"
top="12"
top="7"
width="180">
Your avatar complexity
</text>
@ -211,7 +211,7 @@
layout="topleft"
left="10"
name="complexity_info"
top_pad="10"
top_pad="0"
width="455">
Reduce the complexity of your avatar if you aren't satisfied with current FPS.
</text>
@ -222,7 +222,7 @@
mouse_opaque="true"
name="icon_arrow4"
follows="right|top"
top="29"
top="19"
right="-20"/>
</panel>
<panel
@ -232,11 +232,11 @@
border="true"
bevel_style="none"
follows="left|top"
height="70"
height="50"
width="560"
name="huds_subpanel"
layout="topleft"
top_pad="20">
top_pad="10">
<text
follows="left|top"
font="SansSerifLarge"
@ -245,7 +245,7 @@
layout="topleft"
left="10"
name="huds_lbl"
top="12"
top="7"
width="135">
Your active HUDs
</text>
@ -257,7 +257,7 @@
layout="topleft"
left="10"
name="huds_desc"
top_pad="10"
top_pad="0"
width="395">
Removing HUDs you are not using can improve speed.
</text>
@ -268,7 +268,7 @@
mouse_opaque="true"
name="icon_arrow4"
follows="right|top"
top="29"
top="19"
right="-20"/>
</panel>
</panel>

View File

@ -131,22 +131,12 @@
<menu_item_separator />
<context_menu
label="Render Avatar"
label="Display this avatar"
layout="topleft"
name="Render Avatar">
<menu_item_check
name="RenderNormally"
label="Default">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="0" />
<menu_item_check.on_click
function="Avatar.SetImpostorMode"
parameter="0" />
</menu_item_check>
name="Render Avatar">
<menu_item_check
name="AlwaysRenderFully"
label="Always">
label="Always full detail">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="2" />
@ -156,7 +146,7 @@
</menu_item_check>
<menu_item_check
name="DoNotRender"
label="Never">
label="Never full detail">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="1" />
@ -164,6 +154,16 @@
function="Avatar.SetImpostorMode"
parameter="1" />
</menu_item_check>
<menu_item_call
name="RenderNormally"
label="Remove from exceptions">
<menu_item_call.on_visible
function="Avatar.CheckImpostorMode"
parameter="4" />
<menu_item_call.on_click
function="Avatar.SetImpostorMode"
parameter="0" />
</menu_item_call>
<menu_item_separator />
<menu_item_call
label="Exceptions..."

View File

@ -122,39 +122,39 @@
<menu_item_separator />
<context_menu
label="Render Avatar"
label="Display this avatar"
layout="topleft"
name="Render Avatar">
<menu_item_check
name="RenderNormally"
label="Default">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="0" />
<menu_item_check.on_click
function="Avatar.SetImpostorMode"
parameter="0" />
</menu_item_check>
<menu_item_check
name="AlwaysRenderFully"
label="Always">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="2" />
<menu_item_check.on_click
function="Avatar.SetImpostorMode"
parameter="2" />
</menu_item_check>
<menu_item_check
name="DoNotRender"
label="Never">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="1" />
<menu_item_check.on_click
function="Avatar.SetImpostorMode"
parameter="1" />
</menu_item_check>
name="Render Avatar">
<menu_item_check
name="AlwaysRenderFully"
label="Always full detail">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="2" />
<menu_item_check.on_click
function="Avatar.SetImpostorMode"
parameter="2" />
</menu_item_check>
<menu_item_check
name="DoNotRender"
label="Never full detail">
<menu_item_check.on_check
function="Avatar.CheckImpostorMode"
parameter="1" />
<menu_item_check.on_click
function="Avatar.SetImpostorMode"
parameter="1" />
</menu_item_check>
<menu_item_call
name="RenderNormally"
label="Remove from exceptions">
<menu_item_call.on_visible
function="Avatar.CheckImpostorMode"
parameter="4" />
<menu_item_call.on_click
function="Avatar.SetImpostorMode"
parameter="0" />
</menu_item_call>
<menu_item_separator />
<menu_item_call
label="Exceptions..."

View File

@ -126,13 +126,6 @@
<menu_item_call.on_click
function="Floater.Toggle"
parameter="preferences" />
</menu_item_call>
<menu_item_call
label="Performance..."
name="Performance">
<menu_item_call.on_click
function="Floater.Toggle"
parameter="performance" />
</menu_item_call>
<menu_item_call
label="Toolbar buttons..."
@ -860,7 +853,13 @@
parameter="UseDebugMenus" />
</menu_item_check>
</menu>
<menu_item_call
label="Improve graphics speed..."
name="Performance">
<menu_item_call.on_click
function="Floater.Toggle"
parameter="performance" />
</menu_item_call>
<menu_item_separator/>
<!-- <menu_item_check
label="Show Navigation Bar"

View File

@ -2,7 +2,7 @@
<panel
bevel_style="none"
follows="left|top"
height="490"
height="530"
width="580"
name="panel_performance_complexity"
layout="topleft"
@ -54,7 +54,7 @@
left="20"
name="attachments_desc1"
width="580">
If your avatar is very complex, some other people may not see you in full detail and
Attachments make your avatar more complex. If your avatar is very complex, some other
</text>
<text
follows="left|top"
@ -66,12 +66,24 @@
left="20"
name="attachments_desc2"
width="580">
your own graphics speed may be reduced.
people may not see you in full detail, and your graphics speed may be reduced. Removing
</text>
<text
follows="left|top"
font="SansSerifSmall"
text_color="White"
height="18"
layout="topleft"
top_pad="3"
left="20"
name="attachments_desc3"
width="580">
heavy attachments that you dont need can help.
</text>
<name_list
column_padding="0"
draw_stripes="true"
height="220"
height="379"
follows="left|top"
layout="topleft"
name="obj_list"

View File

@ -2,7 +2,7 @@
<panel
bevel_style="none"
follows="left|top"
height="490"
height="530"
width="580"
name="panel_performance_huds"
layout="topleft"
@ -71,7 +71,7 @@
<name_list
column_padding="0"
draw_stripes="true"
height="220"
height="400"
follows="left|top"
layout="topleft"
name="hud_list"

View File

@ -2,7 +2,7 @@
<panel
bevel_style="none"
follows="left|top"
height="490"
height="530"
width="580"
name="panel_performance_nearby"
layout="topleft"
@ -54,7 +54,7 @@
top_pad="5"
name="av_nearby_desc"
width="580">
Avatars more complex than your chosen limit will be shown in silhouette.
Hide the most complex avatars to boost speed.
</text>
<slider
control_name="IndirectMaxComplexity"
@ -63,7 +63,7 @@
height="16"
initial_value="101"
increment="1"
label="Maximum avatar complexity"
label="Maximum complexity (K)"
text_color="White"
label_width="165"
layout="topleft"
@ -90,11 +90,12 @@
<name_list
column_padding="0"
draw_stripes="true"
height="220"
height="280"
left="20"
follows="left|top"
layout="topleft"
sort_column="complex_value"
short_names="true"
name="nearby_list"
name_column="name"
top_pad="10"
@ -144,6 +145,70 @@
left="18"
width="256">
</check_box>
<view_border
bevel_style="in"
height="0"
layout="topleft"
name="border"
top_pad="15"
left="20"
width="540"/>
<check_box
height="16"
initial_value="true"
label="Hide avatars completely (good for landscape photos)"
layout="topleft"
name="hide_avatars"
top_delta="15"
left="18"
width="280">
</check_box>
<text
type="string"
length="1"
follows="left|top"
height="15"
layout="topleft"
left="20"
name="name_tags_textbox"
top_pad="10"
width="400">
Name tags:
</text>
<radio_group
control_name="AvatarNameTagMode"
height="20"
layout="topleft"
left="120"
top_delta="0"
name="name_tag_mode">
<radio_item
label="Off"
name="radio"
top_delta="20"
layout="topleft"
height="16"
left="0"
value="0"
width="75" />
<radio_item
label="On"
left_pad="0"
layout="topleft"
top_delta="0"
height="16"
name="radio2"
value="1"
width="75" />
<radio_item
label="Show briefly"
left_pad="0"
name="radio3"
height="16"
layout="topleft"
top_delta="0"
value="2"
width="160" />
</radio_group>
</panel>

View File

@ -2,7 +2,7 @@
<panel
bevel_style="none"
follows="left|top"
height="630"
height="530"
width="580"
name="panel_performance_preferences"
layout="topleft"
@ -44,11 +44,21 @@
width="300">
Graphics settings
</text>
<button
follows="top|left"
height="23"
label="Open Advanced Settings"
layout="topleft"
left="360"
name="advanced_btn"
top_delta="0"
width="200"/>
<view_border
bevel_style="in"
height="0"
layout="topleft"
name="border1"
left="20"
top_pad="8"
width="540"/>
<text
@ -156,7 +166,7 @@
height="0"
layout="topleft"
name="border2"
top_pad="15"
top_pad="5"
left="20"
width="540"/>
<text
@ -238,7 +248,7 @@
height="0"
layout="topleft"
name="border3"
top_pad="15"
top_pad="5"
left="20"
width="540"/>
<text
@ -325,7 +335,7 @@
height="0"
layout="topleft"
name="border3"
top_pad="15"
top_pad="7"
left="20"
width="540"/>
<text
@ -418,7 +428,7 @@
height="0"
layout="topleft"
name="border4"
top_pad="15"
top_pad="7"
left="20"
width="540"/>
<text
@ -469,33 +479,6 @@
width="180">
(Enter value between 0.0 and 4.0)
</text>
<check_box
height="16"
initial_value="true"
label="Hide avatars completely (good for landscape photos)"
layout="topleft"
name="hide_avatars"
top_delta="29"
left="157"
width="280">
</check_box>
<view_border
bevel_style="in"
height="0"
layout="topleft"
name="border5"
top_pad="10"
left="20"
width="540"/>
<button
follows="top|left"
height="23"
label="Open Advanced Settings"
layout="topleft"
left="160"
name="advanced_btn"
top_pad="12"
width="200"/>
<text
follows="left|top"
font="SansSerifSmall"

View File

@ -4271,7 +4271,7 @@ Try enclosing path to the editor with double quotes.
<string name="preset_combo_label">-Empty list-</string>
<string name="Default">Default</string>
<string name="none_paren_cap">(None)</string>
<string name="no_limit">No Limit</string>
<string name="no_limit">No limit</string>
<string name="Mav_Details_MAV_FOUND_DEGENERATE_TRIANGLES">
The physics shape contains triangles which are too small. Try simplifying the physics model.