SL-15297 WIP Implement performance floater
parent
0ea94d2948
commit
10a770047d
|
|
@ -286,6 +286,7 @@ set(viewer_SOURCE_FILES
|
|||
llfloaterpathfindinglinksets.cpp
|
||||
llfloaterpathfindingobjects.cpp
|
||||
llfloaterpay.cpp
|
||||
llfloaterperformance.cpp
|
||||
llfloaterperms.cpp
|
||||
llfloaterpostprocess.cpp
|
||||
llfloaterpreference.cpp
|
||||
|
|
@ -924,6 +925,7 @@ set(viewer_HEADER_FILES
|
|||
llfloaterpathfindinglinksets.h
|
||||
llfloaterpathfindingobjects.h
|
||||
llfloaterpay.h
|
||||
llfloaterperformance.h
|
||||
llfloaterperms.h
|
||||
llfloaterpostprocess.h
|
||||
llfloaterpreference.h
|
||||
|
|
|
|||
|
|
@ -298,6 +298,8 @@ void LLHUDRenderNotifier::updateNotificationHUD(hud_complexity_list_t complexity
|
|||
return;
|
||||
}
|
||||
|
||||
mHUDComplexityList = complexity;
|
||||
|
||||
// TODO:
|
||||
// Find a way to show message with list of issues, but without making it too large
|
||||
// and intrusive.
|
||||
|
|
|
|||
|
|
@ -121,6 +121,8 @@ public:
|
|||
void updateNotificationHUD(hud_complexity_list_t complexity);
|
||||
bool isNotificationVisible();
|
||||
|
||||
hud_complexity_list_t getHUDComplexityList() { return mHUDComplexityList; }
|
||||
|
||||
private:
|
||||
enum EWarnLevel
|
||||
{
|
||||
|
|
@ -141,6 +143,7 @@ private:
|
|||
EWarnLevel mReportedHUDWarning;
|
||||
LLHUDComplexity mLatestHUDComplexity;
|
||||
LLFrameTimer mHUDPopUpDelayTimer;
|
||||
hud_complexity_list_t mHUDComplexityList;
|
||||
};
|
||||
|
||||
#endif /* ! defined(LL_llavatarrendernotifier_H) */
|
||||
|
|
|
|||
|
|
@ -0,0 +1,216 @@
|
|||
/**
|
||||
* @file llfloaterperformance.cpp
|
||||
*
|
||||
* $LicenseInfo:firstyear=2021&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2021, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
#include "llfloaterperformance.h"
|
||||
|
||||
#include "llappearancemgr.h"
|
||||
#include "llavatarrendernotifier.h"
|
||||
#include "llfeaturemanager.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llnamelistctrl.h"
|
||||
#include "lltextbox.h"
|
||||
#include "llvoavatar.h"
|
||||
|
||||
|
||||
LLFloaterPerformance::LLFloaterPerformance(const LLSD& key)
|
||||
: LLFloater(key)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
LLFloaterPerformance::~LLFloaterPerformance()
|
||||
{
|
||||
}
|
||||
|
||||
BOOL LLFloaterPerformance::postBuild()
|
||||
{
|
||||
mMainPanel = getChild<LLPanel>("panel_performance_main");
|
||||
mTroubleshootingPanel = getChild<LLPanel>("panel_performance_troubleshooting");
|
||||
mNearbyPanel = getChild<LLPanel>("panel_performance_nearby");
|
||||
mScriptsPanel = getChild<LLPanel>("panel_performance_scripts");
|
||||
mPreferencesPanel = getChild<LLPanel>("panel_performance_preferences");
|
||||
mHUDsPanel = getChild<LLPanel>("panel_performance_huds");
|
||||
|
||||
getChild<LLPanel>("troubleshooting_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mTroubleshootingPanel));
|
||||
getChild<LLPanel>("nearby_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mNearbyPanel));
|
||||
getChild<LLPanel>("scripts_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mScriptsPanel));
|
||||
getChild<LLPanel>("preferences_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mPreferencesPanel));
|
||||
getChild<LLPanel>("huds_subpanel")->setMouseDownCallback(boost::bind(&LLFloaterPerformance::showSelectedPanel, this, mHUDsPanel));
|
||||
|
||||
initBackBtn(mTroubleshootingPanel);
|
||||
initBackBtn(mNearbyPanel);
|
||||
initBackBtn(mScriptsPanel);
|
||||
initBackBtn(mPreferencesPanel);
|
||||
initBackBtn(mHUDsPanel);
|
||||
|
||||
|
||||
mHUDsPanel->getChild<LLButton>("refresh_list_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::populateHUDList, this));
|
||||
|
||||
mHUDList = mHUDsPanel->getChild<LLNameListCtrl>("hud_list");
|
||||
mHUDList->setNameListType(LLNameListCtrl::SPECIAL);
|
||||
mHUDList->setHoverIconName("StopReload_Off");
|
||||
mHUDList->setIconClickedCallback(boost::bind(&LLFloaterPerformance::detachItem, this, _1));
|
||||
|
||||
mPreferencesPanel->getChild<LLButton>("advanced_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickAdvanced, this));
|
||||
mPreferencesPanel->getChild<LLButton>("defaults_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickRecommended, this));
|
||||
|
||||
mNearbyPanel->getChild<LLButton>("exceptions_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::onClickExceptions, this));
|
||||
mNearbyList = mNearbyPanel->getChild<LLNameListCtrl>("nearby_list");
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::showSelectedPanel(LLPanel* selected_panel)
|
||||
{
|
||||
selected_panel->setVisible(TRUE);
|
||||
mMainPanel->setVisible(FALSE);
|
||||
|
||||
if (mHUDsPanel == selected_panel)
|
||||
{
|
||||
populateHUDList();
|
||||
}
|
||||
else if (mNearbyPanel == selected_panel)
|
||||
{
|
||||
populateNearbyList();
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::showMainPanel()
|
||||
{
|
||||
mTroubleshootingPanel->setVisible(FALSE);
|
||||
mNearbyPanel->setVisible(FALSE);
|
||||
mScriptsPanel->setVisible(FALSE);
|
||||
mHUDsPanel->setVisible(FALSE);
|
||||
mPreferencesPanel->setVisible(FALSE);
|
||||
mMainPanel->setVisible(TRUE);
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::initBackBtn(LLPanel* panel)
|
||||
{
|
||||
panel->getChild<LLButton>("back_btn")->setCommitCallback(boost::bind(&LLFloaterPerformance::showMainPanel, this));
|
||||
|
||||
panel->getChild<LLTextBox>("back_lbl")->setShowCursorHand(false);
|
||||
panel->getChild<LLTextBox>("back_lbl")->setSoundFlags(LLView::MOUSE_UP);
|
||||
panel->getChild<LLTextBox>("back_lbl")->setClickedCallback(boost::bind(&LLFloaterPerformance::showMainPanel, this));
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::populateHUDList()
|
||||
{
|
||||
mHUDList->clearRows();
|
||||
mHUDList->updateColumns(true);
|
||||
|
||||
hud_complexity_list_t complexity_list = LLHUDRenderNotifier::getInstance()->getHUDComplexityList();
|
||||
|
||||
hud_complexity_list_t::iterator iter = complexity_list.begin();
|
||||
hud_complexity_list_t::iterator end = complexity_list.end();
|
||||
|
||||
for (; iter != end; ++iter)
|
||||
{
|
||||
LLHUDComplexity hud_object_complexity = *iter;
|
||||
|
||||
LLSD item;
|
||||
item["special_id"] = hud_object_complexity.objectId;
|
||||
item["target"] = LLNameListCtrl::SPECIAL;
|
||||
LLSD& row = item["columns"];
|
||||
row[0]["column"] = "complex_visual";
|
||||
row[0]["type"] = "text";
|
||||
row[0]["value"] = "*";
|
||||
|
||||
row[1]["column"] = "complex_value";
|
||||
row[1]["type"] = "text";
|
||||
row[1]["value"] = std::to_string(hud_object_complexity.objectsCost);
|
||||
row[1]["font"]["name"] = "SANSSERIF";
|
||||
|
||||
row[2]["column"] = "name";
|
||||
row[2]["type"] = "text";
|
||||
row[2]["value"] = hud_object_complexity.objectName;
|
||||
row[2]["font"]["name"] = "SANSSERIF";
|
||||
|
||||
mHUDList->addElement(item);
|
||||
}
|
||||
|
||||
mHUDsPanel->getChild<LLTextBox>("huds_value")->setValue(std::to_string(complexity_list.size()));
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::populateNearbyList()
|
||||
{
|
||||
mNearbyList->clearRows();
|
||||
mNearbyList->updateColumns(true);
|
||||
|
||||
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->calculateUpdateRenderComplexity();
|
||||
|
||||
LLSD item;
|
||||
item["id"] = avatar->getID();
|
||||
LLSD& row = item["columns"];
|
||||
row[0]["column"] = "complex_visual";
|
||||
row[0]["type"] = "text";
|
||||
row[0]["value"] = "*";
|
||||
|
||||
row[1]["column"] = "complex_value";
|
||||
row[1]["type"] = "text";
|
||||
row[1]["value"] = std::to_string( avatar->getVisualComplexity());
|
||||
row[1]["font"]["name"] = "SANSSERIF";
|
||||
|
||||
row[2]["column"] = "name";
|
||||
row[2]["type"] = "text";
|
||||
row[2]["value"] = avatar->getFullname();
|
||||
row[2]["font"]["name"] = "SANSSERIF";
|
||||
|
||||
mNearbyList->addElement(item);
|
||||
}
|
||||
char_iter++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::detachItem(const LLUUID& item_id)
|
||||
{
|
||||
LLAppearanceMgr::instance().removeItemFromAvatar(item_id);
|
||||
mHUDList->removeNameItem(item_id);
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::onClickRecommended()
|
||||
{
|
||||
LLFeatureManager::getInstance()->applyRecommendedSettings();
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::onClickAdvanced()
|
||||
{
|
||||
LLFloaterReg::showInstance("prefs_graphics_advanced");
|
||||
}
|
||||
|
||||
void LLFloaterPerformance::onClickExceptions()
|
||||
{
|
||||
LLFloaterReg::showInstance("avatar_render_settings");
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
/**
|
||||
* @file llfloaterperformance.h
|
||||
*
|
||||
* $LicenseInfo:firstyear=2021&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2021, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLFLOATERPERFORMANCE_H
|
||||
#define LL_LLFLOATERPERFORMANCE_H
|
||||
|
||||
#include "llfloater.h"
|
||||
|
||||
class LLNameListCtrl;
|
||||
|
||||
class LLFloaterPerformance : public LLFloater
|
||||
{
|
||||
public:
|
||||
LLFloaterPerformance(const LLSD& key);
|
||||
virtual ~LLFloaterPerformance();
|
||||
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
void showSelectedPanel(LLPanel* selected_panel);
|
||||
void showMainPanel();
|
||||
|
||||
void detachItem(const LLUUID& item_id);
|
||||
|
||||
private:
|
||||
void initBackBtn(LLPanel* panel);
|
||||
void populateHUDList();
|
||||
void populateNearbyList();
|
||||
|
||||
void onClickAdvanced();
|
||||
void onClickRecommended();
|
||||
void onClickExceptions();
|
||||
|
||||
LLPanel* mMainPanel;
|
||||
LLPanel* mTroubleshootingPanel;
|
||||
LLPanel* mNearbyPanel;
|
||||
LLPanel* mScriptsPanel;
|
||||
LLPanel* mHUDsPanel;
|
||||
LLPanel* mPreferencesPanel;
|
||||
LLNameListCtrl* mHUDList;
|
||||
LLNameListCtrl* mNearbyList;
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERPERFORMANCE_H
|
||||
|
|
@ -67,7 +67,9 @@ LLNameListCtrl::LLNameListCtrl(const LLNameListCtrl::Params& p)
|
|||
mNameColumn(p.name_column.column_name),
|
||||
mAllowCallingCardDrop(p.allow_calling_card_drop),
|
||||
mShortNames(p.short_names),
|
||||
mPendingLookupsRemaining(0)
|
||||
mPendingLookupsRemaining(0),
|
||||
mHoverIconName("Info_Small"),
|
||||
mNameListType(INDIVIDUAL)
|
||||
{}
|
||||
|
||||
// public
|
||||
|
|
@ -134,7 +136,12 @@ BOOL LLNameListCtrl::handleDragAndDrop(
|
|||
|
||||
void LLNameListCtrl::showInspector(const LLUUID& avatar_id, bool is_group, bool is_experience)
|
||||
{
|
||||
if(is_experience)
|
||||
if (isSpecialType())
|
||||
{
|
||||
mIconClickedSignal(avatar_id);
|
||||
return;
|
||||
}
|
||||
if(is_experience)
|
||||
{
|
||||
LLFloaterReg::showInstance("experience_profile", avatar_id, true);
|
||||
return;
|
||||
|
|
@ -215,14 +222,16 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)
|
|||
S32 column_index = getColumnIndexFromOffset(x);
|
||||
LLNameListItem* hit_item = dynamic_cast<LLNameListItem*>(hitItem(x, y));
|
||||
LLFloater* floater = gFloaterView->getParentFloater(this);
|
||||
if (floater
|
||||
|
||||
|
||||
if (floater
|
||||
&& floater->isFrontmost()
|
||||
&& hit_item
|
||||
&& column_index == mNameColumnIndex)
|
||||
&& ((column_index == mNameColumnIndex) || isSpecialType()))
|
||||
{
|
||||
// ...this is the column with the avatar name
|
||||
LLUUID avatar_id = hit_item->getUUID();
|
||||
if (avatar_id.notNull())
|
||||
// ...this is the column with the avatar name
|
||||
LLUUID item_id = isSpecialType() ? hit_item->getSpecialID() : hit_item->getUUID();
|
||||
if (item_id.notNull())
|
||||
{
|
||||
// ...valid avatar id
|
||||
|
||||
|
|
@ -230,13 +239,13 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)
|
|||
if (hit_cell)
|
||||
{
|
||||
S32 row_index = getItemIndex(hit_item);
|
||||
LLRect cell_rect = getCellRect(row_index, column_index);
|
||||
LLRect cell_rect = getCellRect(row_index, isSpecialType() ? getNumColumns() - 1 : column_index);
|
||||
// Convert rect local to screen coordinates
|
||||
LLRect sticky_rect;
|
||||
localRectToScreen(cell_rect, &sticky_rect);
|
||||
|
||||
// Spawn at right side of cell
|
||||
LLPointer<LLUIImage> icon = LLUI::getUIImage("Info_Small");
|
||||
LLPointer<LLUIImage> icon = LLUI::getUIImage(mHoverIconName);
|
||||
S32 screenX = sticky_rect.mRight - info_icon_size;
|
||||
S32 screenY = sticky_rect.mTop - (sticky_rect.getHeight() - icon->getHeight()) / 2;
|
||||
LLCoordGL pos(screenX, screenY);
|
||||
|
|
@ -250,7 +259,7 @@ BOOL LLNameListCtrl::handleToolTip(S32 x, S32 y, MASK mask)
|
|||
|
||||
LLToolTip::Params params;
|
||||
params.background_visible(false);
|
||||
params.click_callback(boost::bind(&LLNameListCtrl::showInspector, this, avatar_id, is_group, is_experience));
|
||||
params.click_callback(boost::bind(&LLNameListCtrl::showInspector, this, item_id, is_group, is_experience));
|
||||
params.delay_time(0.0f); // spawn instantly on hover
|
||||
params.image(icon);
|
||||
params.message("");
|
||||
|
|
@ -321,6 +330,7 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
|
|||
|
||||
// use supplied name by default
|
||||
std::string fullname = name_item.name;
|
||||
|
||||
switch(name_item.target)
|
||||
{
|
||||
case GROUP:
|
||||
|
|
@ -339,8 +349,10 @@ LLScrollListItem* LLNameListCtrl::addNameItemRow(
|
|||
}
|
||||
break;
|
||||
case SPECIAL:
|
||||
// just use supplied name
|
||||
break;
|
||||
{
|
||||
item->setSpecialID(name_item.special_id());
|
||||
return item;
|
||||
}
|
||||
case INDIVIDUAL:
|
||||
{
|
||||
LLAvatarName av_name;
|
||||
|
|
@ -420,7 +432,8 @@ void LLNameListCtrl::removeNameItem(const LLUUID& agent_id)
|
|||
for (item_list::iterator it = getItemList().begin(); it != getItemList().end(); it++)
|
||||
{
|
||||
LLScrollListItem* item = *it;
|
||||
if (item->getUUID() == agent_id)
|
||||
LLUUID cur_id = isSpecialType() ? dynamic_cast<LLNameListItem*>(item)->getSpecialID() : item->getUUID();
|
||||
if (cur_id == agent_id)
|
||||
{
|
||||
idx = getItemIndex(item);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@ public:
|
|||
void setIsGroup(bool is_group) { mIsGroup = is_group; }
|
||||
bool isExperience() const { return mIsExperience; }
|
||||
void setIsExperience(bool is_experience) { mIsExperience = is_experience; }
|
||||
void setSpecialID(const LLUUID& special_id) { mSpecialID = special_id; }
|
||||
const LLUUID& getSpecialID() const { return mSpecialID; }
|
||||
|
||||
protected:
|
||||
friend class LLNameListCtrl;
|
||||
|
|
@ -68,6 +70,8 @@ protected:
|
|||
private:
|
||||
bool mIsGroup;
|
||||
bool mIsExperience;
|
||||
|
||||
LLUUID mSpecialID;
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -95,10 +99,12 @@ public:
|
|||
{
|
||||
Optional<std::string> name;
|
||||
Optional<ENameType, NameTypeNames> target;
|
||||
Optional<LLUUID> special_id;
|
||||
|
||||
NameItem()
|
||||
: name("name"),
|
||||
target("target", INDIVIDUAL)
|
||||
target("target", INDIVIDUAL),
|
||||
special_id("special_id", LLUUID())
|
||||
{}
|
||||
};
|
||||
|
||||
|
|
@ -170,6 +176,12 @@ public:
|
|||
/*virtual*/ void updateColumns(bool force_update);
|
||||
|
||||
/*virtual*/ void mouseOverHighlightNthItem( S32 index );
|
||||
|
||||
bool isSpecialType() { return (mNameListType == SPECIAL); }
|
||||
|
||||
void setNameListType(e_name_type type) { mNameListType = type; }
|
||||
void setHoverIconName(std::string icon_name) { mHoverIconName = icon_name; }
|
||||
|
||||
private:
|
||||
void showInspector(const LLUUID& avatar_id, bool is_group, bool is_experience = false);
|
||||
void onAvatarNameCache(const LLUUID& agent_id, const LLAvatarName& av_name, std::string suffix, std::string prefix, LLHandle<LLNameListItem> item);
|
||||
|
|
@ -186,6 +198,11 @@ private:
|
|||
|
||||
S32 mPendingLookupsRemaining;
|
||||
namelist_complete_signal_t mNameListCompleteSignal;
|
||||
|
||||
std::string mHoverIconName;
|
||||
e_name_type mNameListType;
|
||||
|
||||
boost::signals2::signal<void(const LLUUID &)> mIconClickedSignal;
|
||||
|
||||
public:
|
||||
boost::signals2::connection setOnNameListCompleteCallback(boost::function<void(bool)> onNameListCompleteCallback)
|
||||
|
|
@ -193,6 +210,10 @@ public:
|
|||
return mNameListCompleteSignal.connect(onNameListCompleteCallback);
|
||||
}
|
||||
|
||||
boost::signals2::connection setIconClickedCallback(boost::function<void(const LLUUID &)> cb)
|
||||
{
|
||||
return mIconClickedSignal.connect(cb);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@
|
|||
#include "llfloaterpathfindingconsole.h"
|
||||
#include "llfloaterpathfindinglinksets.h"
|
||||
#include "llfloaterpay.h"
|
||||
#include "llfloaterperformance.h"
|
||||
#include "llfloaterperms.h"
|
||||
#include "llfloaterpostprocess.h"
|
||||
#include "llfloaterpreference.h"
|
||||
|
|
@ -299,6 +300,7 @@ void LLViewerFloaterReg::registerFloaters()
|
|||
LLFloaterReg::add("pathfinding_linksets", "floater_pathfinding_linksets.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPathfindingLinksets>);
|
||||
LLFloaterReg::add("pathfinding_console", "floater_pathfinding_console.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPathfindingConsole>);
|
||||
LLFloaterReg::add("people", "floater_people.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
|
||||
LLFloaterReg::add("performance", "floater_performance.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPerformance>);
|
||||
LLFloaterReg::add("perms_default", "floater_perms_default.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPermsDefault>);
|
||||
LLFloaterReg::add("places", "floater_places.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
|
||||
LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
|
||||
|
|
|
|||
|
|
@ -963,4 +963,10 @@
|
|||
<color
|
||||
name="OutfitGalleryItemUnselected"
|
||||
value="0.4 0.4 0.4 1" />
|
||||
<color
|
||||
name="PerformanceFloaterGray"
|
||||
value="0.27 0.27 0.27 1" />
|
||||
<color
|
||||
name="PerformanceMid"
|
||||
value="1 0.8 0 1" />
|
||||
</colors>
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -234,6 +234,8 @@ with the same filename but different name
|
|||
<texture name="Generic_Person" file_name="icons/Generic_Person.png" preload="false" />
|
||||
<texture name="Generic_Person_Large" file_name="icons/Generic_Person_Large.png" preload="false" />
|
||||
|
||||
<texture name="Green_dot" file_name="icons/green_dot.png" preload="false" />
|
||||
|
||||
<texture name="Hand" file_name="icons/hand.png" preload="false" />
|
||||
|
||||
<texture name="Help_Press" file_name="navbar/Help_Press.png" preload="false" />
|
||||
|
|
|
|||
|
|
@ -0,0 +1,447 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<floater
|
||||
height="550"
|
||||
layout="topleft"
|
||||
name="performance"
|
||||
save_rect="true"
|
||||
title="IMPROVE GRAPHICS SPEED"
|
||||
width="580">
|
||||
<panel
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="490"
|
||||
width="580"
|
||||
name="panel_performance_main"
|
||||
visible="true"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifHuge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="fps_lbl"
|
||||
top="17"
|
||||
width="130">
|
||||
Current FPS
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifHugeBold"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="fps_value"
|
||||
width="100">
|
||||
75.2
|
||||
</text>
|
||||
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Green_dot"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow4"
|
||||
follows="right|top"
|
||||
top="16"
|
||||
right="-154"/>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Green_dot"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow4"
|
||||
follows="right|top"
|
||||
top_pad="9"/>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Green_dot"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow4"
|
||||
follows="right|top"
|
||||
top_pad="8"/>
|
||||
|
||||
<text
|
||||
follows="right|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top="17"
|
||||
right="-90"
|
||||
name="client_lbl"
|
||||
width="60">
|
||||
Client:
|
||||
</text>
|
||||
<text
|
||||
follows="right|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="client_lbl"
|
||||
width="60">
|
||||
Network:
|
||||
</text>
|
||||
<text
|
||||
follows="right|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="client_lbl"
|
||||
width="60">
|
||||
Server:
|
||||
</text>
|
||||
<text
|
||||
follows="right|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
right="-15"
|
||||
name="client_value"
|
||||
top="17"
|
||||
width="45">
|
||||
Normal
|
||||
</text>
|
||||
<text
|
||||
follows="right|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
name="network_value"
|
||||
top_pad="5"
|
||||
width="45">
|
||||
Normal
|
||||
</text>
|
||||
<text
|
||||
follows="right|top"
|
||||
font="SansSerif"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
name="server_value"
|
||||
top_pad="5"
|
||||
width="45">
|
||||
Normal
|
||||
</text>
|
||||
<panel
|
||||
bg_alpha_color="PerformanceFloaterGray"
|
||||
background_visible="true"
|
||||
background_opaque="false"
|
||||
border="true"
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="60"
|
||||
width="560"
|
||||
name="troubleshooting_subpanel"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
top="102">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="troubleshooting_lbl"
|
||||
top="12"
|
||||
width="395">
|
||||
General troubleshooting
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="troubleshooting_info"
|
||||
top_pad="5"
|
||||
width="395">
|
||||
Choose among common problems and see what you can do.
|
||||
</text>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Arrow_Right_Off"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow1"
|
||||
follows="right|top"
|
||||
top="24"
|
||||
right="-20"/>
|
||||
</panel>
|
||||
<panel
|
||||
bg_alpha_color="PerformanceFloaterGray"
|
||||
background_visible="true"
|
||||
background_opaque="false"
|
||||
border="true"
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="60"
|
||||
width="560"
|
||||
name="nearby_subpanel"
|
||||
layout="topleft"
|
||||
top_pad="20">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="avatars_nearby_lbl"
|
||||
top="12"
|
||||
width="115">
|
||||
Avatars nearby:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
name="avatars_nearby_value"
|
||||
width="100">
|
||||
42 (very high)
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="avatars_nearby_info"
|
||||
top_pad="5"
|
||||
width="395">
|
||||
Click to review avatars and choose a complexity limit.
|
||||
</text>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Arrow_Right_Off"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow2"
|
||||
follows="right|top"
|
||||
top="24"
|
||||
right="-20"/>
|
||||
</panel>
|
||||
<panel
|
||||
bg_alpha_color="PerformanceFloaterGray"
|
||||
background_visible="true"
|
||||
background_opaque="false"
|
||||
border="true"
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="60"
|
||||
width="560"
|
||||
name="preferences_subpanel"
|
||||
layout="topleft"
|
||||
top_pad="20">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="complexity_lbl"
|
||||
top="12"
|
||||
width="110">
|
||||
This location is
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
name="complexity_value"
|
||||
width="100">
|
||||
very complex
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="complexity_info"
|
||||
top_pad="5"
|
||||
width="395">
|
||||
Try changing graphics quality or draw distance.
|
||||
</text>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Arrow_Right_Off"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow3"
|
||||
follows="right|top"
|
||||
top="24"
|
||||
right="-20"/>
|
||||
</panel>
|
||||
<panel
|
||||
bg_alpha_color="PerformanceFloaterGray"
|
||||
background_visible="true"
|
||||
background_opaque="false"
|
||||
border="true"
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="60"
|
||||
width="560"
|
||||
name="scripts_subpanel"
|
||||
layout="topleft"
|
||||
top_pad="20">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="scripts_lbl"
|
||||
top="12"
|
||||
width="88">
|
||||
Your avatar:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
name="scripts_value"
|
||||
width="100">
|
||||
12 scripts
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="scripts_info"
|
||||
top_pad="5"
|
||||
width="395">
|
||||
Removing high-impact attachments may improve graphics speed.
|
||||
</text>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Arrow_Right_Off"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow4"
|
||||
follows="right|top"
|
||||
top="24"
|
||||
right="-20"/>
|
||||
</panel>
|
||||
<panel
|
||||
bg_alpha_color="PerformanceFloaterGray"
|
||||
background_visible="true"
|
||||
background_opaque="false"
|
||||
border="true"
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="60"
|
||||
width="560"
|
||||
name="huds_subpanel"
|
||||
layout="topleft"
|
||||
top_pad="20">
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="huds_lbl"
|
||||
top="12"
|
||||
width="80">
|
||||
Your HUDs:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
name="huds_value"
|
||||
width="100">
|
||||
7
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerif"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="huds_info"
|
||||
top_pad="5"
|
||||
width="395">
|
||||
Removing HUDs you are not using can improve graphics speed.
|
||||
</text>
|
||||
<icon
|
||||
height="16"
|
||||
width="16"
|
||||
image_name="Arrow_Right_Off"
|
||||
mouse_opaque="true"
|
||||
name="icon_arrow4"
|
||||
follows="right|top"
|
||||
top="24"
|
||||
right="-20"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel
|
||||
filename="panel_performance_troubleshooting.xml"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="panel_performance_troubleshooting"
|
||||
visible="false"
|
||||
top="0" />
|
||||
<panel
|
||||
filename="panel_performance_nearby.xml"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="panel_performance_nearby"
|
||||
visible="false"
|
||||
top="0" />
|
||||
<panel
|
||||
filename="panel_performance_scripts.xml"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="panel_performance_scripts"
|
||||
visible="false"
|
||||
top="0" />
|
||||
<panel
|
||||
filename="panel_performance_preferences.xml"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="panel_performance_preferences"
|
||||
visible="false"
|
||||
top="0" />
|
||||
<panel
|
||||
filename="panel_performance_huds.xml"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
name="panel_performance_huds"
|
||||
visible="false"
|
||||
top="0" />
|
||||
</floater>
|
||||
|
|
@ -238,6 +238,13 @@
|
|||
<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..."
|
||||
|
|
|
|||
|
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="490"
|
||||
width="580"
|
||||
name="panel_performance_huds"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0">
|
||||
<button
|
||||
height="16"
|
||||
width="16"
|
||||
layout="topleft"
|
||||
mouse_opaque="true"
|
||||
follows="left|top"
|
||||
name="back_btn"
|
||||
top="10"
|
||||
image_selected="Arrow_Left_Off"
|
||||
image_pressed="Arrow_Left_Off"
|
||||
image_unselected="Arrow_Left_Off"
|
||||
left="15"
|
||||
is_toggle="true">
|
||||
</button>
|
||||
<text
|
||||
follows="left|top"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
top="13"
|
||||
name="back_lbl"
|
||||
width="40">
|
||||
Back
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="10"
|
||||
name="huds_title"
|
||||
width="120">
|
||||
HUDs displayed:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLargeBold"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
name="huds_value"
|
||||
width="70">
|
||||
7
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
left="20"
|
||||
name="huds_desc1"
|
||||
width="540">
|
||||
If there are any you don't need, detaching them may improve graphics speed.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="3"
|
||||
left="20"
|
||||
name="huds_desc2"
|
||||
width="540">
|
||||
Note: Using a HUD's minimize button does not save memory.
|
||||
</text>
|
||||
<name_list
|
||||
column_padding="0"
|
||||
draw_stripes="true"
|
||||
height="220"
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
name="hud_list"
|
||||
top_pad="10"
|
||||
width="540">
|
||||
<name_list.columns
|
||||
label=""
|
||||
name="complex_visual"
|
||||
width="90" />
|
||||
<name_list.columns
|
||||
label=""
|
||||
name="complex_value"
|
||||
width="40" />
|
||||
<name_list.columns
|
||||
label=""
|
||||
name="name"/>
|
||||
</name_list>
|
||||
<button
|
||||
follows="left|top"
|
||||
height="19"
|
||||
label="Refresh List"
|
||||
layout="topleft"
|
||||
name="refresh_list_btn"
|
||||
top_pad="20"
|
||||
width="100" />
|
||||
</panel>
|
||||
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="490"
|
||||
width="580"
|
||||
name="panel_performance_nearby"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0">
|
||||
<button
|
||||
height="16"
|
||||
width="16"
|
||||
layout="topleft"
|
||||
mouse_opaque="true"
|
||||
follows="left|top"
|
||||
name="back_btn"
|
||||
top="10"
|
||||
image_selected="Arrow_Left_Off"
|
||||
image_pressed="Arrow_Left_Off"
|
||||
image_unselected="Arrow_Left_Off"
|
||||
left="15"
|
||||
is_toggle="true">
|
||||
</button>
|
||||
<text
|
||||
follows="left|top"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
top="13"
|
||||
name="back_lbl"
|
||||
width="40">
|
||||
Back
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="10"
|
||||
name="av_nearby_title"
|
||||
width="215">
|
||||
Avatars within draw distance:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLargeBold"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
name="av_nearby_value"
|
||||
width="150">
|
||||
42 (very high)
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="5"
|
||||
name="av_nearby_desc"
|
||||
width="580">
|
||||
Some avatars nearby are slow to display. Choosing complexity limit may help graphics speed.
|
||||
</text>
|
||||
<slider
|
||||
control_name="IndirectMaxComplexity"
|
||||
tool_tip="Controls at what point a visually complex avatar is drawn as a JellyDoll"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
initial_value="101"
|
||||
increment="1"
|
||||
label="Avatar Maximum Complexity:"
|
||||
label_width="165"
|
||||
layout="topleft"
|
||||
min_val="1"
|
||||
max_val="101"
|
||||
name="IndirectMaxComplexity"
|
||||
show_text="false"
|
||||
top_pad="10"
|
||||
width="300">
|
||||
<slider.commit_callback
|
||||
function="Pref.UpdateIndirectMaxComplexity"
|
||||
parameter="IndirectMaxComlexityText" />
|
||||
</slider>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
top_delta="0"
|
||||
left_delta="304"
|
||||
text_readonly_color="LabelDisabledColor"
|
||||
name="IndirectMaxComplexityText"
|
||||
width="65">
|
||||
0
|
||||
</text>
|
||||
<name_list
|
||||
column_padding="0"
|
||||
draw_stripes="true"
|
||||
height="220"
|
||||
left="20"
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
sort_column="complex_value"
|
||||
name="nearby_list"
|
||||
name_column="name"
|
||||
top_pad="10"
|
||||
width="540">
|
||||
<name_list.columns
|
||||
label=""
|
||||
name="complex_visual"
|
||||
width="90" />
|
||||
<name_list.columns
|
||||
label=""
|
||||
name="complex_value"
|
||||
width="40" />
|
||||
<name_list.columns
|
||||
label=""
|
||||
name="name"/>
|
||||
</name_list>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="10"
|
||||
name="av_nearby_desc2"
|
||||
width="580">
|
||||
You can also right-click on an avatar to control display.
|
||||
</text>
|
||||
<button
|
||||
height="23"
|
||||
label="Exceptions..."
|
||||
layout="topleft"
|
||||
left="460"
|
||||
top_delta="2"
|
||||
name="exceptions_btn"
|
||||
width="100">
|
||||
</button>
|
||||
<check_box
|
||||
control_name="AlwaysRenderFriends"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Always display friends"
|
||||
layout="topleft"
|
||||
name="display_friends"
|
||||
top_pad="3"
|
||||
left="18"
|
||||
width="256">
|
||||
</check_box>
|
||||
|
||||
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,257 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="490"
|
||||
width="580"
|
||||
name="panel_performance_preferences"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0">
|
||||
<button
|
||||
height="16"
|
||||
width="16"
|
||||
layout="topleft"
|
||||
mouse_opaque="true"
|
||||
follows="left|top"
|
||||
name="back_btn"
|
||||
top="10"
|
||||
image_selected="Arrow_Left_Off"
|
||||
image_pressed="Arrow_Left_Off"
|
||||
image_unselected="Arrow_Left_Off"
|
||||
left="15"
|
||||
is_toggle="true">
|
||||
</button>
|
||||
<text
|
||||
follows="left|top"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
top="13"
|
||||
name="back_lbl"
|
||||
width="40">
|
||||
Back
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="10"
|
||||
name="preferences_title"
|
||||
width="300">
|
||||
This location is very complex
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="preferences_desc"
|
||||
width="580">
|
||||
While you are here, you may want to reduce graphics quality or draw distance.
|
||||
</text>
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="35"
|
||||
name="quality_lbl"
|
||||
width="100">
|
||||
Graphics quality
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
left_pad="40"
|
||||
name="fastest_lbl"
|
||||
width="40">
|
||||
Fastest
|
||||
</text>
|
||||
<slider
|
||||
control_name="RenderQualityPerformance"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
increment="1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
max_val="6"
|
||||
name="graphics_quality"
|
||||
show_text="false"
|
||||
top_delta="-1"
|
||||
width="275">
|
||||
</slider>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
top_delta="1"
|
||||
name="quality_lbl"
|
||||
width="70">
|
||||
Best quality
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="40"
|
||||
left="20"
|
||||
name="enhancements_lbl"
|
||||
width="100">
|
||||
Enhancements
|
||||
</text>
|
||||
<check_box
|
||||
control_name="WindLightUseAtmosShaders"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Atmospheric shaders"
|
||||
layout="topleft"
|
||||
name="atmospheric_shaders"
|
||||
left_pad="37"
|
||||
width="280">
|
||||
</check_box>
|
||||
<check_box
|
||||
control_name="RenderDeferred"
|
||||
height="16"
|
||||
initial_value="true"
|
||||
label="Advanced Lighting Model"
|
||||
layout="topleft"
|
||||
name="advanced_lighting_model"
|
||||
top_delta="24"
|
||||
width="256">
|
||||
</check_box>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="40"
|
||||
left="20"
|
||||
name="distance_lbl"
|
||||
width="100">
|
||||
Draw distance
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
left_pad="40"
|
||||
name="faster_lbl"
|
||||
width="40">
|
||||
Faster
|
||||
</text>
|
||||
<slider
|
||||
control_name="RenderFarClip"
|
||||
decimal_digits="0"
|
||||
follows="left|top"
|
||||
top_delta="-1"
|
||||
height="16"
|
||||
increment="8"
|
||||
initial_value="160"
|
||||
label_width="90"
|
||||
layout="topleft"
|
||||
min_val="64"
|
||||
max_val="512"
|
||||
name="draw_distance"
|
||||
left_pad="5"
|
||||
width="250" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="12"
|
||||
layout="topleft"
|
||||
left_pad="1"
|
||||
top_delta="0"
|
||||
name="draw_distance_m"
|
||||
width="20">
|
||||
m
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
top_delta="1"
|
||||
name="farther_lbl"
|
||||
width="40">
|
||||
Farther
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="20"
|
||||
left="160"
|
||||
name="distance_desc1"
|
||||
width="100">
|
||||
Regions are 256 m x 256 m.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
left="160"
|
||||
name="distance_desc2"
|
||||
width="400">
|
||||
To zoom out and see long distances, increase the draw distance.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
left="160"
|
||||
name="distance_desc3"
|
||||
width="400">
|
||||
If you are socializing in a small area, decrease the draw distance.
|
||||
</text>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Reset to recommended settings"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
name="defaults_btn"
|
||||
top_delta="50"
|
||||
width="210">
|
||||
</button>
|
||||
<button
|
||||
follows="top|left"
|
||||
height="23"
|
||||
label="Advanced Settings..."
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
name="advanced_btn"
|
||||
top_delta="0"
|
||||
width="200"/>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="490"
|
||||
width="580"
|
||||
name="panel_performance_scripts"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0">
|
||||
<button
|
||||
height="16"
|
||||
width="16"
|
||||
layout="topleft"
|
||||
mouse_opaque="true"
|
||||
follows="left|top"
|
||||
name="back_btn"
|
||||
top="10"
|
||||
image_selected="Arrow_Left_Off"
|
||||
image_pressed="Arrow_Left_Off"
|
||||
image_unselected="Arrow_Left_Off"
|
||||
left="15"
|
||||
is_toggle="true">
|
||||
</button>
|
||||
<text
|
||||
follows="left|top"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
top="13"
|
||||
name="back_lbl"
|
||||
width="40">
|
||||
Back
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="10"
|
||||
name="attachments_title"
|
||||
width="195">
|
||||
Avatar attachment scripts:
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLargeBold"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="5"
|
||||
name="attachments_value"
|
||||
width="70">
|
||||
12
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
left="20"
|
||||
name="attachments_desc1"
|
||||
width="580">
|
||||
These attachments contain scripts (embedded apps) that use memory.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="3"
|
||||
left="20"
|
||||
name="attachments_desc2"
|
||||
width="580">
|
||||
If there are any you don't need, detaching them may improve graphics speed.
|
||||
</text>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,190 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
bevel_style="none"
|
||||
follows="left|top"
|
||||
height="490"
|
||||
width="580"
|
||||
name="panel_performance_troubleshooting"
|
||||
layout="topleft"
|
||||
left="0"
|
||||
top="0">
|
||||
<button
|
||||
height="16"
|
||||
width="16"
|
||||
layout="topleft"
|
||||
mouse_opaque="true"
|
||||
follows="left|top"
|
||||
name="back_btn"
|
||||
top="10"
|
||||
image_selected="Arrow_Left_Off"
|
||||
image_pressed="Arrow_Left_Off"
|
||||
image_unselected="Arrow_Left_Off"
|
||||
left="15"
|
||||
is_toggle="true">
|
||||
</button>
|
||||
<text
|
||||
follows="left|top"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="3"
|
||||
top="13"
|
||||
name="back_lbl"
|
||||
width="40">
|
||||
Back
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="PerformanceMid"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
top_pad="10"
|
||||
name="troubleshooting_title"
|
||||
width="300">
|
||||
Fixes for common problems
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="troubleshooting_desc"
|
||||
width="580">
|
||||
Some problems result from the complexity of the location where you are. All you can do is leave.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top_pad="30"
|
||||
name="rubberbanding_title"
|
||||
width="580">
|
||||
Rubberbanding
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="rubberbanding_desc"
|
||||
width="580">
|
||||
When you walk, your avatar may be pulled backward again and again.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="3"
|
||||
name="rubberbanding_fix"
|
||||
width="580">
|
||||
Fix: XXXXXXX
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top_pad="25"
|
||||
name="tex_thrashing_title"
|
||||
width="580">
|
||||
Texture thrashing
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="tex_thrashing_desc"
|
||||
width="580">
|
||||
On objects near you, you may see their surfaces get blurry, then sharp, then blurry again.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="3"
|
||||
name="tex_thrashing_fix"
|
||||
width="580">
|
||||
Fix: XXXXXXX
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top_pad="25"
|
||||
name="av_moving_title"
|
||||
width="580">
|
||||
Avatars are not moving smoothly
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="av_moving_desc"
|
||||
width="580">
|
||||
Lorem ipsum dolor sit amet.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="3"
|
||||
name="av_moving_fix"
|
||||
width="580">
|
||||
Fix: XXXXXXX
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifLarge"
|
||||
text_color="White"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
top_pad="25"
|
||||
name="av_moving_title"
|
||||
width="580">
|
||||
Will a better graphics card or new computer help?
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="5"
|
||||
name="av_moving_desc"
|
||||
width="580">
|
||||
Lorem ipsum dolor sit amet.
|
||||
</text>
|
||||
<text
|
||||
follows="left|top"
|
||||
font="SansSerifSmall"
|
||||
text_color="White"
|
||||
height="18"
|
||||
layout="topleft"
|
||||
top_pad="3"
|
||||
name="av_moving_fix"
|
||||
width="580">
|
||||
Fix: XXXXXXX
|
||||
</text>
|
||||
</panel>
|
||||
Loading…
Reference in New Issue