Merge branch 'master' into PoserManipSave

master
Angeldark Raymaker 2025-03-29 13:05:23 +00:00
commit 7d07df07be
18 changed files with 127 additions and 51 deletions

View File

@ -428,6 +428,8 @@ void ColladaExportFloater::CacheReadResponder::completed(bool success)
// For other formats we need to decode first
if (mFormattedImage->updateData() && ( (mFormattedImage->getWidth() * mFormattedImage->getHeight() * mFormattedImage->getComponents()) != 0 ) )
{
mFormattedImage->setDiscardLevel(0); // <FS/> [FIRE-35292] Fix for textures getting downscaled and compressed
LLPointer<LLImageRaw> raw = new LLImageRaw;
raw->resize(mFormattedImage->getWidth(), mFormattedImage->getHeight(), mFormattedImage->getComponents());
@ -503,7 +505,15 @@ void ColladaExportFloater::CacheReadResponder::saveTexturesWorker(void* data)
std::string name = gDirUtilp->getDirName(me->mFilename);
name += gDirUtilp->getDirDelimiter() + me->mTexturesToSave[id];
CacheReadResponder* responder = new CacheReadResponder(id, img, name, img_type);
LLAppViewer::getTextureCache()->readFromCache(id, 0, 999999, responder);
// <FS:minerjr> [FIRE-35292] Fix for textures getting downscaled and compressed
//LLAppViewer::getTextureCache()->readFromCache(id, 0, 999999, responder);
// The above line hard coded the size of data to read from the cached version of the texture as 999999,
// where now we will calcuate the correct value based upon the texture's full width, height and # of components (3=RGB, 4=RGBA) and
// the discard level (0)). There is a choice to change the rate, but we seem to use the value of 1/8 compression level
S32 texture_size = LLImageJ2C::calcDataSizeJ2C(imagep->getFullWidth(), imagep->getFullHeight(), imagep->getComponents(), 0);// , F32 rate) rate = const F32 DEFAULT_COMPRESSION_RATE = 1.f/8.f;
// Use calculated texture_size (from LLTextureFetch::createRequest see "else if (w*h*c > 0)" statement for more info)
LLAppViewer::getTextureCache()->readFromCache(id, 0, texture_size, responder);
// </FS:minerjr> [FIRE-35292]
me->mTexturesToSave.erase(id);
me->updateTitleProgress();
me->mTimer.reset();

View File

@ -690,7 +690,14 @@ void FSFloaterObjectExport::fetchTextureFromCache(LLViewerFetchedTexture* src_vi
const LLUUID& texture_id = src_vi->getID();
LLImageJ2C* mFormattedImage = new LLImageJ2C;
FSFloaterObjectExport::FSExportCacheReadResponder* responder = new FSFloaterObjectExport::FSExportCacheReadResponder(texture_id, mFormattedImage, this);
LLAppViewer::getTextureCache()->readFromCache(texture_id, 0, 999999, responder);
// <FS:minerjr> [FIRE-35292] Fix for textures getting downscaled and compressed
//LLAppViewer::getTextureCache()->readFromCache(id, 0, 999999, responder);
// The above line hard coded the size of data to read from the cached version of the texture as 999999,
// where now we will calcuate the correct value based upon the texture's full width, height and # of components (3=RGB, 4=RGBA) and
// the discard level (0)). There is a choice to change the rate, but we seem to use the value of 1/8 compression level
S32 texture_size = LLImageJ2C::calcDataSizeJ2C(src_vi->getFullWidth(), src_vi->getFullHeight(), src_vi->getComponents(), 0);// , F32 rate) rate = const F32 DEFAULT_COMPRESSION_RATE = 1.f/8.f;
// Use calculated texture_size (from LLTextureFetch::createRequest see "else if (w*h*c > 0)" statement for more info)
LLAppViewer::getTextureCache()->readFromCache(texture_id, 0, texture_size, responder);
LL_DEBUGS("export") << "Fetching " << texture_id << " from the TextureCache" << LL_ENDL;
}

View File

@ -220,7 +220,7 @@ S32 LLAgentBenefits::getPicksLimit() const
}
else
{
constexpr S32 MAX_OPENSIM_PICKS_FALLBACK = 20; // [FIRE-35276] Freeze on OpenSim (default agreed with Ubit Umarov) (originally by Haklezz)
constexpr S32 MAX_OPENSIM_PICKS_FALLBACK = 20; // [FIRE-35276] Freeze on OpenSim (default agreed with Ubit Umarov) (originally by Hecklezz)
S32 max_profile_picks = MAX_OPENSIM_PICKS_FALLBACK;
@ -234,7 +234,7 @@ S32 LLAgentBenefits::getPicksLimit() const
}
}
return max_profile_picks;
}
}
// </FS:Ansariel>
}

View File

@ -91,6 +91,8 @@
#include "fscommon.h"
#include "llstartup.h"
#include "llviewernetwork.h" // <FS/> Access to GridManager
static LLDefaultChildRegistry::Register<LLNetMap> r1("net_map");
constexpr F32 LLNetMap::MAP_SCALE_MIN = 32;
@ -454,26 +456,75 @@ void LLNetMap::draw()
gGL.color4f(1.f, 0.5f, 0.5f, 1.f);
}
// Draw using texture.
gGL.getTexUnit(0)->bind(regionp->getLand().getSTexture());
gGL.begin(LLRender::TRIANGLES);
// <FS> [FIRE-35147] OpenSim regions can be greater than 256x256 and need to be accounted for
if (!LLGridManager::getInstance()->isInSecondLife())
{
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(left, top);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex2f(left, bottom);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(right, bottom);
// Fixes OpenSim race condition on grid change not having updated Grid Info yet
bool isAgentTeleporting = gAgent.getTeleportState() != LLAgent::TELEPORT_NONE;
if (!isAgentTeleporting)
{
const LLViewerRegion::tex_matrix_t& tiles(regionp->getWorldMapTiles());
for (S32 i(0), scaled_width((S32)(real_width / region_width)), square_width(scaled_width * scaled_width);
i < square_width; ++i)
{
const F32 y = (F32)(i / scaled_width);
const F32 x = (F32)(i - y * scaled_width);
const F32 local_left(left + x * mScale);
const F32 local_right(local_left + mScale);
const F32 local_bottom(bottom + y * mScale);
const F32 local_top(local_bottom + mScale);
LLPointer<LLViewerTexture> pRegionImage = tiles[(U64)(x * scaled_width + y)];
if (pRegionImage.isNull())
continue;
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(left, top);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(right, bottom);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex2f(right, top);
if (pRegionImage->hasGLTexture())
{
gGL.getTexUnit(0)->bind(pRegionImage);
gGL.begin(LLRender::TRIANGLES);
{
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(local_left, local_top);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex2f(local_left, local_bottom);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(local_right, local_bottom);
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(local_left, local_top);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(local_right, local_bottom);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex2f(local_right, local_top);
}
gGL.end();
}
pRegionImage->setBoostLevel(LLViewerTexture::BOOST_MAP_VISIBLE);
}
}
}
gGL.end();
// </FS>
else
{
// Draw using texture.
gGL.getTexUnit(0)->bind(regionp->getLand().getSTexture());
gGL.begin(LLRender::TRIANGLES);
{
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(left, top);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex2f(left, bottom);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(right, bottom);
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2f(left, top);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2f(right, bottom);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex2f(right, top);
}
gGL.end();
}
gGL.flush();
}

View File

@ -11,6 +11,7 @@
<panel name="logs_panel" label="Log"/>
<panel name="local_mesh_settings_panel" label="Einstellungen">
<check_box name="local_mesh_scale_use_meters" label="Skala in Meter annehmen" tool_tip="Skalierung in cm ignorieren, die in Tools wie Maya verwendet werden." />
<check_box name="checkbox_apply_joint_offsets" label="Gelenk-Versatz anwenden" tool_tip="Jeglichen Gelenk-Versatz im Mesh anwenden; standardmäßig werden diese ignoriert." />
<text name="lod_suffix_label">
LOD-Suffixe:
</text>

View File

@ -114,7 +114,7 @@
width="300"
label="Assume scale is in meters."
tool_tip="Ignore the cm scale units used by tools such as Maya" />
<check_box name="local_mesh_scale_use_meters"
<check_box name="checkbox_apply_joint_offsets"
height="15"
control_name="FSLocalMeshApplyJointOffsets"
follows="top|left"

View File

@ -11,6 +11,7 @@
</panel>
<panel name="local_mesh_settings_panel" label="Paramètres">
<check_box name="local_mesh_scale_use_meters" label="Suppose que l'échelle est en mètres." tool_tip="Ignore les unités d'échelle en cm utilisées par des outils tels que Maya." />
<check_box name="checkbox_apply_joint_offsets" label="Appliquer les décalages de jointures." tool_tip="Appliquer les éventuels décalages de jointures dans le maillage ; par défaut, ces décalages sont ignorés." />
<text name="lod_suffix_label">
Suffixes LOD :
</text>

View File

@ -9,6 +9,7 @@
<menu_item_check label="Afficher le solde de devises" name="FSShowCurrencyBalanceInStatusbar"/>
<menu_item_check label="Afficher les contrôles des médias" name="FSEnableVolumeControls"/>
<menu_item_check label="Afficher le nombre d'images par seconde" name="FSStatusBarShowFPS"/>
<menu_item_check label="Afficher l'indicateur de couleur pour le nombre d'images par seconde" name="FSStatusBarShowFPSColors"/>
<menu_item_check label="Afficher l'indicateur de trafic" name="ShowNetStats"/>
<menu_item_check label="Afficher les coordonnées" name="Coordinates"/>
<menu_item_check label="Afficher les autorisations de la parcelle" name="Parcel Properties"/>

View File

@ -10,6 +10,7 @@
</panel>
<panel name="local_mesh_settings_panel" label="Opcje">
<check_box name="local_mesh_scale_use_meters" label="Załóż, że rozmiar jest w metrach" tool_tip="Zignoruj jednostki skali w cm używane przez narzędzia takie jak Maya." />
<check_box name="checkbox_apply_joint_offsets" label="Przesunięcia stawów" tool_tip="Zastosuj wszelkie przesunięcia (offsety) stawów w meszu, domyślnie są one ignorowane." />
<text name="lod_suffix_label">
Sufiksy LOD:
</text>

View File

@ -1,15 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_navbar_menu">
<menu_item_check label="Pokaż pasek nawigacji i wyszukiwarki" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Pokaż pasek wyszukiwarki" name="ShowSearchTopBar"/>
<menu_item_check label="Pokaż pasek ulubionych" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Pokaż lokalizację" name="ShowMenuBarLocation"/>
<menu_item_check label="Pokaż wersję symulatora" name="FSStatusbarShowSimulatorVersion"/>
<menu_item_check label="Pokaż wyszukiwarkę pozycji w menu" name="FSMenuSearch"/>
<menu_item_check label="Pokaż stan konta" name="FSShowCurrencyBalanceInStatusbar"/>
<menu_item_check label="Pokaż kontrolki mediów" name="FSEnableVolumeControls"/>
<menu_item_check label="Pokaż klatki na sekundę (FPS)" name="FSStatusBarShowFPS"/>
<menu_item_check label="Pokaż wskaźnik ruchu sieciowego" name="ShowNetStats"/>
<menu_item_check label="Pokaż współrzędne" name="Coordinates"/>
<menu_item_check label="Pokaż właściwości działki" name="Parcel Properties"/>
<menu_item_check label="Pasek nawigacji i wyszukiwarki" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Pasek wyszukiwarki" name="ShowSearchTopBar"/>
<menu_item_check label="Pasek ulubionych" name="ShowNavbarFavoritesPanel"/>
<menu_item_check label="Lokalizacja" name="ShowMenuBarLocation"/>
<menu_item_check label="Wersja symulatora" name="FSStatusbarShowSimulatorVersion"/>
<menu_item_check label="Wyszukiwarka pozycji w menu" name="FSMenuSearch"/>
<menu_item_check label="Stan konta" name="FSShowCurrencyBalanceInStatusbar"/>
<menu_item_check label="Kontrolki mediów" name="FSEnableVolumeControls"/>
<menu_item_check label="Klatki na sekundę (FPS)" name="FSStatusBarShowFPS"/>
<menu_item_check label="Wskaźnik koloru dla klatek na sekundę" name="FSStatusBarShowFPSColors" />
<menu_item_check label="Wskaźnik ruchu sieciowego" name="ShowNetStats"/>
<menu_item_check label="Współrzędne" name="Coordinates"/>
<menu_item_check label="Właściwości działki" name="Parcel Properties"/>
</menu>

View File

@ -9,6 +9,7 @@
<menu_item_check label="Показать Денежки" name="FSShowCurrencyBalanceInStatusbar"/>
<menu_item_check label="Показать Управление Медиа" name="FSEnableVolumeControls"/>
<menu_item_check label="Показать FPS" name="FSStatusBarShowFPS"/>
<menu_item_check label="Показать цветной индикатор количества кадров в секунду" name="FSStatusBarShowFPSColors"/>
<menu_item_check label="Показать Индикатор трафика" name="ShowNetStats"/>
<menu_item_check label="Показать Координаты" name="Coordinates"/>
<menu_item_check label="Показать Разрешения Участка" name="Parcel Properties"/>

View File

@ -397,7 +397,7 @@
<check_box label="預設使用'可靠'的細節層次" tool_tip="預設使用'可靠'的方法GLOD" name="mesh_upload_default_to_reliable" />
<check_box label="自動預覽權重" tool_tip="自動在預覽中顯示包含綁定資訊的網格的權重" name="mesh_preview_auto_show_weights" />
<text name="lod_suffix_label">
細節層次字尾
細節層次後綴
</text>
<combo_box name="lod_suffix_combo" tool_tip="選擇預設或自訂">
<combo_item name="choose_one">選擇標準或手動編輯...</combo_item>
@ -408,23 +408,23 @@
<text name="suf_lowest_lab">
最低:
</text>
<line_editor name="suf_lowest" tool_tip="標識檔案名中或檔案內模型的最低細節層次的字尾。" />
<line_editor name="suf_lowest" tool_tip="標識檔案名中或檔案內模型的最低細節層次的後綴。" />
<text name="suf_low_lab">
較低:
</text>
<line_editor name="suf_low" tool_tip="標識檔案名中或檔案內模型的較低細節層次的字尾。" />
<line_editor name="suf_low" tool_tip="標識檔案名中或檔案內模型的較低細節層次的後綴。" />
<text name="suf_medium_lab" width="45">
中等:
</text>
<line_editor name="suf_medium" tool_tip="標識檔案名中或檔案內模型的中等細節層次的字尾。" />
<line_editor name="suf_medium" tool_tip="標識檔案名中或檔案內模型的中等細節層次的後綴。" />
<text name="suf_high_lab">
高:
</text>
<line_editor name="suf_high" tool_tip="標識檔案名中或檔案內模型的高細節層次的字尾。" />
<line_editor name="suf_high" tool_tip="標識檔案名中或檔案內模型的高細節層次的後綴。" />
<text name="suf_physics_lab">
物理:
</text>
<line_editor name="suf_physics" tool_tip="標識檔案名中或檔案內模型的物理相關部分的字尾。" />
<line_editor name="suf_physics" tool_tip="標識檔案名中或檔案內模型的物理相關部分的後綴。" />
<text name="mesh_preview_ud_preset_label" width="190">
使用者自訂物理設定:
</text>

View File

@ -397,7 +397,7 @@
</combo_box>
</panel>
</panel>
<panel name="P_Aids" label="輔助工具">
<panel name="P_Aids" label="輔助">
<panel name="PT_Aids">
<text name="T_Aids">
使用者界面輔助

View File

@ -12,10 +12,11 @@
<panel name="logs_panel" label="日誌" />
<panel name="local_mesh_settings_panel" label="設定">
<check_box name="local_mesh_scale_use_meters" label="假定比例為米" tool_tip="忽略在Maya等工具中使用的以公分為單位的縮放。" />
<check_box name="checkbox_apply_joint_offsets" label="套用關節偏移。" tool_tip="套用網格模型中的任何關節偏移,預設情況下這些偏移會被忽略。" />
<text name="lod_suffix_label">
細節層次字尾:
細節層次後綴:
</text>
<combo_box name="lod_suffix_combo" tool_tip="選擇預設值或手動編輯... || SL標準 - 最低=細節層次0最高無字尾 || 遊戲引擎 - Unity/UE5等最低=細節層次3最高=細節層次0。 || 細節層次名稱 - 英文細節層次名稱(最低='LOWEST',最高='HIGH')。">
<combo_box name="lod_suffix_combo" tool_tip="選擇預設值或手動編輯... || SL標準 - 最低=細節層次0最高無後綴 || 遊戲引擎 - Unity/UE5等最低=細節層次3最高=細節層次0。 || 細節層次名稱 - 英文細節層次名稱(最低='LOWEST',最高='HIGH')。">
<combo_item name="choose_one">當前的</combo_item>
<combo_item name="suff_sl">SL標準</combo_item>
<combo_item name="suff_unity">遊戲引擎標準</combo_item>
@ -24,23 +25,23 @@
<text name="suf_lowest_lab">
最低:
</text>
<line_editor name="suf_lowest" tool_tip="辨識檔案名中或檔案內模型的最低細節層次的字尾。" />
<line_editor name="suf_lowest" tool_tip="辨識檔案名中或檔案內模型的最低細節層次的後綴。" />
<text name="suf_low_lab">
較低:
</text>
<line_editor name="suf_low" tool_tip="辨識檔案名中或檔案內模型的較低細節層次的字尾。" />
<line_editor name="suf_low" tool_tip="辨識檔案名中或檔案內模型的較低細節層次的後綴。" />
<text name="suf_medium_lab">
中等:
</text>
<line_editor name="suf_medium" tool_tip="辨識檔案名中或檔案內模型的中等細節層次的字尾。" />
<line_editor name="suf_medium" tool_tip="辨識檔案名中或檔案內模型的中等細節層次的後綴。" />
<text name="suf_high_lab">
較高:
</text>
<line_editor name="suf_high" tool_tip="辨識檔案名中或檔案內模型的較高細節層次的字尾。" />
<line_editor name="suf_high" tool_tip="辨識檔案名中或檔案內模型的較高細節層次的後綴。" />
<text name="suf_physics_lab">
物理:
</text>
<line_editor name="suf_physics" tool_tip="辨識檔案名中或檔案內模型的物理特性的字尾。" />
<line_editor name="suf_physics" tool_tip="辨識檔案名中或檔案內模型的物理特性的後綴。" />
</panel>
</tab_container>
<button name="btn_apply" label="應用" />

View File

@ -8,7 +8,8 @@
<menu_item_check label="在選單中顯示搜尋" name="FSMenuSearch" />
<menu_item_check label="顯示貨幣餘額" name="FSShowCurrencyBalanceInStatusbar" />
<menu_item_check label="顯示音量控制" name="FSEnableVolumeControls" />
<menu_item_check label="顯示每秒圖像數量" name="FSStatusBarShowFPS" />
<menu_item_check label="顯示每秒影格數" name="FSStatusBarShowFPS" />
<menu_item_check label="每秒影格數的顯示顏色" name="FSStatusBarShowFPSColors"/>
<menu_item_check label="顯示網路統計資訊" name="ShowNetStats" />
<menu_item_check label="顯示坐標" name="Coordinates" />
<menu_item_check label="顯示地塊權限" name="Parcel Properties" />

View File

@ -4353,7 +4353,7 @@ https://wiki.firestormviewer.org/fs_voice
記事卡的第[LINE]行沒有有效的「[」狀態字首。
</notification>
<notification name="AOImportNoValidDelimiter">
記事卡的第[LINE]行沒有有效的「[」狀態字尾
記事卡的第[LINE]行沒有有效的「[」狀態後綴
</notification>
<notification name="AOImportStateNameNotFound">
狀態[NAME]不存在。

View File

@ -31,7 +31,7 @@
</text>
<slider label_width="230" label="懸停文字淡出距離(單位:米):" tool_tip="設定懸停文字淡出的距離。" name="FSHudTextFadeDistance" />
<slider label_width="230" label="懸停文字淡出範圍(單位:米):" tool_tip="設定懸停文字從完全可見到完全不可見的淡出範圍。" name="FSHudTextFadeRange" />
<check_box name="FSHudTextUseHoverHighlight" label="突出顯示物件的懸停文字:" tool_tip="當滑鼠懸停於物件上時,物件的懸停文字(若存在)將被突出顯示,文字會置於前景,並停用透明背景。"/>
<check_box name="FSHudTextUseHoverHighlight" label="突出顯示物件的懸停文字:" tool_tip="當滑鼠懸停於物件上時,物件的懸停文字(若存在)將被突出顯示,文字會置於前景,並停用懸停文字的透明度。"/>
<text name="FSHudTextShowBackgroundLabel">
顯示懸停文字背景:
</text>

View File

@ -33,7 +33,7 @@
<button name="stream_toggle_btn" tool_tip="啟動/停止地塊音訊串流" />
<button name="media_toggle_btn" tool_tip="啟動/停止所有媒體(音樂,影片,網站)" />
<button name="volume_btn" tool_tip="總音量控制" />
<text name="FPSText" tool_tip="每秒影格數">
<text name="FPSText" tool_tip="每秒影格數(點擊調整限制)">
200.0
</text>
</panel>