diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 45d2941acf..b28681798a 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -25423,6 +25423,17 @@ Change of this parameter will affect the layout of buttons in notification toast Value 1 + FSStatusBarShowFPSColors + + Comment + If enabled, display FPS number in a color based on the current status. + Persist + 1 + Type + Boolean + Value + 1 + FSExperimentalLostAttachmentsFix Comment diff --git a/indra/newview/llagentbenefits.cpp b/indra/newview/llagentbenefits.cpp index f176b14f00..5b737e35f3 100644 --- a/indra/newview/llagentbenefits.cpp +++ b/indra/newview/llagentbenefits.cpp @@ -37,6 +37,7 @@ #include "llviewerregion.h" // + LLAgentBenefits::LLAgentBenefits(): m_initalized(false), m_animated_object_limit(-1), @@ -213,7 +214,27 @@ S32 LLAgentBenefits::getPicksLimit() const { // OpenSim legacy economy //return m_picks_limit; - return LLGridManager::instance().isInSecondLife() ? m_picks_limit : LLAgentPicksInfo::instance().getMaxNumberOfPicks(); + if (LLGridManager::instance().isInSecondLife()) + { + return m_picks_limit; + } + else + { + constexpr S32 MAX_OPENSIM_PICKS_FALLBACK = 20; // [FIRE-35276] Freeze on OpenSim (default agreed with Ubit Umarov) (originally by Haklezz) + + S32 max_profile_picks = MAX_OPENSIM_PICKS_FALLBACK; + + if (gAgent.getRegion()) + { + LLSD features; + gAgent.getRegion()->getSimulatorFeatures(features); + if (features.has("MaxProfilePicks")) + { + max_profile_picks = features["MaxProfilePicks"].asInteger(); + } + } + return max_profile_picks; + } // } diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp index 5ffcc1a059..50409190eb 100644 --- a/indra/newview/llface.cpp +++ b/indra/newview/llface.cpp @@ -386,11 +386,6 @@ void LLFace::switchTexture(U32 ch, LLViewerTexture* new_texture) return; } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer - // Need to update the new textures to the old textures boost and max virtual size, so they won't - new_texture->setBoostLevel(mTexture[ch]->getBoostLevel()); - new_texture->addTextureStats(mTexture[ch]->getMaxVirtualSize()); - // [FIRE-35081] if (ch == LLRender::DIFFUSE_MAP) { if (getViewerObject()) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index f6e682dd5e..070c56c828 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -604,44 +604,48 @@ void LLStatusBar::refresh() static LLCachedControl fsStatusBarShowFPS(gSavedSettings, "FSStatusBarShowFPS"); if (fsStatusBarShowFPS && mFPSUpdateTimer.getElapsedTimeF32() > 1.f) { + static LLCachedControl fsStatusBarShowFPSColors(gSavedSettings, "FSStatusBarShowFPSColors"); static LLCachedControl max_fps(gSavedSettings, "FramePerSecondLimit"); static LLCachedControl limit_fps_enabled(gSavedSettings, "FSLimitFramerate"); static LLCachedControl vsync_enabled(gSavedSettings, "RenderVSyncEnable"); - static const auto fps_below_limit_color = LLUIColorTable::instance().getColor("Yellow"); - static const auto fps_limit_reached_color = LLUIColorTable::instance().getColor("Green"); - static const auto vsync_limit_reached_color = LLUIColorTable::instance().getColor("Green"); - static const auto fps_uncapped_color = LLUIColorTable::instance().getColor("White"); - static const auto fps_unfocussed_color = LLUIColorTable::instance().getColor("Gray"); + static const auto fps_below_limit_color = LLUIColorTable::instance().getColor("FpsDisplayBelowLimitColor"); + static const auto fps_limit_reached_color = LLUIColorTable::instance().getColor("FpsDisplayFpsLimitReachedColor"); + static const auto vsync_limit_reached_color = LLUIColorTable::instance().getColor("FpsDisplayVSyncLimitReachedColor"); + static const auto fps_uncapped_color = LLUIColorTable::instance().getColor("FpsDisplayUncappedColor"); + static const auto fps_unfocussed_color = LLUIColorTable::instance().getColor("FpsDisplayUnfocussedColor"); static auto current_fps_color = fps_uncapped_color; mFPSUpdateTimer.reset(); const auto fps = LLTrace::get_frame_recording().getPeriodMedianPerSec(LLStatViewer::FPS); mFPSText->setText(llformat("%.1f", fps)); - // if background, go grey, else go white unless we have a cap (checked next) auto fps_color{ fps_uncapped_color }; - auto window = gViewerWindow ? gViewerWindow->getWindow() : nullptr; - if ((window && !window->getVisible()) || !gFocusMgr.getAppHasFocus()) + if (fsStatusBarShowFPSColors) { - fps_color = fps_unfocussed_color; - } - else - { - S32 vsync_freq{ -1 }; - if (window) + // if background, go grey, else go white unless we have a cap (checked next) + auto window = gViewerWindow ? gViewerWindow->getWindow() : nullptr; + if ((window && !window->getVisible()) || !gFocusMgr.getAppHasFocus()) { - vsync_freq = window->getRefreshRate(); + fps_color = fps_unfocussed_color; } + else + { + S32 vsync_freq{ -1 }; + if (window) + { + vsync_freq = window->getRefreshRate(); + } - if (limit_fps_enabled && max_fps > 0) - { - fps_color = (fps >= max_fps - 1) ? fps_limit_reached_color : fps_below_limit_color; - } - // use vsync if enabled and the freq is lower than the max_fps - if (vsync_enabled && vsync_freq > 0 && (!limit_fps_enabled || vsync_freq < (S32)max_fps)) - { - fps_color = (fps >= vsync_freq - 1) ? vsync_limit_reached_color : fps_below_limit_color; + if (limit_fps_enabled && max_fps > 0) + { + fps_color = (fps >= max_fps - 1) ? fps_limit_reached_color : fps_below_limit_color; + } + // use vsync if enabled and the freq is lower than the max_fps + if (vsync_enabled && vsync_freq > 0 && (!limit_fps_enabled || vsync_freq < (S32)max_fps)) + { + fps_color = (fps >= vsync_freq - 1) ? vsync_limit_reached_color : fps_below_limit_color; + } } } diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp index de0ed645eb..a4d9945783 100644 --- a/indra/newview/llurllineeditorctrl.cpp +++ b/indra/newview/llurllineeditorctrl.cpp @@ -86,6 +86,10 @@ void LLURLLineEditor::copyEscapedURLToClipboard() // *HACK: Because LLSLURL is currently broken we cannot use it to check if unescaped_text is a valid SLURL (see EXT-8335). if (LLStringUtil::startsWith(unescaped_text, "http://") || LLStringUtil::startsWith(unescaped_text, "secondlife://")) // SLURL text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text)); + // [FIRE-34020] Copy of address bar contents does not URL encode space in region name for OpenSim only + else if (LLStringUtil::startsWith(unescaped_text, "hop://")) + text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text)); + // else // human-readable location text_to_copy = utf8str_to_wstring(unescaped_text); diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 6903e1ec6a..04522d9b65 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -1401,11 +1401,7 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time) iter = mUUIDMap.begin(); } - // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer - //if (iter->second->getGLTexture()) - // Can skip processing TEX_LIST_SCALED as they are UI elements and should not be discarded - if (iter->second->getGLTexture() && get_element_type(iter->second->getBoostLevel()) == TEX_LIST_STANDARD) - // [FIRE-35081] + if (iter->second->getGLTexture()) { entries.push_back(iter->second); } diff --git a/indra/newview/skins/ansastorm/colors.xml b/indra/newview/skins/ansastorm/colors.xml index 70634c08d7..bcaba9ba01 100644 --- a/indra/newview/skins/ansastorm/colors.xml +++ b/indra/newview/skins/ansastorm/colors.xml @@ -1410,4 +1410,19 @@ + + + + + diff --git a/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml b/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml index e35d792e45..8b269290fe 100644 --- a/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml +++ b/indra/newview/skins/ansastorm/themes/classic_brown/colors.xml @@ -1403,4 +1403,19 @@ + + + + + diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index d7bbd28619..ac8aae67e8 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -1378,4 +1378,19 @@ + + + + + diff --git a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml index f1a396ccc0..47d5ddd525 100644 --- a/indra/newview/skins/default/xui/de/menu_hide_navbar.xml +++ b/indra/newview/skins/default/xui/de/menu_hide_navbar.xml @@ -10,6 +10,7 @@ + diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index 8f57418564..c365729f9c 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -33,7 +33,7 @@