diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 7c3e7aa128..4dae3326e7 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -272,7 +272,7 @@ elseif(LINUX) libhunspell-1.3.so.0.0.0 - libopenjp2.so + #libopenjp2.so libuuid.so.16 libuuid.so.16.0.22 diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index ea80dc0604..e91838eef6 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -92,6 +92,8 @@ #include "llsdserialize.h" #include "llinventorymodel.h" +#include // Find all faces with same texture + using namespace std::literals; LLPanelFace::Selection LLPanelFace::sMaterialOverrideSelection; @@ -571,6 +573,12 @@ BOOL LLPanelFace::postBuild() clearCtrls(); + // Find all faces with same texture + getChild("btn_select_same_diff")->setEnabled(false); + getChild("btn_select_same_norm")->setEnabled(false); + getChild("btn_select_same_spec")->setEnabled(false); + // + return TRUE; } @@ -587,6 +595,10 @@ LLPanelFace::LLPanelFace() //mCommitCallbackRegistrar.add("PanelFace.menuDoToSelected", boost::bind(&LLPanelFace::menuDoToSelected, this, _2)); //mEnableCallbackRegistrar.add("PanelFace.menuEnable", boost::bind(&LLPanelFace::menuEnableItem, this, _2)); // + + // Find all faces with same texture + mCommitCallbackRegistrar.add("BuildTool.SelectSameTexture", boost::bind(&LLPanelFace::onClickBtnSelectSameTexture, this, _1, _2)); + // } LLPanelFace::~LLPanelFace() @@ -1882,6 +1894,12 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/) calcp->setVar(LLCalc::TEX_ROTATION, getCurrentTextureRot()); calcp->setVar(LLCalc::TEX_TRANSPARENCY, childGetValue("ColorTrans").asReal()); calcp->setVar(LLCalc::TEX_GLOW, childGetValue("glow").asReal()); + + // Find all faces with same texture + getChild("btn_select_same_diff")->setEnabled(LLSelectMgr::getInstance()->getTEMode() && mTextureCtrl->getEnabled()); + getChild("btn_select_same_norm")->setEnabled(LLSelectMgr::getInstance()->getTEMode() && mBumpyTextureCtrl->getEnabled()); + getChild("btn_select_same_spec")->setEnabled(LLSelectMgr::getInstance()->getTEMode() && mShinyTextureCtrl->getEnabled()); + // } else { @@ -2952,6 +2970,12 @@ void LLPanelFace::updateVisibility() // PBR controls updateVisibilityGLTF(); + + // Find all faces with same texture + getChild("btn_select_same_diff")->setVisible(mTextureCtrl->getVisible()); + getChild("btn_select_same_norm")->setVisible(mBumpyTextureCtrl->getVisible()); + getChild("btn_select_same_spec")->setVisible(mShinyTextureCtrl->getVisible()); + // } // static @@ -5534,3 +5558,81 @@ void LLPanelFace::changePrecision(S32 decimal_precision) } // +// Find all faces with same texture +void LLPanelFace::onClickBtnSelectSameTexture(const LLUICtrl* ctrl, const LLSD& user_data) +{ + char channel = user_data.asStringRef()[0]; + + std::unordered_set objects; + + // get a list of all linksets where at least one face is selected + for (auto iter = LLSelectMgr::getInstance()->getSelection()->valid_begin(); + iter != LLSelectMgr::getInstance()->getSelection()->valid_end(); iter++) + { + objects.insert((*iter)->getObject()->getRootEdit()); + } + + // clean out the selection + LLSelectMgr::getInstance()->deselectAll(); + + // select all faces of all linksets that were found before + LLObjectSelectionHandle handle; + for(auto objectp : objects) + { + handle = LLSelectMgr::getInstance()->selectObjectAndFamily(objectp, true, false); + } + + // grab the texture ID from the texture selector + LLTextureCtrl* texture_control = mTextureCtrl; + if (channel == 'n') + { + texture_control = mBumpyTextureCtrl; + } + else if (channel == 's') + { + texture_control = mShinyTextureCtrl; + } + + LLUUID id = texture_control->getImageAssetID(); + + // go through all selected links in all selecrted linksets + for (auto iter = handle->begin(); iter != handle->end(); iter++) + { + LLSelectNode* node = *iter; + LLViewerObject* objectp = node->getObject(); + + U8 te_count = objectp->getNumTEs(); + + for (U8 i = 0; i < te_count; i++) + { + LLUUID image_id; + if (channel == 'd') + { + image_id = objectp->getTEImage(i)->getID(); + } + else + { + const LLMaterialPtr mat = objectp->getTEref(i).getMaterialParams(); + if (mat.notNull()) + { + if (channel == 'n') + { + image_id = mat->getNormalID(); + } + else if (channel == 's') + { + image_id = mat->getSpecularID(); + } + } + } + + // deselect all faces that use a different texture UUID + if (image_id != id) + { + objectp->setTESelected(i, false); + node->selectTE(i, false); + } + } + } +} +// diff --git a/indra/newview/llpanelface.h b/indra/newview/llpanelface.h index 0ee81ac3e9..52a51e59bc 100644 --- a/indra/newview/llpanelface.h +++ b/indra/newview/llpanelface.h @@ -250,6 +250,8 @@ protected: void onPasteFaces(); // + void onClickBtnSelectSameTexture(const LLUICtrl* ctrl, const LLSD& user_data); // Find all faces with same texture + public: // needs to be accessible to selection manager void onCopyColor(); // records all selected faces void onPasteColor(); // to specific face diff --git a/indra/newview/skins/default/xui/de/floater_fs_performance.xml b/indra/newview/skins/default/xui/de/floater_fs_performance.xml index e646f55982..af5a0e2fb9 100644 --- a/indra/newview/skins/default/xui/de/floater_fs_performance.xml +++ b/indra/newview/skins/default/xui/de/floater_fs_performance.xml @@ -1,5 +1,5 @@ - + Frame: [TOT_FRAME_TIME]ms - Szenerie:[SCENERY_FRAME_PCT]% Avatare:[AV_FRAME_PCT]% UI:[UI_FRAME_PCT]% HUDs:[HUDS_FRAME_PCT]% Swap:[SWAP_FRAME_PCT]% Tasks:[IDLE_FRAME_PCT]% diff --git a/indra/newview/skins/default/xui/de/panel_fs_performance_nearby.xml b/indra/newview/skins/default/xui/de/panel_fs_performance_nearby.xml index 657db8f70d..9cab18bdf4 100644 --- a/indra/newview/skins/default/xui/de/panel_fs_performance_nearby.xml +++ b/indra/newview/skins/default/xui/de/panel_fs_performance_nearby.xml @@ -19,10 +19,12 @@ - + + + Per Rechts-Klick auf einen Avatar kann auch die Darstellung angepasst werden. diff --git a/indra/newview/skins/default/xui/de/panel_tools_texture.xml b/indra/newview/skins/default/xui/de/panel_tools_texture.xml index e77ad8fe80..3c0e0f7a7a 100644 --- a/indra/newview/skins/default/xui/de/panel_tools_texture.xml +++ b/indra/newview/skins/default/xui/de/panel_tools_texture.xml @@ -149,4 +149,7 @@ + + + diff --git a/indra/newview/skins/default/xui/fr/floater_fs_performance.xml b/indra/newview/skins/default/xui/fr/floater_fs_performance.xml index 28b08c52ab..f4dd046c8e 100644 --- a/indra/newview/skins/default/xui/fr/floater_fs_performance.xml +++ b/indra/newview/skins/default/xui/fr/floater_fs_performance.xml @@ -1,5 +1,5 @@ - + Images: [TOT_FRAME_TIME]ms - Scène:[SCENERY_FRAME_PCT]% Avatars:[AV_FRAME_PCT]% UI:[UI_FRAME_PCT]% Huds:[HUDS_FRAME_PCT]% Swap:[SWAP_FRAME_PCT]% Tâches:[IDLE_FRAME_PCT]% diff --git a/indra/newview/skins/default/xui/it/floater_fs_performance.xml b/indra/newview/skins/default/xui/it/floater_fs_performance.xml index b692865ed6..76cd6ec442 100644 --- a/indra/newview/skins/default/xui/it/floater_fs_performance.xml +++ b/indra/newview/skins/default/xui/it/floater_fs_performance.xml @@ -1,5 +1,5 @@ - + Frame: [TOT_FRAME_TIME]ms - Scenario:[SCENERY_FRAME_PCT]% Avatar:[AV_FRAME_PCT]% UI:[UI_FRAME_PCT]% HUD:[HUDS_FRAME_PCT]% Swap:[SWAP_FRAME_PCT]% Tasks:[IDLE_FRAME_PCT]% diff --git a/indra/newview/skins/default/xui/pl/floater_fs_performance.xml b/indra/newview/skins/default/xui/pl/floater_fs_performance.xml index cff8bd0151..80e1ba09b1 100644 --- a/indra/newview/skins/default/xui/pl/floater_fs_performance.xml +++ b/indra/newview/skins/default/xui/pl/floater_fs_performance.xml @@ -1,5 +1,5 @@ - + Klatki: [TOT_FRAME_TIME]ms - Scena:[SCENERY_FRAME_PCT]% Awatary:[AV_FRAME_PCT]% UI:[UI_FRAME_PCT]% HUDy:[HUDS_FRAME_PCT]% Swap:[SWAP_FRAME_PCT]% Zadania:[IDLE_FRAME_PCT]% diff --git a/indra/newview/skins/default/xui/pl/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/pl/floater_scene_load_stats.xml index 46b803e0cc..ff44390971 100644 --- a/indra/newview/skins/default/xui/pl/floater_scene_load_stats.xml +++ b/indra/newview/skins/default/xui/pl/floater_scene_load_stats.xml @@ -61,6 +61,13 @@ + + + + + + + diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index 30672406d6..7e935ec9f9 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -659,6 +659,19 @@ Jakość grafiki została zmniejszona - może to pomóc. Pewne funkcje graficzne zostały wyłączone. Zalecamy aktualizację sterowników graficznych. Możesz podnieść jakość grafiki pod Ustawienia > Grafika. + + Zmiana tego ustawienia spowoduje wyłączenie automatycznego strojenia i wyłączenie 'Ustawień automatycznych'. +Czy na pewno chcesz kontynuować? + + + + Aby włączyć zaawansowane oświetlenie należy podnieść jakość do poziomu 4. + + + + Aby włączyć cienie należy podnieść jakość do poziomu 4. + + Region [REGION] nie pozwala na zmianę powierzchni ziemi. @@ -5189,6 +5202,12 @@ Riggowane mesze są przeznaczone do dodawania do samego awatara. Ani ty, ani nik Jeśli chcesz zobaczyć ten obiekt, to usuń go i ponownie dołącz do punktu doczepienia na awatarze. + + Zamierzasz włączyć funkcję AutoFPS. Wszystkie niezapisane ustawienia grafiki zostaną utracone. + +Czy chcesz je najpierw zapisać? + + Nie wybrano prawidłowego ustawienia otoczenia. diff --git a/indra/newview/skins/default/xui/pl/panel_fs_performance_nearby.xml b/indra/newview/skins/default/xui/pl/panel_fs_performance_nearby.xml index 9dbb97bd21..146f4bd8c5 100644 --- a/indra/newview/skins/default/xui/pl/panel_fs_performance_nearby.xml +++ b/indra/newview/skins/default/xui/pl/panel_fs_performance_nearby.xml @@ -17,9 +17,11 @@ + - + + Możesz kliknąć PPM na awatarze w świecie, aby sterować wyświetlaniem. diff --git a/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml b/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml index e0b1f9a896..047898f0ed 100644 --- a/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml +++ b/indra/newview/skins/default/xui/pl/panel_presets_pulldown.xml @@ -3,5 +3,6 @@ Ustawienia graficzne -