# Conflicts:
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llviewertexture.cpp
#	indra/newview/llviewertexturelist.cpp
master
Ansariel 2024-07-02 01:23:35 +02:00
commit 20294e9ee8
57 changed files with 582 additions and 238 deletions

View File

@ -1,6 +1,11 @@
name: Build viewer
on:
workflow_dispatch:
inputs:
include_tracy:
description: 'Include tracy profiling builds'
required: false
default: 'false'
push:
branches:
- "Firestorm*.*.*"
@ -116,7 +121,11 @@ jobs:
elif [[ "${{ github.ref_name }}" == *nightly* ]] || [[ "${{ github.event_name }}" == 'schedule' ]]; then
FS_RELEASE_TYPE=Nightly
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
if [[ "${{ github.event.inputs.include_tracy }}" == "false" ]]; then
FS_RELEASE_TYPE=Manual
elif [[ "${{ github.event.inputs.include_tracy }}" == "true" ]]; then
FS_RELEASE_TYPE=Profiling
fi
fi
if [[ "${{ matrix.addrsize }}" == "64" ]]; then
FS_RELEASE_CHAN="${FS_RELEASE_TYPE}x64"
@ -243,7 +252,7 @@ jobs:
- name: Set expiration days based on FS_RELEASE_TYPE
run: |
case "${{ env.FS_RELEASE_TYPE }}" in
"Nightly" | "Manual")
"Nightly" | "Manual" | "Profiling")
EXPIRE_DAYS=14
;;
"Alpha")
@ -264,6 +273,10 @@ jobs:
echo "EXTRA_ARGS=${{ env.EXTRA_ARGS}}" >> $GITHUB_ENV
fi
shell: bash
- name: Add tracy builds for dev use if selected (manual builds only).
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.include_tracy == 'true' }}
shell: bash
run: echo "EXTRA_ARGS=${{ env.EXTRA_ARGS }} --tracy" >> $GITHUB_ENV
- name: Clean up packages to give more space
run: rm *${{ env.fallback_platform }}*bz2
@ -344,11 +357,14 @@ jobs:
FS_RELEASE_FOLDER:
if: always()
steps:
- name: Checkout files
uses: Bhacaz/checkout-files@v2
- name: Checkout repository
uses: actions/checkout@v4
with:
files: fsutils/download_list.py
branch: ${{ github.head_ref || github.ref_name || 'master' }}
sparse-checkout: |
fsutils/download_list.py
sparse-checkout-cone-mode: false
ref: ${{ github.head_ref || github.ref_name || 'master' }}
fetch-depth: 1
- name: Install discord-webhook library
run: pip install discord-webhook

View File

@ -2752,15 +2752,43 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
<string>fc67514183e7dbbb96bebb9970e1431c</string>
<string>ae3ac835e50d75e1c1691534bfddbf71</string>
<key>hash_algorithm</key>
<string>md5</string>
<key>url</key>
<string>https://3p.firestormviewer.org/tracy-v0.10.241491433-windows-241491433.tar.bz2</string>
<string>https://3p.firestormviewer.org/tracy-v0.10.241831928-windows-241831928.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
</map>
<key>linux</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>9ab29796dc144431a9db46fddfbd88b0</string>
<key>hash_algorithm</key>
<string>md5</string>
<key>url</key>
<string>https://3p.firestormviewer.org/tracy-v0.10.241831929-linux-241831929.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
</map>
<key>darwin</key>
<map>
<key>archive</key>
<map>
<key>hash</key>
<string>f87f9db3a3c69464b46cd59490bca842</string>
<key>hash_algorithm</key>
<string>md5</string>
<key>url</key>
<string>https://3p.firestormviewer.org/tracy-v0.10.241831925-darwin-241831925.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
</map>
</map>
<key>license</key>
<string>bsd</string>

View File

@ -158,7 +158,7 @@ Available premade firestorm-specific build targets:
```
ReleaseFS (includes KDU, FMOD)
ReleaseFS_open (no KDU, no FMOD)
RelWithDebInfo_open (no KDU, no FMOD)
RelWithDebInfoFS_open (no KDU, no FMOD)
```
### Configuration Switches

View File

@ -39,6 +39,7 @@
#elif LL_LINUX
# include <unistd.h>
# include <sys/resource.h>
# include <sys/sysinfo.h>
#endif
#include "llmemory.h"
@ -85,6 +86,7 @@ void LLMemory::initMaxHeapSizeGB(F32Gigabytes max_heap_size)
void LLMemory::updateMemoryInfo()
{
LL_PROFILE_ZONE_SCOPED
U32Kilobytes avail_phys; // <FS:Beq/> align MemInfo across platforms
#if LL_WINDOWS
PROCESS_MEMORY_COUNTERS counters;
@ -95,23 +97,25 @@ void LLMemory::updateMemoryInfo()
}
sAllocatedMemInKB = U32Kilobytes::convert(U64Bytes(counters.WorkingSetSize));
sample(sAllocatedMem, sAllocatedMemInKB);
// sample(sAllocatedMem, sAllocatedMemInKB); // <FS:Beq/> align MemInfo across platforms
sAllocatedPageSizeInKB = U32Kilobytes::convert(U64Bytes(counters.PagefileUsage));
sample(sVirtualMem, sAllocatedPageSizeInKB);
// <FS:Beq> align MemInfo across platforms
// U32Kilobytes avail_phys, avail_virtual;
// LLMemoryInfo::getAvailableMemoryKB(avail_phys, avail_virtual) ;
// sMaxPhysicalMemInKB = llmin(avail_phys + sAllocatedMemInKB, sMaxHeapSizeInKB);
U32Kilobytes avail_phys, avail_virtual;
// if(sMaxPhysicalMemInKB > sAllocatedMemInKB)
// {
// sAvailPhysicalMemInKB = sMaxPhysicalMemInKB - sAllocatedMemInKB ;
// }
// else
// {
// sAvailPhysicalMemInKB = U32Kilobytes(0);
// }
U32Kilobytes avail_virtual;
LLMemoryInfo::getAvailableMemoryKB(avail_phys, avail_virtual) ;
sMaxPhysicalMemInKB = llmin(avail_phys + sAllocatedMemInKB, sMaxHeapSizeInKB);
if(sMaxPhysicalMemInKB > sAllocatedMemInKB)
{
sAvailPhysicalMemInKB = sMaxPhysicalMemInKB - sAllocatedMemInKB ;
}
else
{
sAvailPhysicalMemInKB = U32Kilobytes(0);
}
// </FS:Beq>
#elif defined(LL_DARWIN)
task_vm_info info;
mach_msg_type_number_t infoCount = TASK_VM_INFO_COUNT;
@ -147,21 +151,47 @@ void LLMemory::updateMemoryInfo()
if (result == KERN_SUCCESS) {
// This is what Chrome reports as 'the "Physical Memory Free" value reported by the Memory Monitor in Instruments.'
// Note though that inactive pages are not included here and not yet free, but could become so under memory pressure.
sAvailPhysicalMemInKB = U32Bytes(vmstat.free_count * page_size);
sMaxPhysicalMemInKB = LLMemoryInfo::getHardwareMemSize();
// <FS:Beq> align MemInfo across platforms
// sAvailPhysicalMemInKB = U32Bytes(vmstat.free_count * page_size);
// sMaxPhysicalMemInKB = LLMemoryInfo::getHardwareMemSize();
avail_phys = U32Bytes(vmstat.free_count * page_size);
sMaxHeapSizeInKB = LLMemoryInfo::getHardwareMemSize();
// </FS:Beq>
}
else
{
LL_WARNS() << "task_info failed" << LL_ENDL;
}
// <FS:Beq> align MemInfo across platforms
#elif defined(LL_LINUX)
// Use sysinfo() to get the total physical memory.
struct sysinfo info;
sysinfo(&info);
sMaxHeapSizeInKB = U32Kilobytes::convert((U64Bytes)info.totalram); // Total RAM in system
avail_phys = U32Kilobytes::convert((U64Bytes)info.freeram); // Total Free RAM in system
sAllocatedMemInKB = U32Kilobytes::convert(U64Bytes(LLMemory::getCurrentRSS())); // represents the RAM allocated by this process only (inline with the windows implementation)
// </FS:Beq>
#else
//not valid for other systems for now.
LL_WARNS() << "LLMemory::updateMemoryInfo() not implemented for this platform." << LL_ENDL;
sAllocatedMemInKB = U64Bytes(LLMemory::getCurrentRSS());
sMaxPhysicalMemInKB = U64Bytes(U32_MAX);
sAvailPhysicalMemInKB = U64Bytes(U32_MAX);
#endif
// <FS:Beq> align MemInfo across platforms
sample(sAllocatedMem, sAllocatedMemInKB);
// sMaxPhysicalMem - max this process can use = the lesser of (what we already have + what's available) or MaxHeap
sMaxPhysicalMemInKB = llmin(avail_phys + sAllocatedMemInKB, sMaxHeapSizeInKB);
if(sMaxPhysicalMemInKB > sAllocatedMemInKB)
{
sAvailPhysicalMemInKB = sMaxPhysicalMemInKB - sAllocatedMemInKB ;
}
else
{
sAvailPhysicalMemInKB = U32Kilobytes(0);
}
// </FS:Beq>
return ;
}

View File

@ -427,11 +427,20 @@ void LLQueuedThread::processRequest(LLQueuedThread::QueuedRequest* req)
if (req)
{
// <FS:Beq> Deferred retry requests
// Potentially when there is nothing else to do this will loop until the retry time.
// Avoid loop when idle by restoring a sleep
// note that when there is nothing to do the thread still sleeps normally.
using namespace std::chrono_literals;
const auto throttle_time = 2ms;
if( req->mDeferUntil > LL::WorkQueue::TimePoint::clock::now())
{
ms_sleep(throttle_time.count());
}
// if we're still not ready to retry then requeue
if( req->mDeferUntil > LL::WorkQueue::TimePoint::clock::now())
{
LL_PROFILE_ZONE_NAMED("qtpr - defer requeue");
lockData();
req->setStatus(STATUS_QUEUED);
mRequestQueue.post([this, req]() { processRequest(req); });
@ -487,7 +496,6 @@ void LLQueuedThread::processRequest(LLQueuedThread::QueuedRequest* req)
llassert(ret);
#else
using namespace std::chrono_literals;
auto retry_time = LL::WorkQueue::TimePoint::clock::now() + 2ms; // <FS:Beq/> reduce delay on retry
// <FS:Beq> improve retry behaviour
// mRequestQueue.post([=]
// {
@ -503,6 +511,8 @@ void LLQueuedThread::processRequest(LLQueuedThread::QueuedRequest* req)
// }
// processRequest(req);
// });
const auto retry_backoff = 16ms;
auto retry_time = LL::WorkQueue::TimePoint::clock::now() + retry_backoff;
req->defer_until(retry_time);
LL_PROFILE_ZONE_NAMED("processRequest - post deferred");
mRequestQueue.post([this, req]() { processRequest(req); });

View File

@ -1263,8 +1263,7 @@ LLNotifications::LLNotifications()
: LLNotificationChannelBase(LLNotificationFilters::includeEverything),
mIgnoreAllNotifications(false)
{
// <FS:Ansariel> Disable test API
//mListener.reset(new LLNotificationsListener(*this));
mListener.reset(new LLNotificationsListener(*this));
LLUICtrl::CommitCallbackRegistry::currentRegistrar().add("Notification.Show", boost::bind(&LLNotifications::addFromCallback, this, _2));
// touch the instance tracker for notification channels, so that it will still be around in our destructor

View File

@ -98,8 +98,7 @@
#include "llrefcount.h"
#include "llsdparam.h"
// <FS:Ansariel> Disable test API
//#include "llnotificationslistener.h"
#include "llnotificationslistener.h"
class LLAvatarName;
typedef enum e_notification_priority
@ -999,8 +998,7 @@ private:
bool mIgnoreAllNotifications;
// <FS:Ansariel> Disable test API
//std::unique_ptr<LLNotificationsListener> mListener;
std::unique_ptr<LLNotificationsListener> mListener;
std::vector<LLNotificationChannelPtr> mDefaultChannels;
};

View File

@ -141,7 +141,9 @@ void LLUICtrlFactory::createChildren(LLView* viewp, LLXMLNodePtr node, const wid
//LL_WARNS() << child_name << " is not a valid child of " << node->getName()->mString << LL_ENDL;
std::string name;
node->getAttributeString("name", name);
LL_WARNS() << child_name << " is not a valid child of " << node->getName()->mString << " for " << name << " (line no. " << node->getLineNumber() << ")" << LL_ENDL;
std::string child_name_attribute;
child_node->getAttributeString("name", child_name_attribute);
LL_WARNS() << child_name << " with name " << child_name_attribute << " is not a valid child of " << node->getName()->mString << " for " << name << " (line no. " << node->getLineNumber() << ")" << LL_ENDL;
// </FS:Ansariel>
}
else
@ -150,7 +152,9 @@ void LLUICtrlFactory::createChildren(LLView* viewp, LLXMLNodePtr node, const wid
//LL_WARNS() << "Could not create widget named " << child_node->getName()->mString << LL_ENDL;
std::string name;
node->getAttributeString("name", name);
LL_WARNS() << "Could not create widget named " << child_node->getName()->mString << " for " << name << " (line no. " << node->getLineNumber() << ")" << LL_ENDL;
std::string child_name_attribute;
child_node->getAttributeString("name", child_name_attribute);
LL_WARNS() << "Could not create widget " << child_node->getName()->mString << " with name " << child_name_attribute << " for " << name << " (line no. " << node->getLineNumber() << ")" << LL_ENDL;
// </FS:Ansariel>
}
}

View File

@ -20,7 +20,6 @@
<string>RenderAvatarMaxComplexity</string>
<string>RenderAvatarMaxNonImpostors</string>
<string>RenderAvatarPhysicsLODFactor</string>
<string>RenderCloudShadowAmbianceFactor</string>
<string>RenderCompressTextures</string>
<string>RenderDeferredSSAO</string>
<string>RenderDepthOfField</string>

View File

@ -2186,6 +2186,28 @@
<key>Value</key>
<string>http://lecs-viewer-web-components.s3.amazonaws.com/v3.0/[GRID_LOWERCASE]/avatars.html</string>
</map>
<key>AvatarRotateThresholdSlow</key>
<map>
<key>Comment</key>
<string>Angle between avatar facing and camera facing at which avatar turns to face same direction as camera, when moving slowly (degrees)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<integer>60</integer>
</map>
<key>AvatarRotateThresholdFast</key>
<map>
<key>Comment</key>
<string>Angle between avatar facing and camera facing at which avatar turns to face same direction as camera, when moving fast (degrees)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<integer>2</integer>
</map>
<key>AvatarBakedTextureUploadTimeout</key>
<map>
<key>Comment</key>
@ -14970,6 +14992,19 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Backup</key>
<integer>0</integer>
</map>
<key>TextureBiasUnimportantFactor</key>
<map>
<key>Comment</key>
<string>When biasing textures to lower resolution due to lack of vram, the importance threshold below which is considered unimportant and getting an extra bias.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>0.25</real>
<key>Backup</key>
<integer>0</integer>
</map>
<key>TextureDecodeDisabled</key>
<map>
<key>Comment</key>
@ -25706,5 +25741,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>1</integer>
</map>
<key>FSMinFreeMainMemoryTextureDiscardThreshold</key>
<map>
<key>Comment</key>
<string>Minimum of available physical memory in MB before textures get scaled down</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<integer>512</integer>
</map>
</map>
</llsd>

View File

@ -1980,10 +1980,6 @@ void FSPanelFace::updateUI(bool force_set_values /*false*/)
mCheckFullbright->setValue((S32)(fullbright_flag != 0));
mCheckFullbright->setEnabled(editable );
mCheckFullbright->setTentative(!identical_fullbright);
// TODO: find a better way to do this without relying on the name -Zi
childSetEnabled("panel_material_type_media", !has_pbr_material);
LL_DEBUGS("ENABLEDISABLETOOLS") << "panel_material_type_media " << !has_pbr_material << LL_ENDL;
}
// Repeats per meter
@ -5985,22 +5981,22 @@ void FSPanelFace::selectPBRChannel(S32 pbr_channel)
{
if (pbr_channel == PBRTYPE_NORMAL)
{
mTabsMatChannel->selectTabByName("panel_pbr_transforms_base_color");
mTabsPBRChannel->selectTabByName("panel_pbr_transforms_normal");
}
else if (pbr_channel == PBRTYPE_BASE_COLOR)
{
mTabsMatChannel->selectTabByName("panel_pbr_transforms_normal");
mTabsPBRChannel->selectTabByName("panel_pbr_transforms_base_color");
}
else if (pbr_channel == PBRTYPE_METALLIC_ROUGHNESS)
{
mTabsMatChannel->selectTabByName("panel_pbr_transforms_metallic");
mTabsPBRChannel->selectTabByName("panel_pbr_transforms_metallic");
}
else if (pbr_channel == PBRTYPE_EMISSIVE)
{
mTabsMatChannel->selectTabByName("panel_pbr_transforms_emissive");
mTabsPBRChannel->selectTabByName("panel_pbr_transforms_emissive");
}
else
{
mTabsMatChannel->selectTabByName("panel_pbr_transforms_all");
mTabsPBRChannel->selectTabByName("panel_pbr_transforms_all");
}
}

View File

@ -23,13 +23,23 @@ if [[ -f "$CONFIG_FILE" ]]; then
echo "Notarytool submit:"
echo $res
[[ "$res" =~ 'id: '([^[:space:]]+) ]]
match=$?
if [[ "$res" =~ id:\ ([^[:space:]]+) ]]; then
match="${BASH_REMATCH[1]}"
echo "Notarized with id: [$match]"
else
echo "No match found"
fi
# if [[ ! $match -eq 0 ]]; then
echo "Running Stapler"
xcrun stapler staple "$app_file"
# Delete the zip file to stop it being packed in the dmg
rm -f "$zip_file"
if [[ $? -eq 0 ]]; then
echo "$zip_file deleted successfully."
else
echo "Failed to delete $zip_file"
fi
exit 0
# else
# echo "Notarization error"
@ -39,4 +49,7 @@ if [[ -f "$CONFIG_FILE" ]]; then
echo "Notarization error: ditto failed"
exit 1
fi
else
echo "No config file found - check notarize_creds is present in the secrets"
exit 1
fi

View File

@ -3313,7 +3313,6 @@ bool LLAppViewer::initConfiguration()
gSavedSettings.getString("SkinCurrentTheme"),
gSavedSettings.getString("Language"));
loadSettingsFromDirectory("CurrentSkin");
loadSettingsFromDirectory("User");
// [/SL:KB]
// gDirUtilp->setSkinFolder(skinfolder->getValue().asString(),
// gSavedSettings.getString("Language"));

View File

@ -372,7 +372,7 @@ private:
};
// consts from viewer.h
const S32 AGENT_UPDATES_PER_SECOND = 10;
const S32 AGENT_UPDATES_PER_SECOND = 125; // <FS:Beq/> FIRE-34171 - Directional Input Delays with latest PBR-Capable Viewers
const S32 AGENT_FORCE_UPDATES_PER_SECOND = 1;
// Globals with external linkage. From viewer.h

View File

@ -302,6 +302,7 @@ bool LLFloaterTools::postBuild()
LLSelectMgr::instance().setFSShowHideHighlight(FS_SHOW_HIDE_HIGHLIGHT_NORMAL);
mCheckActualRoot = getChild<LLCheckBoxCtrl>("checkbox actual root");
mCheckSelectProbes = getChild<LLCheckBoxCtrl>("checkbox select probes");
// </FS:KC>
@ -428,6 +429,7 @@ LLFloaterTools::LLFloaterTools(const LLSD& key)
// <FS:KC>
mCheckShowHighlight(NULL),
mCheckActualRoot(NULL),
mCheckSelectProbes(NULL),
// </FS:KC>
mBtnRotateLeft(NULL),
@ -1014,6 +1016,7 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
// <FS:KC>
if (mCheckShowHighlight) mCheckShowHighlight->setVisible( edit_visible );
if (mCheckActualRoot) mCheckActualRoot->setVisible( edit_visible );
if (mCheckSelectProbes) mCheckSelectProbes->setVisible( edit_visible );
// </FS:KC>
// Create buttons

View File

@ -171,6 +171,7 @@ public:
LLCheckBoxCtrl* mCheckStretchTexture;
LLCheckBoxCtrl* mCheckShowHighlight; //Phoenix:KC
LLCheckBoxCtrl* mCheckActualRoot; //Phoenix:KC
LLCheckBoxCtrl* mCheckSelectProbes; // <FS:PP>
// Ansariel: Reverted the hack because then when clicking the label it
// doesn't check the checkbox anymore!

View File

@ -211,6 +211,7 @@ void LLHeroProbeManager::update()
else
{
mNearestHero = nullptr;
mDefaultProbe->mViewerObject = nullptr; // <FS:Beq/> FIRE-34201 TP crash
}
mHeroProbeStrength = 1;
@ -219,6 +220,7 @@ void LLHeroProbeManager::update()
else
{
mNearestHero = nullptr;
mDefaultProbe->mViewerObject = nullptr; // <FS:Beq/> FIRE-34201 TP crash
}
// </FS:Beq>
}

View File

@ -381,11 +381,6 @@ static void update_tp_display(bool minimized)
gViewerWindow->setProgressPercent(75.f);
}
if (!gSavedSettings.getBOOL("FSDisableTeleportScreens"))
{
gAgentCamera.resetView(true, true);
}
// <FS:Ansariel> FIRE-12004: Attachments getting lost on TP
gPostTeleportFinishKillObjectDelayTimer.reset();
break;
@ -394,7 +389,7 @@ static void update_tp_display(bool minimized)
// Make the user wait while content "pre-caches"
{
F32 arrival_fraction = (gTeleportArrivalTimer.getElapsedTimeF32() / teleport_arrival_delay());
if (arrival_fraction > 1.f || gSavedSettings.getBOOL("FSDisableTeleportScreens"))
if (arrival_fraction > 1.f)
{
arrival_fraction = 1.f;
//LLFirstUse::useTeleport();

View File

@ -507,6 +507,30 @@ void LLViewerTexture::initClass()
F32 texmem_lower_bound_scale = 0.85f;
F32 texmem_middle_bound_scale = 0.925f;
bool LLViewerTexture::isMemoryForTextureLow()
// <FS:Ansariel> Restrict texture memory by available physical system memory
static bool isSystemMemoryForTextureLow()
{
static LLFrameTimer timer;
static S32Megabytes physical_res = S32Megabytes(S32_MAX);
static LLCachedControl<S32> fs_min_free_main_memory(gSavedSettings, "FSMinFreeMainMemoryTextureDiscardThreshold");
const S32Megabytes MIN_FREE_MAIN_MEMORY(fs_min_free_main_memory);
if (timer.getElapsedTimeF32() < GPU_MEMORY_CHECK_WAIT_TIME) //call this once per second.
{
return physical_res < MIN_FREE_MAIN_MEMORY;
}
timer.reset();
//check main memory, only works for windows.
LLMemory::updateMemoryInfo();
physical_res = LLMemory::getAvailableMemKB();
return physical_res < MIN_FREE_MAIN_MEMORY;
}
// </FS:Ansariel>
//static
void LLViewerTexture::updateClass()
{
@ -538,12 +562,33 @@ void LLViewerTexture::updateClass()
sFreeVRAMMegabytes = target - used;
F32 over_pct = llmax((used-target) / target, 0.f);
// <FS:Ansariel> Restrict texture memory by available physical system memory
//sDesiredDiscardBias = llmax(sDesiredDiscardBias, 1.f + over_pct);
//if (sDesiredDiscardBias > 1.f)
//{
// sDesiredDiscardBias -= gFrameIntervalSeconds * 0.01;
//}
if (isSystemMemoryForTextureLow())
{
// System RAM is low -> ramp up discard bias over time to free memory
if (sEvaluationTimer.getElapsedTimeF32() > GPU_MEMORY_CHECK_WAIT_TIME)
{
sDesiredDiscardBias += llmax(.1f, over_pct); // add at least 10% over-percentage
sEvaluationTimer.reset();
}
}
else
{
sDesiredDiscardBias = llmax(sDesiredDiscardBias, 1.f + over_pct);
if (sDesiredDiscardBias > 1.f)
{
sDesiredDiscardBias -= gFrameIntervalSeconds * 0.01;
}
}
// </FS:Ansariel>
LLViewerTexture::sFreezeImageUpdates = false; // sDesiredDiscardBias > (desired_discard_bias_max - 1.0f);
}

View File

@ -950,6 +950,12 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
if (face && face->getViewerObject() && face->getTextureEntry())
{
// <FS:Beq> Fix Blurry textures and use importance weight
F32 radius;
F32 cos_angle_to_view_dir;
bool in_frustum = face->calcPixelArea(cos_angle_to_view_dir, radius);
static LLCachedControl<F32> bias_unimportant_threshold(gSavedSettings, "TextureBiasUnimportantFactor", 0.25f);
// </FS:Beq>
F32 vsize = face->getPixelArea();
// Scale desired texture resolution higher or lower depending on texture scale
@ -963,13 +969,16 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
min_scale = llclamp(min_scale*min_scale, texture_scale_min(), texture_scale_max());
vsize /= min_scale;
vsize /= LLViewerTexture::sDesiredDiscardBias;
vsize /= llmax(1.f, (LLViewerTexture::sDesiredDiscardBias-1.f) * (1.f + face->getDrawable()->mDistanceWRTCamera * bias_distance_scale));
// <FS:Beq> Fix Blurry textures and use importance weight
// vsize /= LLViewerTexture::sDesiredDiscardBias;
// vsize /= llmax(1.f, (LLViewerTexture::sDesiredDiscardBias-1.f) * (1.f + face->getDrawable()->mDistanceWRTCamera * bias_distance_scale));
F32 radius;
F32 cos_angle_to_view_dir;
bool in_frustum = face->calcPixelArea(cos_angle_to_view_dir, radius);
if (!in_frustum || !face->getDrawable()->isVisible())
// F32 radius;
// F32 cos_angle_to_view_dir;
// bool in_frustum = face->calcPixelArea(cos_angle_to_view_dir, radius);
// if (!in_frustum || !face->getDrawable()->isVisible())
// </FS:Beq>
if (!in_frustum || !face->getDrawable()->isVisible() || face->getImportanceToCamera() < bias_unimportant_threshold)
{ // further reduce by discard bias when off screen or occluded
vsize /= LLViewerTexture::sDesiredDiscardBias;
}

View File

@ -4968,8 +4968,12 @@ void LLVOAvatar::updateOrientation(LLAgent& agent, F32 speed, F32 delta_time)
LLVector3 pelvisDir( mRoot->getWorldMatrix().getFwdRow4().mV );
const F32 AVATAR_PELVIS_ROTATE_THRESHOLD_SLOW = 60.0f;
const F32 AVATAR_PELVIS_ROTATE_THRESHOLD_FAST = 2.0f;
// <FS:Beq> FIRE-34196 Restore the pelvis rotation threshold config removed by LL as "unused"
// const F32 AVATAR_PELVIS_ROTATE_THRESHOLD_SLOW = 60.0f;
// const F32 AVATAR_PELVIS_ROTATE_THRESHOLD_FAST = 2.0f;
static LLCachedControl<F32> AVATAR_PELVIS_ROTATE_THRESHOLD_SLOW(gSavedSettings, "AvatarRotateThresholdSlow", 60.0);
static LLCachedControl<F32> AVATAR_PELVIS_ROTATE_THRESHOLD_FAST(gSavedSettings, "AvatarRotateThresholdFast", 2.0);
// </FS:Beq>
F32 pelvis_rot_threshold = clamp_rescale(speed, 0.1f, 1.0f, AVATAR_PELVIS_ROTATE_THRESHOLD_SLOW, AVATAR_PELVIS_ROTATE_THRESHOLD_FAST);

View File

@ -1,15 +0,0 @@
<llsd>
<map>
<key>FSShowChatType</key>
<map>
<key>Comment</key>
<string>Shows/Hides the chat type selector (Whisper, Say, Shout)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
</map>
</llsd>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="Texture">
<panel name="Texture" label="Textur">
<panel.string name="paste_error_face_selection_mismatch">
Falls mehrere Flächen kopiert werden, müssen auf dem Zielobjekt dieselbe Anzahl an Flächen selektiert sein.
</panel.string>

View File

@ -3282,14 +3282,14 @@ Low ↔ Lwst
top_pad="8"
width="132" />
</panel>
<!-- <FS:Zi> switchable edit texture/materials panel
<panel
label="Texture"
help_topic="toolbox_texture_tab"
name="Texture">
<!-- <FS:Zi> switchable edit texture/materials panel
filename="panel_tools_texture.xml">
-->
</panel>
-->
<panel
border="false"
follows="all"

View File

@ -111,7 +111,6 @@
name="base_color_tint_picker"
label="Tint"
can_apply_immediately="true"
allow_no_texture="true"
tool_tip="Click to choose the base color tint"
/>
@ -2110,7 +2109,6 @@
max_val="255"
increment="1"
decimal_digits="0"
text_readonly_color="LabelDisabledColor"
enabled_control="FSInternalFaceHasBPSpecularMap"
/>
@ -2958,7 +2956,6 @@
top_pad="5"
right="-4"
height="2"
visibility_control="FSInternalCanEditObjectFaces"
/>
<panel

View File

@ -501,7 +501,6 @@ Bas ↔ + bas
<spinner label="Densité en 100 kg/m^3" name="Physics Density"/>
<spinner label="Restitution" name="Physics Restitution"/>
</panel>
<panel label="Texture" name="Texture"/>
<panel label="Contenu" name="Contents">
<button label="Nouveau script" label_selected="Nouveau script" name="button new script"/>
<button label="Droits" name="button permissions"/>

View File

@ -54,9 +54,9 @@ Concurrence: [CONCURRENCY]
Version OS : [OS_VERSION]
Distributeur de cartes graphiques : [GRAPHICS_CARD_VENDOR]
Carte graphique : [GRAPHICS_CARD]
Mémoire de cartes graphiques : [GRAPHICS_CARD_MEMORY] MB
Mémoire de cartes graphiques (Detected): [GRAPHICS_CARD_MEMORY_DETECTED] MB
Mémoire de cartes graphiques (Budget): [VRAM_BUDGET]
Mémoire de carte graphique : [GRAPHICS_CARD_MEMORY] Mo
Mémoire de carte graphique (Détectée): [GRAPHICS_CARD_MEMORY_DETECTED] Mo
Mémoire de carte graphique (Capacité): [VRAM_BUDGET]
</string>
<string name="AboutDriver">
Version Windows Graphics Driver : [GRAPHICS_DRIVER_VERSION]
@ -7135,4 +7135,7 @@ Votre position actuelle : [AVATAR_POS]
<string name="OpenSimInventoryValidationErrorGenericHelp">
l'équipe d'assistance de votre gestionnaire de grille
</string>
<string name="Unlimited">
Illimité
</string>
</strings>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<floater name="floater_combo">
<text name="combo_text">
Seleziona un'opzione:
</text>
<button label="Annulla" name="combo_cancel" />
</floater>

View File

@ -2,6 +2,7 @@
<floater name="emojipicker" title="Scegli Emoji">
<floater.string name="title_for_recently_used" value="Usate di recente"/>
<floater.string name="title_for_frequently_used" value="Usate di frequente"/>
<floater.string name="text_no_emoji_for_filter" value="Nessuna emoji trovata per '[FILTER]'"/>
<text name="Dummy">
Nessuna emoji selezionata
</text>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="contents" title="Assistente Miniature Inventario">
<scroll_list name="inventory_thumbnails_list" tool_tip="Incolla elementi dal tuo inventario">
<scroll_list.columns label="Elemento" name="item_name" />
<scroll_list.columns label="Immagine Attuale" name="existing_texture" />
<scroll_list.columns label="Nuova Immagine" name="new_texture" />
</scroll_list>
<button label="Incolla elementi dal tuo inventario" name="paste_items_btn" />
<button label="Incolla immagini dal tuo inventario" name="paste_textures_btn" />
<button label="Salva miniature" name="write_thumbnails_btn" />
<button label="Registra elementi senza miniatura" name="log_missing_thumbnails_btn" />
<button label="Rimuovi miniature dagli elementi incollati" name="clear_thumbnails_btn" />
</floater>

View File

@ -25,7 +25,6 @@ https://wiki.firestormviewer.org/fs_media
per cercare di risolvere il problema.
</text>
<button label="Apri nel web browser" name="open_browser"/>
<check_box label="Apri sempre nel web browser" name="open_always"/>
<button label="Chiudi" name="close"/>
</layout_panel>
</layout_stack>

View File

@ -12,9 +12,6 @@
<floater.string name="step_wait">
Attendi:
</floater.string>
<floater.string name="stop_txt">
Stop
</floater.string>
<floater.string name="preview_txt">
Anteprima
</floater.string>
@ -58,13 +55,9 @@
<text name="options_text">
(opzioni)
</text>
<radio_group name="animation_trigger_type">
<radio_item label="Avvia" name="start"/>
<radio_item label="Ferma" name="stop"/>
</radio_group>
<check_box label="finché le animazioni sono eseguite" name="wait_anim_check"/>
<check_box label="fino al rilascio del pulsante" name="wait_key_release_check" />
<check_box label="fino alla fine dell'animazione" name="wait_anim_check"/>
<check_box label="durata in secondi:" name="wait_time_check"/>
<line_editor name="wait_time_editor"/>
<text name="help_label">
Tutte le fasi avvengono contemporaneamente, a meno che non aggiungi fasi di attesa.
</text>

View File

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Scene Load Statistics" title="Statistiche Caricamento Scena">
<button label="In pausa" name="playpause"/>
<scroll_container name="statistics_scroll">
<container_view name="statistics_view">
<stat_view label="Di base" name="basic">
<stat_view label="Basic" name="basic">
<stat_bar label="Differenza pixel tra fotogrammi" name="frame difference"/>
<stat_bar label="Dati UDP ricevuti" name="bandwidth"/>
<stat_bar label="Perdita pacchetti" name="packet_loss"/>
</stat_view>
<stat_view label="Avanzata" name="advanced">
<stat_view label="Avanzate" name="advanced">
<stat_view label="Render" name="render">
<stat_bar label="Totale oggetti" name="objs"/>
<stat_bar label="Nuovi oggetti" name="newobjs"/>
@ -17,6 +16,10 @@
<stat_view label="Texture" name="texture">
<stat_bar label="Hit rate della cache" name="texture_cache_hits"/>
<stat_bar label="Latenza di lettura della cache" name="texture_cache_read_latency"/>
<stat_bar label="Latenza di decodifica della cache" name="texture_decode_latency"/>
<stat_bar label="Latenza di scrittura della cache" name="texture_write_latency"/>
<stat_bar label="Latenza di recupero della cache" name="texture_fetch_latency"/>
<stat_bar label="Tempo di recupero della cache" name="texture_fetch_time"/>
<stat_bar label="Conteggio" name="numimagesstat"/>
<stat_bar label="Conteggio grezzo" name="numrawimagesstat"/>
</stat_view>
@ -41,7 +44,7 @@
<stat_bar label="Caricamenti in attesa" name="simpendinguploads"/>
<stat_bar label="Numero totale byte non confermati (Unacked)" name="simtotalunackedbytes"/>
<stat_view label="Tempo (ms)" name="simperf">
<stat_bar label="Tempo totale Frame" name="simframemsec"/>
<stat_bar label="Tempo totale frame" name="simframemsec"/>
<stat_bar label="Tempo netto" name="simnetmsec"/>
<stat_bar label="Tempo motore fisico" name="simsimphysicsmsec"/>
<stat_bar label="Tempo simulazione" name="simsimothermsec"/>
@ -50,14 +53,21 @@
<stat_bar label="Tempo script" name="simscriptmsec"/>
<stat_bar label="Tempo libero" name="simsparemsec"/>
<stat_view label="Dettagli tempo (ms)" name="timedetails">
<stat_bar label="Passaggio fisica" name="simsimphysicsstepmsec"/>
<stat_bar label="Aggiorna forme fisica" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label="Altro fisica" name="simsimphysicsothermsec"/>
<stat_bar label="Tempo pausa" name="simsleepmsec"/>
<stat_bar label="IO pompa" name="simpumpiomsec"/>
<stat_bar label=" Step della fisica" name="simsimphysicsstepmsec"/>
<stat_bar label=" Update forme fisiche" name="simsimphysicsshapeupdatemsec"/>
<stat_bar label=" Fisica altro" name="simsimphysicsothermsec"/>
<stat_bar label=" Tempo di pausa" name="simsleepmsec"/>
<stat_bar label=" Pump IO" name="simpumpiomsec"/>
</stat_view>
</stat_view>
</stat_view>
<stat_view name="frame_stats" label="Frame breakdown">
<stat_bar name="scenery_frame_pct" label="Scena" />
<stat_bar name="avatar_frame_pct" label="Avatar" />
<stat_bar name="ui_frame_pct" label="Interfaccia" />
<stat_bar name="huds_frame_pct" label="HUD" />
<stat_bar name="idle_frame_pct" label="Task" />
</stat_view>
</container_view>
</scroll_container>
</floater>

View File

@ -142,7 +142,7 @@
[CAPACITY_STRING] [secondlife:///app/openfloater/object_weights Maggiori informazioni]
</text>
<tab_container name="Object Info Tabs">
<panel label="Generale" name="General">
<panel label="Gener." name="General">
<panel.string name="text deed continued">
Cedi
</panel.string>

View File

@ -0,0 +1,17 @@
<floater name="whitelist_floater" title="Whitelist File e Cartelle">
<text name="whitelist_intro">
Antivirus e antimalware sono una parte essenziale dell'utilizzo sicuro di internet, ma possono causare una serie di problemi al viewer.
Per ridurre le interferenze e migliorare la stabilità e le prestazioni, consigliamo vivamente a tutti gli utenti di assicurarsi che siano previste esclusioni (note come Whitelist) per cartelle e programmi importanti utilizzati dal viewer.
Per informazioni più dettagliate, visita:
https://wiki.firestormviewer.org/antivirus_whitelisting
</text>
<text name="whitelist_folder_instruction">
Per semplificare l'attività, qui sotto sono elencate tutte le cartelle utilizzate dal viewer.
Aggiungile alle esclusioni del tuo antivirus come spiegato nella pagina del Wiki linkata sopra.
</text>
<text name="whitelist_exe_instruction">
Qui sotto sono elencati i nomi e il loro percorso completo dei file eseguibili del viewer.
Aggiungili alle esclusioni del tuo antivirus come spiegato nella pagina del Wiki linkata sopra.
</text>
</floater>

View File

@ -4,6 +4,10 @@
<menu_item_call label="Aggiungi all&apos;abito attuale" name="wear_add"/>
<menu_item_call label="Rimuovi dall&apos;abito attuale" name="take_off"/>
<menu_item_call label="Immagine..." name="thumbnail" />
<menu_item_call label="Modifica abito" name="edit"/>
<menu_item_call label="Rinomina abito" name="rename"/>
<menu_item_call label="Salva su questo abito" name="save" />
<menu_item_call label="Elimina abito" name="delete"/>
<menu name="New Clothes" label="Nuovo indumento">
<menu_item_call label="Nuova camicia" name="New Shirt"/>
<menu_item_call label="Nuovi pantaloni" name="New Pants"/>
@ -25,7 +29,4 @@
<menu_item_call label="Nuovi capelli" name="New Hair"/>
<menu_item_call label="Nuovi occhi" name="New Eyes"/>
</menu>
<menu_item_call label="Modifica abito" name="edit"/>
<menu_item_call label="Rinomina abito" name="rename"/>
<menu_item_call label="Elimina abito" name="delete"/>
</context_menu>

View File

@ -18,6 +18,7 @@
<menu_item_call label="Svuota Cestino" name="Empty Trash"/>
<menu_item_call label="Svuota Oggetti smarriti" name="Empty Lost And Found"/>
<menu_item_call label="Nuova cartella" name="New Folder"/>
<menu_item_call label="Nuova cartella" name="New Listing Folder" />
<menu_item_call label="Nuovo abito" name="New Outfit" />
<menu_item_call label="Nuovo script" name="New Script"/>
<menu_item_call label="Nuova annotazione" name="New Note"/>

View File

@ -4,6 +4,12 @@
<menu_item_call label="Aggiungi all&apos;abito attuale" name="wear_add"/>
<menu_item_call label="Rimuovi dall&apos;abito attuale" name="take_off"/>
<menu_item_call label="Immagine..." name="thumbnail" />
<menu_item_call label="Rinomina abito" name="rename"/>
<menu_item_call label="Salva su questo abito" name="save" />
<menu_item_call label="Elimina abito" name="delete_outfit"/>
<menu_item_check label="Ordina sempre le cartelle in base al nome" name="sort_folders_by_name" />
<menu_item_call label="Apri tutte le cartelle" name="expand"/>
<menu_item_call label="Chiudi tutte le cartelle" name="collapse"/>
<context_menu label="Nuovo indumento" name="New Clothes">
<menu_item_call label="Nuova camicia" name="New Shirt"/>
<menu_item_call label="Nuovi pantaloni" name="New Pants"/>
@ -25,9 +31,4 @@
<menu_item_call label="Nuovi capelli" name="New Hair"/>
<menu_item_call label="Nuovi occhi" name="New Eyes"/>
</context_menu>
<menu_item_call label="Apri tutte le cartelle" name="expand"/>
<menu_item_call label="Chiudi tutte le cartelle" name="collapse"/>
<menu_item_call label="Rinomina abito" name="rename"/>
<menu_item_call label="Elimina abito" name="delete_outfit"/>
<menu_item_check label="Ordina sempre le cartelle in base al nome" name="sort_folders_by_name" />
</toggleable_menu>

View File

@ -3,7 +3,9 @@
<menu_item_call label="Sostituisci abito attuale" name="wear_replace"/>
<menu_item_call label="Aggiungi all&apos;abito attuale" name="wear_add"/>
<menu_item_call label="Rimuovi dall&apos;abito attuale" name="take_off"/>
<menu_item_call label="Immagine..." name="thumbnail" />
<menu_item_call label="Modifica abito" name="edit"/>
<menu_item_call label="Rinomina abito" name="rename"/>
<menu_item_call label="Salva su questo abito" name="save" />
<menu_item_call label="Elimina abito" name="delete"/>
</context_menu>

View File

@ -4,4 +4,5 @@
<menu_item_call label="Maggiori informazioni" name="More Information"/>
<menu_item_call label="Mostra sulla mappa" name="show_on_map" />
<menu_item_call label="Copia SLurl" name="CopyToClipboard"/>
<menu_item_call label="Rimuovi dallo storico" name="remove_from_history" />
</toggleable_menu>

View File

@ -32,6 +32,7 @@
<menu label="Stacca" name="Avatar Detach" />
<menu_item_call label="Stacca tutti" name="Detach All" />
</menu>
<menu_item_call label="Rimuovi elementi selezionati" name="Remove Selected Attachments" />
<menu_item_call label="Seleziona un avatar" name="Avatar Picker"/>
<menu_item_call label="Altezza da terra" name="HoverHeight" />
<menu label="Movimento" name="Movement">
@ -288,6 +289,7 @@
<menu_item_check label="Guida in linea" name="How To"/>
<menu_item_call label="Aiuto su [CURRENT_GRID]" name="current_grid_help"/>
<menu_item_call label="Informazioni su [CURRENT_GRID]" name="current_grid_about"/>
<menu_item_call label="Whitelist File e Cartelle" name="whitelist_folders"/>
<menu_item_check label="Controlla stato della grid" name="Grid Status"/>
<menu_item_call label="Segnala un abuso" name="Report Abuse"/>
<menu_item_call label="Segnala un bug" name="Report Bug"/>
@ -551,6 +553,7 @@
<menu_item_call label="Test browser multimediale" name="Web Browser Test"/>
<menu_item_check label="Test riavvio regione" name="Region Restart Test"/>
<menu_item_call label="Browser contenuti web" name="Web Content Browser"/>
<menu_item_call label="Assistente Miniature Inventario" name="Inventory Thumbnails Helper" />
<menu_item_call label="Scarica caratteri" name="Dump Fonts" />
<menu_item_call label="Scarica texture dei caratteri" name="Dump Font Textures" />
<menu_item_call label="Test connessione FB" name="FB Connect Test"/>
@ -566,6 +569,7 @@
<menu_item_check label="Debug clic" name="Debug Clicks"/>
<menu_item_check label="Debug visualizzazione" name="Debug Views"/>
<menu_item_check label="Debug Unicode" name="Debug Unicode" />
<menu_item_check label="Debug Controlli Camera" name="Debug Camera Controls" />
<menu_item_check label="Debug suggerimenti sul nome" name="Debug Name Tooltips"/>
<menu_item_check label="Debug eventi mouse" name="Debug Mouse Events"/>
<menu_item_check label="Debug tasti" name="Debug Keys"/>

View File

@ -103,6 +103,11 @@ Motivo: &apos;[ERROR_REASON]&apos; - [ERROR_DESCRIPTION]
L&apos;attivazione di questa cartella di versione non è riuscita a causa dell&apos;errore:
&apos;[ERROR_CODE]&apos;
</notification>
<notification name="InvalidKeystroke">
È stato premuto un tasto non valido.
[REASON].
Per favore inserisci il testo corretto.
</notification>
<notification name="MerchantForceValidateListing">
Per creare l&apos;annuncio, abbiamo corretto la gerarchia dei contenuti dell&apos;annuncio.
@ -1513,25 +1518,25 @@ La texture del terreno [TEXTURE_NUM] è troppo grande se a [TEXTURE_SIZE_X]x[TEX
Sostituisci la texture [TEXTURE_NUM] con una texture RGB di dimensioni [MAX_SIZE]x[MAX_SIZE] o inferiori, quindi clicca nuovamente su &apos;Applica&apos;.
</notification>
<notification name="InvalidTerrainMaterialNotLoaded">
Impossibile impostare le texture della regione:
Impossibile impostare i materiali della regione:
Il materiale del terreno [MATERIAL_NUM] non è stato caricato.
Attendi il caricamento del materiale o sostituisci il materiale [MATERIAL_NUM] con un materiale corretto.
</notification>
<notification name="InvalidTerrainMaterialLoadFailed">
Impossibile impostare le texture della regione:
Impossibile impostare i materiali della regione:
Il materiale del terreno [MATERIAL_NUM] non è stato caricato.
Sostituisci il materiale [MATERIAL_NUM] con un materiale corretto.
</notification>
<notification name="InvalidTerrainMaterialDoubleSided">
Impossibile impostare le texture della regione:
Impossibile impostare i materiali della regione:
Il materiale del terreno [MATERIAL_NUM] è a doppia faccia. I materiali a doppia faccia non sono attualmente supportati per il terreno PBR.
Sostituisci il materiale [MATERIAL_NUM] con un materiale con doubleSided=false.
</notification>
<notification name="InvalidTerrainMaterialAlphaMode">
Impossibile impostare le texture della regione:
Impossibile impostare i materiali della regione:
Il materiale del terreno [MATERIAL_NUM] utilizza alphaMode="[MATERIAL_ALPHA_MODE]" che non è supportato.
Sostituisci il materiale [MATERIAL_NUM] con un materiale con alphaMode="OPAQUE" o alphaMode="MASK".
@ -1678,17 +1683,14 @@ Se il messaggio si ripresenta, controllare su [SUPPORT_SITE].
<usetemplate ignoretext="Conferma prima di restituire gli oggetti ai relativi proprietari" name="okcancelignore" notext="Annulla" />
</notification>
<notification name="GroupLeaveConfirmMember">
Attualmente sei un membro del gruppo &lt;nolink&gt;[GROUP]&lt;/nolink&gt;.
Lasciare il gruppo?
<usetemplate name="okcancelbuttons" notext="Annulla" />
Abbandona il gruppo &apos;&lt;nolink&gt;[GROUP]&lt;/nolink&gt;&apos;?
La tariffa attuale per rientrare in questo gruppo è [COST]L$.
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="Abbandona" />
</notification>
<notification name="GroupDepart">
Hai lasciato il gruppo &apos;&lt;nolink&gt;[group_name]&lt;/nolink&gt;&apos;.
</notification>
<notification name="GroupLeaveConfirmMemberWithFee">
Attualmente sei membro del gruppo &lt;nolink&gt;[GROUP]&lt;/nolink&gt;. Aderire nuovamente costa L$[AMOUNT].
Lasciare il gruppo?
<usetemplate name="okcancelbuttons" notext="Annulla" />
<notification name="GroupLeaveConfirmMemberNoFee">
Abbandona il gruppo &apos;&lt;nolink&gt;[GROUP]&lt;/nolink&gt;&apos;?
Al momento non è previsto alcun costo per rientrare in questo gruppo.
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="Abbandona" />
</notification>
<notification name="OwnerCannotLeaveGroup">
Impossibile abbandonare il gruppo. Non puoi abbandonare il gruppo perché sei l&apos;ultimo proprietario del gruppo. Devi prima assegnare a un altro membro il ruolo di proprietario.
@ -2361,6 +2363,15 @@ Questa azione non può essere annullata.
Confermare la cancellazione?
<usetemplate ignoretext="Conferma prima di eliminare gli elementi filtrati" name="okcancelignore" notext="Annulla" />
</notification>
<notification name="DeleteWornItems">
Alcuni elementi che desideri eliminare sono indossati sul tuo avatar.
Rimuovere questi elementi dal tuo avatar?
<usetemplate name="okcancelbuttons" notext="Anulla" yestext="Rimuovi ed elimina elementi" />
</notification>
<notification name="CantDeleteRequiredClothing">
Alcuni degli elementi che desideri eliminare sono obbligatori (pelle, corpo, capelli, occhi).
È necessario sostituire tali elementi prima di eliminarli.
</notification>
<notification name="DeleteThumbnail">
Eliminare l'immagine di questo elemento? Non sarà possibile annullare.
<usetemplate ignoretext="Conferma prima di eliminare l'immagine di un elemento in inventario." name="okcancelignore" notext="Annulla" yestext="Elimina" />
@ -5235,6 +5246,22 @@ Gli oggetti mesh riggati sono progettati per essere attaccati all'avatar. Né tu
Se vuoi vedere questo oggetto, toglilo e indossalo su un punto di attacco dell'avatar.
<usetemplate ignoretext="Avvisami quando una mesh riggata viene indossata su un punto di attacco HUD." name="okignore" />
</notification>
<notification name="ConfirmOverwriteOutfit">
Sostituisci gli elementi nell'abito selezionato con gli elementi che indossi ora.
<usetemplate ignoretext="Conferma prima di sovrascrivere l'abito" name="okcancelignore" notext="Annulla" yestext="Salva" />
</notification>
<notification name="ClearInventoryThumbnailsWarning">
Stai per rimuovere le immagini dagli elementi dell'inventario nell'elenco. Questo cambiamento non può essere annullato.
Vuoi continuare?
<usetemplate name="okcancelbuttons" notext="No" yestext="Sì" />
</notification>
<notification name="WriteInventoryThumbnailsWarning">
Stai per sovrascrivere le immagini per alcuni o tutti gli elementi dell'inventario nell'elenco. Questo cambiamento non può essere annullato.
Vuoi continuare?
<usetemplate name="okcancelbuttons" notext="No" yestext="Sì" />
</notification>
<notification name="ReflectionProbeApplied">
ATTENZIONE: hai reso il tuo oggetto una sonda di riflessione. Ciò implicitamente cambia l'oggetto per imitare il suo volume di influenza. Questi cambiamenti sono irreversibili. Vuoi continuare?
<usetemplate ignoretext="Avvisi sulla sonda di riflessione" name="okcancelignore" yestext="Ok" notext="Annulla"/>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_login">
<string name="ServerComboTooltip">
Una griglia esistente o l'URI di una griglia
</string>
<layout_stack name="login_widgets">
<layout_panel name="login">
<text name="log_in_text">
@ -9,7 +12,7 @@
Nome utente:
</text>
<button tool_tip="Rimuovi questo nome" label="" name="remove_user_btn"/>
<combo_box tool_tip="Nome utente scelto per la registrazione, come carlorossi12 o Stella Marina" name="username_combo"/>
<combo_box tool_tip="Nome utente scelto per la registrazione, come CarloRossi12 o Stella Sunshine" name="username_combo"/>
<text name="password_text">
Password:
</text>
@ -25,8 +28,11 @@
</combo_box>
</layout_panel>
<layout_panel name="grid_panel">
<text name="grid_builder_text">
+ Clicca per aggiungere altre griglie
</text>
<text name="grid_login_text">
Entra nella grid:
Entra nella griglia:
</text>
</layout_panel>
<layout_panel name="links_login_panel">
@ -42,10 +48,10 @@
</layout_panel>
<layout_panel name="mode_selection">
<text name="mode_selection_text">
Interfaccia:
MODALITÀ
</text>
<combo_box tool_tip="Scegliere la modalità di vista preferita per impostare le opzioni predefinite." name="mode_combo">
<combo_box.item label="Ibrido" name="Hybrid"/>
<combo_box tool_tip="Seleziona la tua modalità preferita, verranno applicate le impostazioni predefinite." name="mode_combo">
<combo_box.item label="Ibrida" name="Hybrid"/>
<combo_box.item label="Testo" name="Text"/>
</combo_box>
</layout_panel>

View File

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel name="panel_login">
<panel.string name="forgot_password_url">
http://secondlife.com/account/request.php?lang=it
</panel.string>
<string name="ServerComboTooltip">
Una griglia esistente o l'URI di una griglia
</string>
<layout_stack name="ui_stack">
<layout_panel name="ui_container">
<layout_stack name="vert_stack_left">
<layout_panel name="1st_row">
<layout_stack name="1st_row_stack">
<layout_panel name="login">
<combo_box label="Nome utente" tool_tip="Nome utente scelto per la registrazione, come carlorossi12 o Stella Marina" name="username_combo"/>
<combo_box label="Nome utente" tool_tip="Nome utente scelto per la registrazione, come CarloRossi12 o Stella Sunshine" name="username_combo"/>
<check_box label="Ricorda nome utente" name="remember_username_check"/>
</layout_panel> <!-- login -->
<layout_panel name="delete_container">
<button tool_tip="Cancella questo utente" name="remove_user_btn"/>
<button tool_tip="Rimuovi questo nome" name="remove_user_btn"/>
</layout_panel> <!-- delete_container -->
<layout_panel name="password_container">
<line_editor name="password_edit" label="Password"/>
<check_box label="Ricorda password" top_pad="10" name="remember_check"/>
<check_box label="Ricorda password" name="remember_check"/>
</layout_panel> <!-- password_container -->
<layout_panel name="start_location_panel">
<combo_box label="Luogo di avvio" name="start_location_combo">
@ -31,17 +31,20 @@
<layout_panel name="2nd_row">
<layout_stack name="2nd_row_stack">
<layout_panel name="grid_panel">
<text name="grid_login_text">
Grid:
<text name="grid_login_text" width="50">
Griglia:
</text>
<text name="grid_builder_text">
+ Clicca per aggiungere altre griglie
</text>
</layout_panel>
<layout_panel name="mode_selection">
<text name="mode_selection_text">
Interfaccia:
Modalità:
</text>
<combo_box tool_tip="Scegliere lo stile di visualizzazione preferito per impostare di conseguenza le opzioni." name="mode_combo">
<combo_box.item label="Hybrid" name="Hybrid" />
<combo_box.item label="Text" name="Text" />
<combo_box tool_tip="Seleziona la tua modalità preferita, verranno applicate le impostazioni predefinite." name="mode_combo">
<combo_box.item label="Ibrida" name="Hybrid" />
<combo_box.item label="Testo" name="Text" />
</combo_box>
</layout_panel>
</layout_stack> <!-- 2nd_row_stack -->
@ -49,7 +52,7 @@
</layout_stack> <!-- vert_stack -->
<button label="Entra" name="connect_btn"/>
<text name="create_new_account_text">
Crea un account
Crea nuovo account
</text>
<text name="forgot_password_text">
Password dimenticata?

View File

@ -60,7 +60,7 @@
</text>
</panel>
</panel>
<panel label="Colore base" name="panel_pbr_transforms_base_color">
<panel label="Col. base" name="panel_pbr_transforms_base_color">
<panel name="pbr_transforms_base_color_scale">
<text name="pbr_transforms_base_color_scale_label">
Scala

View File

@ -10,7 +10,16 @@
Aderisci ([AMOUNT] L$)
</panel.string>
<panel.string name="group_join_free">
Gratis
Gratuito
</panel.string>
<panel.string name="group_member">
Membro
</panel.string>
<panel.string name="join_txt">
Aderisci
</panel.string>
<panel.string name="leave_txt">
Abbandona
</panel.string>
<layout_stack name="group_info_sidetray_main">
<layout_panel name="header_container">
@ -32,11 +41,14 @@
</layout_panel>
</layout_stack>
<layout_stack name="button_row_ls">
<layout_panel name="btn_activate_lp">
<button label="Attiva" name="btn_activate" />
</layout_panel>
<layout_panel name="btn_chat_lp">
<button label="Chat" name="btn_chat"/>
</layout_panel>
<layout_panel name="call_btn_lp">
<button label="Chiamata" name="btn_call" tool_tip="Avvia una conferenza vocale in questo gruppo"/>
<button label="Chiama" name="btn_call" tool_tip="Avvia una conferenza vocale in questo gruppo"/>
</layout_panel>
<layout_panel name="btn_apply_lp">
<button label="Salva" label_selected="Salva" name="btn_apply"/>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Sconosciuto"/>
<button name="notices_btn" tool_tip="Avvisi di gruppo" />
<button name="info_btn" tool_tip="Maggiori informazioni"/>
<button name="profile_btn" tool_tip="Vedi profilo"/>
</panel>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="group_list_item">
<text name="group_name" value="Sconosciuto"/>
<button name="notices_btn" tool_tip="Avvisi di gruppo" />
<button name="visibility_hide_btn" tool_tip="Nascondi gruppo sul mio profilo" />
<button name="visibility_show_btn" tool_tip="Mostra gruppo sul mio profilo" />
<button name="info_btn" tool_tip="Maggiori informazioni"/>

View File

@ -87,6 +87,9 @@
</text>
<slider label="Lampeggia linguette IM:" tool_tip="Quante volte deve lampeggiare la linguetta della scheda IM quando ricevi un messaggio" name="ButtonsFlashCount"/>
<slider label="Velocità di lampeggiamento:" tool_tip="Indica la durata in secondi di un singolo flash. Viene usato per le notifiche degli IM" name="ButtonFlashRate"/>
<text name="ButtonFlashRateText">
sec
</text>
</panel>
<panel name="UI-interface-top-bars" label="Barra Superiore">
<text name="statusbar_textbox">
@ -228,29 +231,27 @@
Tipo carattere:
</text>
<text name="tooltip_textbox2">
(richiesto riavvio)
(richiede riavvio)
</text>
<text name="tooltip_textbox5">
Grandezza carattere:
</text>
<text name="tooltip_textbox6" >
pt (Richiesto riavvio)
pt (richiede riavvio)
Predefinito 0. Valori più grandi non funzionano bene
</text>
<text name="tooltip_textbox3">
Distanza massima
linee della chat:
Spaziatura chat:
</text>
<text name="tooltip_textbox4">
pixel (richiesto riavvio)
pixel (richiede riavvio)
[VIEWER_GENERATION]-Default 0. V1 Default 2.
</text>
<text name="Label_FolderItemViewHeight">
Distanza massima
cartelle inventario:
Altezza cartella:
</text>
<text name="Label_FolderItemViewHeight_Scale">
pixel (richiesto riavvio)
pixel (richiede riavvio)
[VIEWER_GENERATION]-Default 20. V1 Default 18.
</text>
<text name="text_box_notecard_font" width="135">
@ -262,6 +263,11 @@ cartelle inventario:
<combo_item name="Medium" label="Medio" />
<combo_item name="Large" label="Grande" />
</combo_box>
<text name="emoji_font_settings_label">
Impostazioni caratteri emoji (richiede riavvio):
</text>
<check_box label="Visualizza emoji monocromatiche" name="FSUseBWEmojis" />
<check_box label="Usa pulsante emoji colorato" name="FSUsePrettyEmojiButton" />
</panel>
</tab_container>
</panel>

View File

@ -141,10 +141,12 @@
<check_box name="FSChatbarNamePrediction" label="Abilita predizione nomi in chat locale"/>
<check_box name="AllowMUpose" label="&quot;:&quot; come sinonimo di &quot;/me&quot;"/>
<check_box name="AutoCloseOOC" label="Auto-chiudi parentesi ((OOC))"/>
<check_box name="FSShowIMSendButton" label="Mostra bottone Invia nella barra chat per le sessioni IM"/>
<check_box name="FSEnableEmojiWindowPopupWhileTyping" label="Mostra automaticamente la finestra delle emoji durante la digitazione nelle barre della chat"/>
<check_box name="FSShowEmojiButton" label="Mostra pulsante Emoji nella barra della chat delle sessioni IM e della chat locale"/>
<check_box name="FSShowIMSendButton" label="Mostra pulsante Invia nella barra chat delle sessioni IM"/>
<check_box name="FSNearbyChatbar" label="Barra chat nella finestra chat locale"/>
<check_box name="FSShowChatChannel" label="Selezione canale nella barra chat"/>
<check_box name="FSShowChatType" label="Tipo di chat / bottone Invia nella barra chat"/>
<check_box name="FSShowChatType" label="Tipo di chat / pulsante Invia nella barra chat"/>
<check_box label="Nascondi automaticamente barra chat" name="AutohideChatBar" tool_tip="Nasconde la barra chat dalla barra in basso e la mostra come sovrapposta soltanto quando necessario." />
<check_box label="Deseleziona barra chat dopo Invio" name="CloseChatOnReturn" />
<check_box label="Deseleziona anche finestra chat" name="FSUnfocusChatHistoryOnReturn"/>

View File

@ -119,7 +119,7 @@
<check_box label="Mostra indicatore voce sugli avatar" tool_tip="Mostra indicatore (pallino bianco) sopra agli avatar" name="FSShowVoiceVisualizer"/>
<check_box label="Mostra indicatore voce sul mio avatar" name="FSShowMyOwnVoiceVisualizer" />
<check_box label="Mostra il pallino negli indicatori voce" tool_tip="Se questa opzione è abilitata, viene visualizzato un pallino in mezzo agli indicatori voce. Se è disattivata, vengono visualizzate solo le onde vocali." name="FSShowVoiceVisualizerWithDot" />
<check_box label="mostra indicatori voce nelle chiamate private e di gruppo" tool_tip="Mostra l&apos;indicatore vocale e il movimento delle labbra anche quando si è in una chiamata privata" name="Show_Voice_Visualizers_In_Calls"/>
<check_box label="Mostra indicatori voce nelle chiamate private e di gruppo" tool_tip="Mostra l&apos;indicatore vocale e il movimento delle labbra anche quando si è in una chiamata privata" name="Show_Voice_Visualizers_In_Calls"/>
<check_box label="Mostra stato voce sulle schede delle conversazioni" tool_tip="Mostra lo stato del canale voce nella finestra conversazioni (IM e gruppi)" name="FSShowConversationVoiceStateIndicator"/>
<check_box label="Rifiuta automaticamente gli inviti alla chat vocale di gruppo" name="VoiceCallsRejectGroup"/>
<check_box label="Rifiuta automaticamente gli inviti alla chat vocale in conferenza (ad-hoc)" name="VoiceCallsRejectAdHoc"/>

View File

@ -74,7 +74,8 @@
<button label="Sblocca" name="unblock" tool_tip="Sblocca questo residente"/>
</layout_panel>
</layout_stack>
<check_box name="show_in_search" label="Mostra nella ricerca" tool_tip="Consenti alle persone di vederti nei risultati di ricerca" />
<check_box name="show_in_search" label="Mostra nella ricerca" tool_tip="Consenti agli altri di vedermi nei risultati di ricerca" />
<check_box name="hide_sl_age" label="Mostra data di nascita completa" tool_tip="Consenti agli altri di vedere la tua età in SL" />
<button name="save_description_changes" label="Salva" />
<button name="discard_description_changes" label="Annulla" />
</panel>

View File

@ -76,8 +76,8 @@
<combo_box.item label="Paga oggetto" name="Payobject"/>
<combo_box.item label="Apri" name="Open"/>
<combo_box.item label="Inquadra" name="Zoom"/>
<combo_box.item label="Ignora oggetto" name="Ignoreobject" />
<combo_box.item label="Nessuno" name="None"/>
<combo_box.item label="Ignora oggetto" name="Ignoreobject" />
</combo_box>
<panel name="perms_inv">
<text name="perm_modify">

View File

@ -68,6 +68,9 @@ Banda (Bandwidth): [BANDWIDTH] kbit/s
Fattore LOD (LOD factor): [LOD]
Qualità resa (Render quality): [RENDERQUALITY]
</string>
<string name="AboutCache">
Cache del disco (disk cache): [DISK_CACHE_INFO]
</string>
<string name="AboutOSXHiDPI">
Modalità display HiDPI: [HIDPI]
</string>
@ -1370,6 +1373,51 @@ https://www.firestormviewer.org/support per avere aiuto nella soluzione.
<string name="recompile_script_verb">
Ricompila
</string>
<string name="jpeg_image_files">
Immagini JPEG
</string>
<string name="executable_files">
File eseguibili
</string>
<string name="Validator_InvalidNumericString">
Sequenza numerica non valida: '[STR]'
</string>
<string name="Validator_ShouldNotBeMinus">
Carattere iniziale non valido: '[CH]' (non può essere un segno meno)
</string>
<string name="Validator_ShouldNotBeMinusOrZero">
Carattere iniziale non valido: '[CH]' (non può essere né meno né zero)
</string>
<string name="Validator_ShouldBeDigit">
Carattere [NR] non valido: '[CH]' (può essere solo una cifra)
</string>
<string name="Validator_ShouldBeDigitOrDot">
Carattere [NR] non valido: '[CH]' (può essere solo una cifra o un punto decimale)
</string>
<string name="Validator_ShouldBeDigitOrAlpha">
Carattere [NR] non valido: '[CH]' (può essere solo un carattere ASCII numerico o alfanumerico)
</string>
<string name="Validator_ShouldBeDigitOrAlphaOrSpace">
Carattere [NR] non valido: '[CH]' (può essere solo una cifra, un carattere ASCII alfanumerico o uno spazio)
</string>
<string name="Validator_ShouldBeDigitOrAlphaOrPunct">
Carattere [NR] non valido: '[CH]' (può essere solo una cifra, un carattere ASCII alfanumerico o un segno di punteggiatura)
</string>
<string name="Validator_ShouldBeDigitOrAlphaOrPunctNotSpace">
Carattere [NR] non valido: '[CH]' (può essere solo una cifra, un carattere ASCII alfanumerico o un segno di punteggiatura senza spazi)
</string>
<string name="Validator_ShouldBeDigitNotSpace">
Carattere [NR] non valido: '[CH]' (può essere solo una cifra senza spazi)
</string>
<string name="Validator_ShouldBeASCII">
Carattere [NR] non valido: '[CH]' (può essere solo un carattere ASCII)
</string>
<string name="Validator_ShouldBeNewLineOrASCII">
Carattere [NR] non valido: '[CH]' (può essere solo un carattere ASCII o una nuova riga)
</string>
<string name="LSLTipSleepTime">
Script in sospensione per [SLEEP_TIME] secondi.
</string>
<string name="shape">
Corpo
</string>
@ -5159,9 +5207,12 @@ Segnala abuso
<string name="New Settings">
Nuovo ambiente
</string>
<string name="AvatarBirthDateFormat">
<string name="AvatarBirthDateFormatFull">
[day,datetime,utc]/[mthnum,datetime,utc]/[year,datetime,utc]
</string>
<string name="AvatarBirthDateFormatShort">
[day,datetime,utc]/[mthnum,datetime,utc]
</string>
<string name="AvatarBirthDateFormat_legacy">
[day,datetime,slt]/[mthnum,datetime,slt]/[year,datetime,slt]
</string>
@ -5271,7 +5322,8 @@ Segnala abuso
Questo abito non contiene alcun elemento
</string>
<string name="ExternalEditorNotSet">
Seleziona un editor usando l&apos;impostazione ExternalEditor.
Seleziona un editor impostando l'ambiente LL_SCRIPT_EDITOR o impostando ExternalEditor
Vedi https://wiki.secondlife.com/wiki/LSL_Alternate_Editors
</string>
<string name="ExternalEditorNotFound">
L&apos;editor esterno specificato non è stato trovato.
@ -6349,6 +6401,9 @@ Assistenza nel sito SecondLife.com e segnala il problema.
<string name="avatar_age_alert">
ha attivato l&apos;allarme età. Età: [AGE] giorno/i
</string>
<string name="avatar_age_not_available">
n.d.
</string>
<string name="TotalScriptCountChangeIncrease">
Il totale degli script nella regione è salito da [OLD_VALUE] a [NEW_VALUE] ([DIFFERENCE]).
</string>

View File

@ -3280,14 +3280,13 @@ Low ↔ Lwst
top_pad="8"
width="132" />
</panel>
<!-- <FS:Zi> switchable edit texture/materials panel
<panel
label="Texture"
help_topic="toolbox_texture_tab"
name="Texture">
<!-- <FS:Zi> switchable edit texture/materials panel
filename="panel_tools_texture.xml">
-->
</panel>
-->
<panel
border="false"
follows="all"

View File

@ -3280,14 +3280,14 @@ Low ↔ Lwst
top_pad="8"
width="132" />
</panel>
<!-- <FS:Zi> switchable edit texture/materials panel
<panel
label="Texture"
help_topic="toolbox_texture_tab"
name="Texture">
<!-- <FS:Zi> switchable edit texture/materials panel
filename="panel_tools_texture.xml">
-->
</panel>
-->
<panel
border="false"
follows="all"

View File

@ -3281,14 +3281,14 @@ Low ↔ Lwst
top_pad="8"
width="132" />
</panel>
<!-- <FS:Zi> switchable edit texture/materials panel
<panel
label="Texture"
help_topic="toolbox_texture_tab"
name="Texture">
<!-- <FS:Zi> switchable edit texture/materials panel
filename="panel_tools_texture.xml">
-->
</panel>
-->
<panel
border="false"
follows="all"