Merge branch 'release/2024.12-ForeverFPS' of https://github.com/secondlife/viewer
# Conflicts: # indra/newview/llviewercontrol.cpp # indra/newview/llviewertexture.cpp # indra/newview/skins/default/xui/en/menu_viewer.xmlmaster
commit
83d74614cf
|
|
@ -39,7 +39,7 @@ LLStyle::Params::Params()
|
|||
readonly_color("readonly_color", LLColor4::black),
|
||||
selected_color("selected_color", LLColor4::black),
|
||||
alpha("alpha", 1.f),
|
||||
font("font", LLFontGL::getFontMonospace()),
|
||||
font("font", LLStyle::getDefaultFont()),
|
||||
image("image"),
|
||||
link_href("href"),
|
||||
is_link("is_link"),
|
||||
|
|
@ -74,6 +74,11 @@ const LLFontGL* LLStyle::getFont() const
|
|||
return mFont;
|
||||
}
|
||||
|
||||
const LLFontGL* LLStyle::getDefaultFont()
|
||||
{
|
||||
return LLFontGL::getFontMonospace();
|
||||
}
|
||||
|
||||
void LLStyle::setLinkHREF(const std::string& href)
|
||||
{
|
||||
mLink = href;
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ public:
|
|||
|
||||
void setFont(const LLFontGL* font);
|
||||
const LLFontGL* getFont() const;
|
||||
static const LLFontGL* getDefaultFont();
|
||||
|
||||
const std::string& getLinkHREF() const { return mLink; }
|
||||
void setLinkHREF(const std::string& href);
|
||||
|
|
|
|||
|
|
@ -1604,7 +1604,8 @@ void LLTextBase::onVisibilityChange( bool new_visibility )
|
|||
//virtual
|
||||
void LLTextBase::setValue(const LLSD& value )
|
||||
{
|
||||
setText(value.asString());
|
||||
static const LLStyle::Params input_params = LLStyle::Params();
|
||||
setText(value.asString(), input_params);
|
||||
}
|
||||
|
||||
//virtual
|
||||
|
|
@ -4246,8 +4247,7 @@ bool LLInlineViewSegment::getDimensionsF32(S32 first_char, S32 num_chars, F32& w
|
|||
if (mForceNewLine)
|
||||
{
|
||||
// Chat, string can't be smaller then font height even if it is empty
|
||||
LLStyleSP s(new LLStyle(LLStyle::Params().visible(true)));
|
||||
height = s->getFont()->getLineHeight();
|
||||
height = LLStyle::getDefaultFont()->getLineHeight();
|
||||
|
||||
return true; // new line
|
||||
}
|
||||
|
|
@ -4311,9 +4311,7 @@ void LLInlineViewSegment::linkToDocument(LLTextBase* editor)
|
|||
|
||||
LLLineBreakTextSegment::LLLineBreakTextSegment(S32 pos):LLTextSegment(pos,pos+1)
|
||||
{
|
||||
LLStyleSP s( new LLStyle(LLStyle::Params().visible(true)));
|
||||
|
||||
mFontHeight = s->getFont()->getLineHeight();
|
||||
mFontHeight = LLStyle::getDefaultFont()->getLineHeight();
|
||||
}
|
||||
LLLineBreakTextSegment::LLLineBreakTextSegment(LLStyleConstSP style,S32 pos):LLTextSegment(pos,pos+1)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -165,7 +165,8 @@ LLSD LLTextBox::getValue() const
|
|||
bool LLTextBox::setTextArg( const std::string& key, const LLStringExplicit& text )
|
||||
{
|
||||
mText.setArg(key, text);
|
||||
LLTextBase::setText(mText.getString());
|
||||
static const LLStyle::Params input_params = LLStyle::Params();
|
||||
LLTextBase::setText(mText.getString(), input_params);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25706,28 +25706,6 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>FSRestrictMaxTextureSize</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>If enabled, the maximum resolution for fetched textures will be restricted to FSRestrictMaxTexturePixels pixels (64bit versions only; requires restart)</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSRestrictMaxTexturePixels</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Maximum texture resolution when FSRestrictMaxTextureSize is enabled. Must be a power of 2 and at least 512 pixels.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>U32</string>
|
||||
<key>Value</key>
|
||||
<integer>512</integer>
|
||||
</map>
|
||||
<key>FSScriptInfoExtended</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ RenderExposure 1 4
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 1
|
||||
RenderDisableVintageMode 1 1
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Low Graphics Settings
|
||||
|
|
@ -126,6 +127,7 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 512
|
||||
|
||||
//
|
||||
// Medium Low Graphics Settings
|
||||
|
|
@ -167,6 +169,7 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 1024
|
||||
|
||||
//
|
||||
// Medium Graphics Settings (standard)
|
||||
|
|
@ -207,6 +210,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Medium High Graphics Settings
|
||||
|
|
@ -247,6 +251,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// High Graphics Settings (SSAO + sun shadows)
|
||||
|
|
@ -287,6 +292,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// High Ultra Graphics Settings (deferred + SSAO + all shadows)
|
||||
|
|
@ -327,6 +333,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Ultra graphics (REALLY PURTY!)
|
||||
|
|
@ -367,6 +374,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Class Unknown Hardware (unknown)
|
||||
|
|
@ -399,6 +407,7 @@ RenderShadowDetail 0 0
|
|||
RenderReflectionProbeDetail 0 -1
|
||||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
list Intel
|
||||
RenderAnisotropic 1 0
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ RenderExposure 1 4
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 1
|
||||
RenderDisableVintageMode 1 1
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Low Graphics Settings
|
||||
|
|
@ -126,6 +127,7 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 512
|
||||
|
||||
//
|
||||
// Medium Low Graphics Settings
|
||||
|
|
@ -167,6 +169,7 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 1024
|
||||
|
||||
//
|
||||
// Medium Graphics Settings (standard)
|
||||
|
|
@ -207,6 +210,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Medium High Graphics Settings
|
||||
|
|
@ -247,6 +251,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// High Graphics Settings (SSAO + sun shadows)
|
||||
|
|
@ -287,6 +292,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// High Ultra Graphics Settings (deferred + SSAO + all shadows)
|
||||
|
|
@ -327,6 +333,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Ultra graphics (REALLY PURTY!)
|
||||
|
|
@ -367,6 +374,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Class Unknown Hardware (unknown)
|
||||
|
|
@ -399,6 +407,7 @@ RenderShadowDetail 0 0
|
|||
RenderReflectionProbeDetail 0 -1
|
||||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
list Intel
|
||||
RenderAnisotropic 1 0
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ RenderTonemapType 1 1
|
|||
RenderTonemapMix 1 1
|
||||
RenderDisableVintageMode 1 1
|
||||
RenderDownScaleMethod 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Low Graphics Settings
|
||||
|
|
@ -126,6 +127,7 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 512
|
||||
|
||||
//
|
||||
// Medium Low Graphics Settings
|
||||
|
|
@ -167,6 +169,7 @@ RenderExposure 1 1
|
|||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 1024
|
||||
|
||||
//
|
||||
// Medium Graphics Settings (standard)
|
||||
|
|
@ -207,6 +210,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Medium High Graphics Settings
|
||||
|
|
@ -247,6 +251,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// High Graphics Settings (SSAO + sun shadows)
|
||||
|
|
@ -287,6 +292,7 @@ RenderCASSharpness 1 0
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// High Ultra Graphics Settings (SSAO + all shadows)
|
||||
|
|
@ -327,6 +333,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Ultra graphics (REALLY PURTY!)
|
||||
|
|
@ -367,6 +374,7 @@ RenderCASSharpness 1 0.4
|
|||
RenderExposure 1 1
|
||||
RenderTonemapType 1 1
|
||||
RenderTonemapMix 1 0.7
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
//
|
||||
// Class Unknown Hardware (unknown)
|
||||
|
|
@ -398,6 +406,7 @@ RenderDeferredSSAO 0 0
|
|||
RenderShadowDetail 0 0
|
||||
RenderMirrors 0 0
|
||||
RenderDisableVintageMode 1 0
|
||||
RenderMaxTextureResolution 1 2048
|
||||
|
||||
list TexUnit8orLess
|
||||
RenderDeferredSSAO 0 0
|
||||
|
|
|
|||
|
|
@ -1600,7 +1600,8 @@ void FSFloaterIM::updateMessages()
|
|||
chat.mText = message;
|
||||
}
|
||||
|
||||
mChatHistory->appendMessage(chat, chat_args);
|
||||
static const LLStyle::Params input_append_params = LLStyle::Params();
|
||||
mChatHistory->appendMessage(chat, chat_args, input_append_params);
|
||||
mLastMessageIndex = msg["index"].asInteger();
|
||||
|
||||
// if it is a notification - next message is a notification history log, so skip it
|
||||
|
|
|
|||
|
|
@ -243,10 +243,11 @@ void FSFloaterNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD
|
|||
chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history;
|
||||
chat_args["show_time"] = show_timestamps_nearby_chat;
|
||||
chat_args["is_local"] = true;
|
||||
mChatHistoryMuted->appendMessage(chat, chat_args);
|
||||
static const LLStyle::Params input_append_params = LLStyle::Params();
|
||||
mChatHistoryMuted->appendMessage(chat, chat_args, input_append_params);
|
||||
if (!chat.mMuted)
|
||||
{
|
||||
mChatHistory->appendMessage(chat, chat_args);
|
||||
mChatHistory->appendMessage(chat, chat_args, input_append_params);
|
||||
}
|
||||
|
||||
if (archive)
|
||||
|
|
|
|||
|
|
@ -5978,10 +5978,19 @@ void LLAgent::parseTeleportMessages(const std::string& xml_filename)
|
|||
LLXMLNodePtr root;
|
||||
bool success = LLUICtrlFactory::getLayeredXMLNode(xml_filename, root);
|
||||
|
||||
if (!success || !root || !root->hasName( "teleport_messages" ))
|
||||
if (!success)
|
||||
{
|
||||
LLError::LLUserWarningMsg::showMissingFiles();
|
||||
LL_ERRS() << "Problem reading teleport string XML file: "
|
||||
<< xml_filename << LL_ENDL;
|
||||
<< xml_filename << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!root || !root->hasName("teleport_messages"))
|
||||
{
|
||||
LLError::LLUserWarningMsg::showMissingFiles();
|
||||
LL_ERRS() << "Invalid teleport string XML file: "
|
||||
<< xml_filename << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -689,15 +689,7 @@ void LLAppViewerWin32::bugsplatAddStaticAttributes(const LLSD& info)
|
|||
#if LL_DARWIN
|
||||
bugSplatMap.setAttribute("HiDPI", info["HIDPI"].asBoolean() ? "Enabled" : "Disabled");
|
||||
#endif
|
||||
|
||||
if (gSavedSettings.getBOOL("FSRestrictMaxTextureSize"))
|
||||
{
|
||||
bugSplatMap.setAttribute("Max Texture Size", gSavedSettings.getString("FSRestrictMaxTexturePixels"));
|
||||
}
|
||||
else
|
||||
{
|
||||
bugSplatMap.setAttribute("Max Texture Size", gSavedSettings.getString("Unlimited"));
|
||||
}
|
||||
bugSplatMap.setAttribute("Max Texture Size", gSavedSettings.getString("RenderMaxTextureResolution"));
|
||||
}
|
||||
|
||||
// These attributes are potentially dynamic
|
||||
|
|
|
|||
|
|
@ -635,7 +635,8 @@ void LLFloaterIMSessionTab::appendMessage(const LLChat& chat, const LLSD& args)
|
|||
chat_args["show_names_for_p2p_conv"] = !mIsP2PChat ||
|
||||
gSavedSettings.getBOOL("IMShowNamesForP2PConv");
|
||||
|
||||
mChatHistory->appendMessage(chat, chat_args);
|
||||
static const LLStyle::Params input_append_params = LLStyle::Params();
|
||||
mChatHistory->appendMessage(chat, chat_args, input_append_params);
|
||||
}
|
||||
|
||||
void LLFloaterIMSessionTab::updateUsedEmojis(LLWStringView text)
|
||||
|
|
|
|||
|
|
@ -2162,10 +2162,6 @@ void LLFloaterPreference::onUpdatePopupFilter()
|
|||
|
||||
void LLFloaterPreference::refreshEnabledState()
|
||||
{
|
||||
#if ADDRESS_SIZE == 32
|
||||
childSetEnabled("FSRestrictMaxTextureSize", false);
|
||||
#endif
|
||||
|
||||
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderCompressTextures"))
|
||||
{
|
||||
getChildView("texture compression")->setEnabled(false);
|
||||
|
|
|
|||
|
|
@ -3229,10 +3229,14 @@ void LLPanelMainInventory::updateCombinationVisibility()
|
|||
|
||||
mCombinationGalleryLayoutPanel->setVisible(!is_gallery_empty);
|
||||
mCombinationListLayoutPanel->setVisible(show_inv_pane);
|
||||
mCombinationInventoryPanel->getRootFolder()->setForceArrange(!show_inv_pane);
|
||||
if(mCombinationInventoryPanel->hasVisibleItems())
|
||||
LLFolderView* root_folder = mCombinationInventoryPanel->getRootFolder();
|
||||
if (root_folder)
|
||||
{
|
||||
mForceShowInvLayout = false;
|
||||
root_folder->setForceArrange(!show_inv_pane);
|
||||
if (mCombinationInventoryPanel->hasVisibleItems())
|
||||
{
|
||||
mForceShowInvLayout = false;
|
||||
}
|
||||
}
|
||||
if(is_gallery_empty)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1241,9 +1241,9 @@ LLPointer<LLControlVariable> setting_get_control(LLControlGroup& group, const st
|
|||
LLPointer<LLControlVariable> cntrl_ptr = group.getControl(setting);
|
||||
if (cntrl_ptr.isNull())
|
||||
{
|
||||
LLError::LLUserWarningMsg::showMissingFiles();
|
||||
LL_ERRS() << "Unable to set up setting listener for " << setting
|
||||
<< ". Please reinstall viewer from https://www.firestormviewer.org/choose-your-platform/ and contact https://www.firestormviewer.org/support if issue persists after reinstall."
|
||||
<< LL_ENDL;
|
||||
<< "." << LL_ENDL;
|
||||
}
|
||||
return cntrl_ptr;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -748,6 +748,9 @@ public:
|
|||
// index into LLViewerObjectList::mActiveObjects or -1 if not in list
|
||||
S32 mListIndex;
|
||||
|
||||
// last index data for mIndexAndLocalIDToUUID
|
||||
U32 mRegionIndex;
|
||||
|
||||
LLPointer<LLViewerTexture> *mTEImages;
|
||||
LLPointer<LLViewerTexture> *mTENormalMaps;
|
||||
LLPointer<LLViewerTexture> *mTESpecularMaps;
|
||||
|
|
|
|||
|
|
@ -173,21 +173,14 @@ U64 LLViewerObjectList::getIndex(const U32 local_id,
|
|||
return (((U64)index) << 32) | (U64)local_id;
|
||||
}
|
||||
|
||||
bool LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject* objectp)
|
||||
bool LLViewerObjectList::removeFromLocalIDTable(LLViewerObject* objectp)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
|
||||
|
||||
if(objectp && objectp->getRegion())
|
||||
if(objectp && objectp->mRegionIndex != 0)
|
||||
{
|
||||
U32 local_id = objectp->mLocalID;
|
||||
U32 ip = objectp->getRegion()->getHost().getAddress();
|
||||
U32 port = objectp->getRegion()->getHost().getPort();
|
||||
U64 ipport = (((U64)ip) << 32) | (U64)port;
|
||||
U32 index = mIPAndPortToIndex[ipport];
|
||||
|
||||
// LL_INFOS() << "Removing object from table, local ID " << local_id << ", ip " << ip << ":" << port << LL_ENDL;
|
||||
|
||||
U64 indexid = (((U64)index) << 32) | (U64)local_id;
|
||||
U64 indexid = (((U64)objectp->mRegionIndex) << 32) | (U64)local_id;
|
||||
|
||||
std::map<U64, LLUUID>::iterator iter = mIndexAndLocalIDToUUID.find(indexid);
|
||||
if (iter == mIndexAndLocalIDToUUID.end())
|
||||
|
|
@ -199,6 +192,7 @@ bool LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject* objectp)
|
|||
if (iter->second == objectp->getID())
|
||||
{ // Full UUIDs match, so remove the entry
|
||||
mIndexAndLocalIDToUUID.erase(iter);
|
||||
objectp->mRegionIndex = 0;
|
||||
return true;
|
||||
}
|
||||
// UUIDs did not match - this would zap a valid entry, so don't erase it
|
||||
|
|
@ -212,7 +206,8 @@ bool LLViewerObjectList::removeFromLocalIDTable(const LLViewerObject* objectp)
|
|||
void LLViewerObjectList::setUUIDAndLocal(const LLUUID &id,
|
||||
const U32 local_id,
|
||||
const U32 ip,
|
||||
const U32 port)
|
||||
const U32 port,
|
||||
LLViewerObject* objectp)
|
||||
{
|
||||
U64 ipport = (((U64)ip) << 32) | (U64)port;
|
||||
|
||||
|
|
@ -224,6 +219,7 @@ void LLViewerObjectList::setUUIDAndLocal(const LLUUID &id,
|
|||
mIPAndPortToIndex[ipport] = index;
|
||||
}
|
||||
|
||||
objectp->mRegionIndex = index; // should never be zero, sSimulatorMachineIndex starts from 1
|
||||
U64 indexid = (((U64)index) << 32) | (U64)local_id;
|
||||
|
||||
mIndexAndLocalIDToUUID[indexid] = id;
|
||||
|
|
@ -382,7 +378,8 @@ LLViewerObject* LLViewerObjectList::processObjectUpdateFromCache(LLVOCacheEntry*
|
|||
removeFromLocalIDTable(objectp);
|
||||
setUUIDAndLocal(fullid, entry->getLocalID(),
|
||||
regionp->getHost().getAddress(),
|
||||
regionp->getHost().getPort());
|
||||
regionp->getHost().getPort(),
|
||||
objectp);
|
||||
|
||||
if (objectp->mLocalID != entry->getLocalID())
|
||||
{ // Update local ID in object with the one sent from the region
|
||||
|
|
@ -630,7 +627,8 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
|
|||
setUUIDAndLocal(fullid,
|
||||
local_id,
|
||||
gMessageSystem->getSenderIP(),
|
||||
gMessageSystem->getSenderPort());
|
||||
gMessageSystem->getSenderPort(),
|
||||
objectp);
|
||||
|
||||
if (objectp->mLocalID != local_id)
|
||||
{ // Update local ID in object with the one sent from the region
|
||||
|
|
@ -1582,11 +1580,20 @@ void LLViewerObjectList::killObjects(LLViewerRegion *regionp)
|
|||
void LLViewerObjectList::killAllObjects()
|
||||
{
|
||||
// Used only on global destruction.
|
||||
LLViewerObject *objectp;
|
||||
|
||||
// Mass cleanup to not clear lists one item at a time
|
||||
mIndexAndLocalIDToUUID.clear();
|
||||
mActiveObjects.clear();
|
||||
mMapObjects.clear();
|
||||
|
||||
LLViewerObject *objectp;
|
||||
for (vobj_list_t::iterator iter = mObjects.begin(); iter != mObjects.end(); ++iter)
|
||||
{
|
||||
objectp = *iter;
|
||||
objectp->setOnActiveList(false);
|
||||
objectp->setListIndex(-1);
|
||||
objectp->mRegionIndex = 0;
|
||||
objectp->mOnMap = false;
|
||||
killObject(objectp);
|
||||
// Object must be dead, or it's the LLVOAvatarSelf which never dies.
|
||||
llassert((objectp == gAgentAvatarp) || objectp->isDead());
|
||||
|
|
@ -1599,18 +1606,6 @@ void LLViewerObjectList::killAllObjects()
|
|||
LL_WARNS() << "LLViewerObjectList::killAllObjects still has entries in mObjects: " << mObjects.size() << LL_ENDL;
|
||||
mObjects.clear();
|
||||
}
|
||||
|
||||
if (!mActiveObjects.empty())
|
||||
{
|
||||
LL_WARNS() << "Some objects still on active object list!" << LL_ENDL;
|
||||
mActiveObjects.clear();
|
||||
}
|
||||
|
||||
if (!mMapObjects.empty())
|
||||
{
|
||||
LL_WARNS() << "Some objects still on map object list!" << LL_ENDL;
|
||||
mMapObjects.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void LLViewerObjectList::cleanDeadObjects(bool use_timer)
|
||||
|
|
@ -2169,7 +2164,8 @@ LLViewerObject *LLViewerObjectList::createObjectFromCache(const LLPCode pcode, L
|
|||
setUUIDAndLocal(uuid,
|
||||
local_id,
|
||||
regionp->getHost().getAddress(),
|
||||
regionp->getHost().getPort());
|
||||
regionp->getHost().getPort(),
|
||||
objectp);
|
||||
mObjects.push_back(objectp);
|
||||
|
||||
updateActive(objectp);
|
||||
|
|
@ -2221,7 +2217,8 @@ LLViewerObject *LLViewerObjectList::createObject(const LLPCode pcode, LLViewerRe
|
|||
setUUIDAndLocal(fullid,
|
||||
local_id,
|
||||
gMessageSystem->getSenderIP(),
|
||||
gMessageSystem->getSenderPort());
|
||||
gMessageSystem->getSenderPort(),
|
||||
objectp);
|
||||
|
||||
mObjects.push_back(objectp);
|
||||
|
||||
|
|
|
|||
|
|
@ -191,9 +191,10 @@ public:
|
|||
void setUUIDAndLocal(const LLUUID &id,
|
||||
const U32 local_id,
|
||||
const U32 ip,
|
||||
const U32 port); // Requires knowledge of message system info!
|
||||
const U32 port,
|
||||
LLViewerObject* objectp); // Requires knowledge of message system info!
|
||||
|
||||
bool removeFromLocalIDTable(const LLViewerObject* objectp);
|
||||
bool removeFromLocalIDTable(LLViewerObject* objectp);
|
||||
// Used ONLY by the orphaned object code.
|
||||
U64 getIndex(const U32 local_id, const U32 ip, const U32 port);
|
||||
|
||||
|
|
|
|||
|
|
@ -1896,6 +1896,16 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use
|
|||
S32 bitmap_size = parcel_mgr.mParcelsPerEdge
|
||||
* parcel_mgr.mParcelsPerEdge
|
||||
/ 8;
|
||||
S32 size = msg->getSizeFast(_PREHASH_ParcelData, _PREHASH_Bitmap);
|
||||
if (size != bitmap_size)
|
||||
{
|
||||
// Might be better to ignore bitmap and drop highlights
|
||||
LL_WARNS("ParcelMgr") << "Parcel Bitmap size expected: " << bitmap_size
|
||||
<< " actual " << size
|
||||
<< ". Bitmap might be corrupted!" << LL_ENDL;
|
||||
bitmap_size = size;
|
||||
}
|
||||
|
||||
U8* bitmap = new U8[ bitmap_size ];
|
||||
msg->getBinaryDataFast(_PREHASH_ParcelData, _PREHASH_Bitmap, bitmap, bitmap_size);
|
||||
|
||||
|
|
|
|||
|
|
@ -111,8 +111,6 @@ LLViewerTexture::EDebugTexels LLViewerTexture::sDebugTexelsMode = LLViewerTextur
|
|||
|
||||
const F64 log_2 = log(2.0);
|
||||
|
||||
/*const*/ U32 DESIRED_NORMAL_TEXTURE_SIZE = (U32)LLViewerFetchedTexture::MAX_IMAGE_SIZE_DEFAULT; // <FS:Ansariel> Max texture resolution
|
||||
|
||||
LLUUID LLViewerTexture::sInvisiprimTexture1 = LLUUID::null;
|
||||
LLUUID LLViewerTexture::sInvisiprimTexture2 = LLUUID::null;
|
||||
#define TEX_INVISIPRIM1 "e97cf410-8e61-7005-ec06-629eba4cd1fb"
|
||||
|
|
@ -1761,6 +1759,16 @@ void LLViewerFetchedTexture::processTextureStats()
|
|||
|
||||
static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes", false);
|
||||
|
||||
U32 max_tex_res = MAX_IMAGE_SIZE_DEFAULT;
|
||||
if (mBoostLevel < LLGLTexture::BOOST_HIGH)
|
||||
{
|
||||
// restrict texture resolution to download based on RenderMaxTextureResolution
|
||||
static LLCachedControl<U32> max_texture_resolution(gSavedSettings, "RenderMaxTextureResolution", 2048);
|
||||
// sanity clamp debug setting to avoid settings hack shenanigans
|
||||
max_tex_res = (U32)llclamp((U32)max_texture_resolution, 512, MAX_IMAGE_SIZE_DEFAULT);
|
||||
mMaxVirtualSize = llmin(mMaxVirtualSize, (F32)(max_tex_res * max_tex_res));
|
||||
}
|
||||
|
||||
if (textures_fullres)
|
||||
{
|
||||
mDesiredDiscardLevel = 0;
|
||||
|
|
@ -1782,16 +1790,9 @@ void LLViewerFetchedTexture::processTextureStats()
|
|||
}
|
||||
else
|
||||
{
|
||||
U32 desired_size = MAX_IMAGE_SIZE_DEFAULT; // MAX_IMAGE_SIZE_DEFAULT = 2048 and max size ever is 4096
|
||||
// <FS:Ansariel> Keep restriction on "fetched" (seems to be HUD) textures as well
|
||||
if (mBoostLevel <= LLGLTexture::BOOST_SCULPTED)
|
||||
{
|
||||
desired_size = DESIRED_NORMAL_TEXTURE_SIZE;
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
if(!mKnownDrawWidth || !mKnownDrawHeight || (S32)mFullWidth <= mKnownDrawWidth || (S32)mFullHeight <= mKnownDrawHeight)
|
||||
{
|
||||
if (mFullWidth > desired_size || mFullHeight > desired_size)
|
||||
if (mFullWidth > max_tex_res || mFullHeight > max_tex_res)
|
||||
{
|
||||
mDesiredDiscardLevel = 1;
|
||||
}
|
||||
|
|
@ -3030,12 +3031,14 @@ void LLViewerLODTexture::processTextureStats()
|
|||
|
||||
static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes", false);
|
||||
|
||||
{ // restrict texture resolution to download based on RenderMaxTextureResolution
|
||||
F32 max_tex_res = MAX_IMAGE_SIZE_DEFAULT;
|
||||
if (mBoostLevel < LLGLTexture::BOOST_HIGH)
|
||||
{
|
||||
// restrict texture resolution to download based on RenderMaxTextureResolution
|
||||
static LLCachedControl<U32> max_texture_resolution(gSavedSettings, "RenderMaxTextureResolution", 2048);
|
||||
// sanity clamp debug setting to avoid settings hack shenanigans
|
||||
F32 tex_res = (F32)llclamp((S32)max_texture_resolution, 512, 2048);
|
||||
tex_res *= tex_res;
|
||||
mMaxVirtualSize = llmin(mMaxVirtualSize, tex_res);
|
||||
max_tex_res = (F32)llclamp((S32)max_texture_resolution, 512, MAX_IMAGE_SIZE_DEFAULT);
|
||||
mMaxVirtualSize = llmin(mMaxVirtualSize, max_tex_res * max_tex_res);
|
||||
}
|
||||
|
||||
if (textures_fullres)
|
||||
|
|
@ -3091,12 +3094,7 @@ void LLViewerLODTexture::processTextureStats()
|
|||
discard_level = floorf(discard_level);
|
||||
|
||||
F32 min_discard = 0.f;
|
||||
U32 desired_size = MAX_IMAGE_SIZE_DEFAULT; // MAX_IMAGE_SIZE_DEFAULT = 2048 and max size ever is 4096
|
||||
if (mBoostLevel <= LLGLTexture::BOOST_SCULPTED)
|
||||
{
|
||||
desired_size = DESIRED_NORMAL_TEXTURE_SIZE;
|
||||
}
|
||||
if (mFullWidth > desired_size || mFullHeight > desired_size)
|
||||
if (mFullWidth > max_tex_res || mFullHeight > max_tex_res)
|
||||
min_discard = 1.f;
|
||||
|
||||
discard_level = llclamp(discard_level, min_discard, (F32)MAX_DISCARD_LEVEL);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@
|
|||
#include <list>
|
||||
|
||||
// <FS:Ansariel> Max texture resolution
|
||||
extern U32 DESIRED_NORMAL_TEXTURE_SIZE;
|
||||
constexpr F32 MIN_VRAM_BUDGET = 768.f; // <FS:Ansariel> Expose max texture VRAM setting
|
||||
|
||||
class LLFace;
|
||||
|
|
|
|||
|
|
@ -2095,33 +2095,6 @@ LLViewerWindow::LLViewerWindow(const Params& p)
|
|||
gSavedSettings.setU32("RenderQualityPerformance", 0);
|
||||
}
|
||||
|
||||
// <FS:Ansariel> Max texture resolution / Zi: changed this to accept pixel values so we are independent from maximum texture size
|
||||
if (gSavedSettings.getBOOL("FSRestrictMaxTextureSize"))
|
||||
{
|
||||
// fallback value if no matching pixel size is found (i.e. someone fiddled with the debugs)
|
||||
DESIRED_NORMAL_TEXTURE_SIZE = 512;
|
||||
|
||||
// clamp pixels between 512 and half the current maximum texture size
|
||||
U32 pixels = llclamp(gSavedSettings.getU32("FSRestrictMaxTexturePixels"), 512, (U32)LLViewerFetchedTexture::MAX_IMAGE_SIZE_DEFAULT / 2);
|
||||
|
||||
// check pixel value against powers of 2 up to (not including) current maximum texture size
|
||||
U32 pow_of_2 = 512;
|
||||
while(pow_of_2 < (U32)LLViewerFetchedTexture::MAX_IMAGE_SIZE_DEFAULT)
|
||||
{
|
||||
// power of 2 matches, save it
|
||||
if (pixels == pow_of_2)
|
||||
{
|
||||
DESIRED_NORMAL_TEXTURE_SIZE = pixels;
|
||||
break;
|
||||
}
|
||||
|
||||
// next power of 2
|
||||
pow_of_2 <<= 1;
|
||||
}
|
||||
}
|
||||
LL_INFOS() << "Maximum fetched texture size: " << DESIRED_NORMAL_TEXTURE_SIZE << "px" << LL_ENDL;
|
||||
// </FS:Ansariel>
|
||||
|
||||
// Init the image list. Must happen after GL is initialized and before the images that
|
||||
// LLViewerWindow needs are requested, as well as before LLViewerMedia starts updating images.
|
||||
LLImageGL::initClass(mWindow, LLViewerTexture::MAX_GL_IMAGE_CATEGORY, false, gSavedSettings.getBOOL("RenderGLMultiThreadedTextures"), gSavedSettings.getBOOL("RenderGLMultiThreadedMedia"));
|
||||
|
|
|
|||
|
|
@ -4022,7 +4022,12 @@ void LLPipeline::renderSelectedFaces(const LLColor4& color)
|
|||
|
||||
for (auto facep : mSelectedFaces)
|
||||
{
|
||||
if (!facep || facep->getDrawable()->isDead())
|
||||
if (!facep || !facep->getViewerObject())
|
||||
{
|
||||
LLSelectMgr::getInstance()->clearSelections();
|
||||
return;
|
||||
}
|
||||
if (!facep->getDrawable() || facep->getDrawable()->isDead())
|
||||
{
|
||||
LL_ERRS() << "Bad face on selection" << LL_ENDL;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -199,22 +199,19 @@
|
|||
</text>
|
||||
<check_box label="Minimale Texturen laden" tool_tip="Diese Einstellung setzt den 'TextureDisable'-Parameter - lädt Texturen extrem langsam, eventuell nützlich für Computer mit langsamer GPU" name="TexturesLoaded"/>
|
||||
<check_box label="HTTP für Laden von Texturen verwenden" tool_tip="Aktiviert das Laden von Texturen über das HTTP-Protokoll - deaktivieren wenn es Probleme mit schlecht oder nicht korrekt ladenden Texturen gibt und das veraltete UDP-Protokoll verwendet werden soll." name="TexturesHTTP"/>
|
||||
<check_box label="Maximale Auflösung für Texturen:" tool_tip="Beschränkt die maximale Auflösung für Inworld-Texturen. Dies erlaubt die Darstellung von mehreren Texturen bevor der vorhandene Texturspeicher aufgebraucht ist und unscharfe Texturen dargestellt werden." name="FSRestrictMaxTextureSize"/>
|
||||
<combo_box name="FSRestrictMaxTexturePixels">
|
||||
<text name="FSRestrictMaxTextureSize">
|
||||
Maximale Auflösung für Texturen:
|
||||
</text>
|
||||
<combo_box tool_tip="Beschränkt die maximale Auflösung für Inworld-Texturen. Dies erlaubt die Darstellung von mehreren Texturen bevor der vorhandene Texturspeicher aufgebraucht ist und unscharfe Texturen dargestellt werden." name="FSRestrictMaxTexturePixels">
|
||||
<combo_box.item label="512 Pixel" name="512"/>
|
||||
<combo_box.item label="1024 Pixel" name="1024"/>
|
||||
<!-- 2048 is the current maximum, so this only becomes important if we get 4096 pixel textures
|
||||
<combo_box.item label="2048 Pixel" name="2048"/>
|
||||
-->
|
||||
</combo_box>
|
||||
<text name="FSRestrictMaxTextureSizeRestartText">
|
||||
(erfordert Neustart)
|
||||
</text>
|
||||
<slider label="Max. Anzahl gleichzeitiger HTTP-GET-Anfragen" name="HTTPFetchMaxRequests"/>
|
||||
<text name="TextureDetailLabel" width="215" tool_tip="Qualitätslevel, auf das Texturen geladen werden. Beeinflusst die Einstellung TextureDiscardLevel">
|
||||
<text name="TextureDetailLabel" width="215">
|
||||
Maximales Qualitätslevel für Texturen:
|
||||
</text>
|
||||
<combo_box name="TextureDetail">
|
||||
<combo_box tool_tip="Qualitätslevel, auf das Texturen geladen werden. Beeinflusst die Einstellung TextureDiscardLevel" name="TextureDetail">
|
||||
<combo_box.item label="Normale (0) Qualität" name="0"/>
|
||||
<combo_box.item label="Mittlere (3) Qualität" name="3"/>
|
||||
<combo_box.item label="Geringe (4) Qualität" name="4"/>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater
|
||||
height="430"
|
||||
height="452"
|
||||
layout="topleft"
|
||||
name="prefs_graphics_advanced"
|
||||
help_topic="Preferences_Graphics_Advanced"
|
||||
|
|
@ -118,6 +118,41 @@
|
|||
name="MaxLights"
|
||||
top_delta="16"
|
||||
width="336" />
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
top_delta="16"
|
||||
left="30"
|
||||
width="130"
|
||||
name="MaxTextureResolutionLabel"
|
||||
text_readonly_color="LabelDisabledColor">
|
||||
Maximum LOD resolution:
|
||||
</text>
|
||||
<combo_box
|
||||
control_name="RenderMaxTextureResolution"
|
||||
height="19"
|
||||
layout="topleft"
|
||||
left_pad="40"
|
||||
top_delta="0"
|
||||
name="MaxTextureResolution"
|
||||
tool_tip="Maximum resolution for 'level of detail' textures"
|
||||
width="90">
|
||||
<combo_box.item
|
||||
label="512"
|
||||
name="512"
|
||||
value="512"/>
|
||||
<combo_box.item
|
||||
label="1024"
|
||||
name="1024"
|
||||
value="1024"/>
|
||||
<combo_box.item
|
||||
label="2048"
|
||||
name="2048"
|
||||
value="2048"/>
|
||||
</combo_box>
|
||||
|
||||
<check_box
|
||||
control_name="RenderVSyncEnable"
|
||||
|
|
@ -152,7 +187,7 @@
|
|||
layout="topleft"
|
||||
left="30"
|
||||
top_delta="16"
|
||||
width="128"
|
||||
width="130"
|
||||
name="AvatarComplexityModeLabel"
|
||||
text_readonly_color="LabelDisabledColor">
|
||||
Avatar display:
|
||||
|
|
@ -160,10 +195,10 @@
|
|||
|
||||
<combo_box
|
||||
control_name="RenderAvatarComplexityMode"
|
||||
height="18"
|
||||
height="19"
|
||||
layout="topleft"
|
||||
left_delta="130"
|
||||
top_delta="0"
|
||||
left_pad="40"
|
||||
top_delta="-1"
|
||||
name="AvatarComplexityMode"
|
||||
width="150">
|
||||
<combo_box.item
|
||||
|
|
@ -195,7 +230,7 @@
|
|||
max_val="101"
|
||||
name="IndirectMaxComplexity"
|
||||
show_text="false"
|
||||
top_delta="16"
|
||||
top_delta="19"
|
||||
width="300">
|
||||
<slider.commit_callback
|
||||
function="Pref.UpdateIndirectMaxComplexity"
|
||||
|
|
@ -368,7 +403,7 @@
|
|||
left="30"
|
||||
name="antialiasing label"
|
||||
top_delta="20"
|
||||
width="120">
|
||||
width="130">
|
||||
Antialiasing:
|
||||
</text>
|
||||
<combo_box
|
||||
|
|
@ -403,7 +438,7 @@
|
|||
left="30"
|
||||
name="antialiasing quality label"
|
||||
top_delta="20"
|
||||
width="120">
|
||||
width="130">
|
||||
Antialiasing Quality:
|
||||
</text>
|
||||
<combo_box
|
||||
|
|
@ -1015,7 +1050,7 @@
|
|||
layout="topleft"
|
||||
left="13"
|
||||
name="horiz_border"
|
||||
top="393"
|
||||
top="415"
|
||||
top_delta="5"
|
||||
width="774"/>
|
||||
<button
|
||||
|
|
|
|||
|
|
@ -111,19 +111,12 @@
|
|||
parameter="https://support.secondlife.com/"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
label="[SECOND_LIFE] News"
|
||||
name="Second Life News">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.ShowURL"
|
||||
parameter="http://community.secondlife.com/t5/Featured-News/bg-p/blog_feature_news"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="[SECOND_LIFE] Blogs"
|
||||
name="Second Life Blogs">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.ShowURL"
|
||||
parameter="http://community.secondlife.com/t5/Blogs/ct-p/Blogs"/>
|
||||
parameter="https://community.secondlife.com/news/"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
-->
|
||||
|
|
|
|||
|
|
@ -2640,19 +2640,12 @@
|
|||
parameter="https://support.secondlife.com/"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
label="[SECOND_LIFE] News"
|
||||
name="Second Life News">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.ShowURL"
|
||||
parameter="http://community.secondlife.com/t5/Featured-News/bg-p/blog_feature_news"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="[SECOND_LIFE] Blogs"
|
||||
name="Second Life Blogs">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.ShowURL"
|
||||
parameter="http://community.secondlife.com/t5/Blogs/ct-p/Blogs"/>
|
||||
parameter="https://community.secondlife.com/news/"/>
|
||||
</menu_item_call>-->
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
|
|
|
|||
|
|
@ -1320,23 +1320,24 @@ If you do not understand the distinction then leave this control alone."
|
|||
Texture Rendering:
|
||||
</text>
|
||||
|
||||
<check_box
|
||||
control_name="FSRestrictMaxTextureSize"
|
||||
<text
|
||||
type="string"
|
||||
follows="left|top"
|
||||
height="16"
|
||||
label="Restrict maximum texture resolution to:"
|
||||
tool_tip="Set this restrict the maximum display resolution for inworld textures. This allows displaying more textures before exceeding the available texture memory and observing blurry textures."
|
||||
layout="topleft"
|
||||
left_delta="10"
|
||||
name="FSRestrictMaxTextureSize"
|
||||
top_pad="4"
|
||||
width="250"/>
|
||||
width="250">
|
||||
Restrict maximum texture resolution to:
|
||||
</text>
|
||||
|
||||
<combo_box
|
||||
control_name="FSRestrictMaxTexturePixels"
|
||||
enabled_control="FSRestrictMaxTextureSize"
|
||||
control_name="RenderMaxTextureResolution"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_pad="2"
|
||||
tool_tip="Sets the maximum display resolution for inworld textures. This allows displaying more textures before exceeding the available texture memory and observing blurry textures."
|
||||
top_delta="-2"
|
||||
name="FSRestrictMaxTexturePixels"
|
||||
width="100">
|
||||
|
|
@ -1348,28 +1349,12 @@ If you do not understand the distinction then leave this control alone."
|
|||
label="1024 pixels"
|
||||
name="1024"
|
||||
value="1024"/>
|
||||
<!-- 2048 is the current maximum, so this only becomes important if we get 4096 pixel textures
|
||||
<combo_box.item
|
||||
label="2048 pixels"
|
||||
name="2048"
|
||||
value="2048"/>
|
||||
-->
|
||||
</combo_box>
|
||||
|
||||
<text
|
||||
name="FSRestrictMaxTextureSizeRestartText"
|
||||
type="string"
|
||||
text_color="White_50"
|
||||
length="1"
|
||||
follows="left|top"
|
||||
height="12"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
top_delta="2"
|
||||
width="150">
|
||||
(requires restart)
|
||||
</text>
|
||||
|
||||
<!-- New Texture detail 5 is lowest, 0 is highest -->
|
||||
<text
|
||||
type="string"
|
||||
|
|
|
|||
Loading…
Reference in New Issue