Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm into jp-translation

# Conflicts:
#	indra/newview/skins/default/xui/ja/notifications.xml
master
logue 2025-04-24 21:27:00 +09:00
commit 851f55c4ee
59 changed files with 304 additions and 154 deletions

View File

@ -922,11 +922,11 @@
<key>archive</key>
<map>
<key>hash</key>
<string>ff3057e8763bdbe87a478a3d77067b5a</string>
<string>19e40aa358c1784b49eccd547e704647</string>
<key>hash_algorithm</key>
<string>md5</string>
<key>url</key>
<string>file:///opt/firestorm/fmodstudio-2.02.26-darwin64-243641704.tar.bz2</string>
<string>file:///opt/firestorm/fmodstudio-2.03.07-darwin64-251121740.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
@ -936,11 +936,11 @@
<key>archive</key>
<map>
<key>hash</key>
<string>41265f539399e365601a22d108287e91</string>
<string>a459e2967306ff56a835a321dc00718c</string>
<key>hash_algorithm</key>
<string>md5</string>
<key>url</key>
<string>file:///opt/firestorm/fmodstudio-2.02.26-linux64-243641703.tar.bz2</string>
<string>file:///opt/firestorm/fmodstudio-2.03.07-linux64-251121739.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>

View File

@ -34,21 +34,29 @@
#include "llmath.h"
#include <boost/algorithm/string.hpp>
#include "llmutex.h" // <FS:minerjr> [FIRE-35382] Add share_mutex to fix JointKey::construct lockup
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
#include <unordered_map>
std::unordered_map<std::string, U32> mpStringToKeys;
std::shared_mutex mpStringToKeysMutex; // <FS:minerjr> [FIRE-35382] Add share_mutex to fix JointKey::construct lockup
JointKey JointKey::construct(const std::string& aName)
{
{// <FS:minerjr> [FIRE-35382] Add share_mutex to fix JointKey::construct lockup
std::shared_lock lock(mpStringToKeysMutex); // </FS:minerjr> [FIRE-35382] Added a shared lock for reading the mpStringToKeys unordered_map.
if (const auto itr = mpStringToKeys.find(aName); itr != mpStringToKeys.end())
{
return { aName, itr->second };
}
}// <FS:minerjr> [FIRE-35382] Add share_mutex to fix JointKey::construct lockup
{ // Add a unique lock for writing to the mpStringToKeys unordered_map.
std::unique_lock lock(mpStringToKeysMutex);// </FS:minerjr> [FIRE-35382]
U32 size = static_cast<U32>(mpStringToKeys.size()) + 1;
mpStringToKeys.try_emplace(aName, size);
return { aName, size };
} // <FS:minerjr> [FIRE-35382] Add share_mutex to fix JointKey::construct lockup
}
// </FS:ND>

View File

@ -35,7 +35,7 @@ LLCamera::LLCamera() :
LLCoordFrame(),
mView(DEFAULT_FIELD_OF_VIEW),
mAspect(DEFAULT_ASPECT_RATIO),
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//mInverseAspect(1.0f / DEFAULT_ASPECT_RATIO),
mDrawDistanceMultiplier(1.0f),
// </FS:minerjr> [FIRE-35081]
@ -67,14 +67,14 @@ LLCamera::LLCamera(F32 vertical_fov_rads, F32 aspect_ratio, S32 view_height_in_p
}
mAspect = llclamp(aspect_ratio, MIN_ASPECT_RATIO, MAX_ASPECT_RATIO);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Store the inverse of the aspect ratio, so we can remove it from texture calculations
//mInverseAspect = 1.0f / mAspect;
// </FS:minerjr> [FIRE-35081]
mNearPlane = llclamp(near_plane, MIN_NEAR_PLANE, MAX_NEAR_PLANE);
if(far_plane < 0) far_plane = DEFAULT_FAR_PLANE;
mFarPlane = llclamp(far_plane, MIN_FAR_PLANE, MAX_FAR_PLANE);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Store the draw distance multiplier based upon how much bigger/smaller the far plan is then the default (64.0f)
mDrawDistanceMultiplier = mFarPlane / DEFAULT_FAR_PLANE;
mDrawDistanceMultiplier = mDrawDistanceMultiplier < 1.0f ? 1.0f : mDrawDistanceMultiplier;
@ -141,7 +141,7 @@ void LLCamera::setViewHeightInPixels(S32 height)
void LLCamera::setAspect(F32 aspect_ratio)
{
mAspect = llclamp(aspect_ratio, MIN_ASPECT_RATIO, MAX_ASPECT_RATIO);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Store the inverse of the aspect ratio, so we can remove it from texture calculations
//mInverseAspect = 1.0f / mAspect;
// </FS:minerjr> [FIRE-35081]
@ -159,7 +159,7 @@ void LLCamera::setNear(F32 near_plane)
void LLCamera::setFar(F32 far_plane)
{
mFarPlane = llclamp(far_plane, MIN_FAR_PLANE, MAX_FAR_PLANE);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Store the draw distance multiplier based upon how much bigger/smaller the far plan is then the default (64.0f)
mDrawDistanceMultiplier = mFarPlane / DEFAULT_FAR_PLANE;
mDrawDistanceMultiplier = mDrawDistanceMultiplier < 1.0f ? 1.0f : mDrawDistanceMultiplier;

View File

@ -127,7 +127,7 @@ private:
F32 mView; // angle between top and bottom frustum planes in radians.
F32 mAspect; // width/height
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Store the inverse of the aspect ratio, for the texture's sizes
//F32 mInverseAspect; // height/width
F32 mDrawDistanceMultiplier; // mFarPlane / DEFAULT_FAR_PLANE
@ -166,7 +166,7 @@ public:
F32 getView() const { return mView; } // vertical FOV in radians
S32 getViewHeightInPixels() const { return mViewHeightInPixels; }
F32 getAspect() const { return mAspect; } // width / height
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//F32 getInverseAspect() const { return mInverseAspect; } // width / height
F32 getDrawDistanceMultiplier() const { return mDrawDistanceMultiplier; } // mFarPlane / DEFAULT_FAR_PLANE (could also include near plane as well)
// </FS:minerjr> [FIRE-35081]

View File

@ -104,7 +104,7 @@ void LLGLTexture::setBoostLevel(S32 level)
if(mBoostLevel != LLGLTexture::BOOST_NONE
&& mBoostLevel != LLGLTexture::BOOST_ICON
&& mBoostLevel != LLGLTexture::BOOST_THUMBNAIL
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Add the new grass, light and tree boosts
&& mBoostLevel != LLGLTexture::BOOST_GRASS
&& mBoostLevel != LLGLTexture::BOOST_LIGHT

View File

@ -53,7 +53,7 @@ public:
BOOST_AVATAR_BAKED ,
BOOST_TERRAIN , // Needed for minimap generation for now. Lower than BOOST_HIGH so the texture stats don't get forced, i.e. texture stats are manually managed by minimap/terrain instead.
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
BOOST_GRASS , // Grass has a alternative calculation for virtual and face sizes.
BOOST_TREE , // Tree has a alternative calculation for virtual and face sizes.
BOOST_LIGHT , // Light textures has a alternative calculation for virtual and face sizes.

View File

@ -565,7 +565,7 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, L
{
if ( !force_resize )
{
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// if ( mMaxWidth >= 0.0f
//&& mMaxWidth < screen_width)
// If viewer window was made as small as possible with the console enabled, it would cause an assert error

View File

@ -26288,5 +26288,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>FSSnapshotLocalNamesWithTimestamps</key>
<map>
<key>Comment</key>
<string>include a timestamp in the filename when saving snapshots locally</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
</map>
</llsd>

View File

@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 1024
RenderHeroProbeDistance 1 16
RenderHeroProbeUpdateRate 1 1
RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 2048
RenderHeroProbeDistance 1 16
RenderHeroProbeUpdateRate 1 1
RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1

View File

@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 1024
RenderHeroProbeDistance 1 16
RenderHeroProbeUpdateRate 1 1
RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 2048
RenderHeroProbeDistance 1 16
RenderHeroProbeUpdateRate 1 1
RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1

View File

@ -333,7 +333,7 @@ RenderReflectionProbeLevel 1 2
RenderMirrors 1 0
RenderHeroProbeResolution 1 512
RenderHeroProbeDistance 1 16
RenderHeroProbeUpdateRate 1 1
RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1
@ -375,7 +375,7 @@ RenderReflectionProbeLevel 1 3
RenderMirrors 1 0
RenderHeroProbeResolution 1 1024
RenderHeroProbeDistance 1 16
RenderHeroProbeUpdateRate 1 1
RenderHeroProbeUpdateRate 1 2
RenderHeroProbeConservativeUpdateMultiplier 1 4
RenderCASSharpness 1 0.4
RenderExposure 1 1

View File

@ -1645,13 +1645,14 @@ std::vector<FSPoserAnimator::FSPoserJoint*> FSFloaterPoser::getUiSelectedPoserJo
return joints;
}
void FSFloaterPoser::updateManipWithFirstSelectedJoint(std::vector<FSPoserAnimator::FSPoserJoint*> joints)
void FSFloaterPoser::updateManipWithFirstSelectedJoint(std::vector<FSPoserAnimator::FSPoserJoint*> joints) const
{
if (!gAgentAvatarp || gAgentAvatarp.isNull())
auto avatarp = getUiSelectedAvatar();
if (!avatarp)
return;
if (joints.size() >= 1)
FSToolCompPose::getInstance()->setJoint(gAgentAvatarp->getJoint(JointKey::construct(joints[0]->jointName())));
FSToolCompPose::getInstance()->setJoint(avatarp->getJoint(JointKey::construct(joints[0]->jointName())));
else
FSToolCompPose::getInstance()->setJoint(nullptr);
}

View File

@ -136,7 +136,7 @@ public:
/// Updates the visual with the first selected joint from the supplied collection, if any.
/// </summary>
/// <param name="joints">The collection of selected joints.</param>
static void updateManipWithFirstSelectedJoint(std::vector<FSPoserAnimator::FSPoserJoint*> joints);
void updateManipWithFirstSelectedJoint(std::vector<FSPoserAnimator::FSPoserJoint*> joints) const;
/// <summary>
/// Gets a detectable avatar by its UUID.

View File

@ -5988,7 +5988,7 @@ void LLAppViewer::idle()
// objects and camera should be in sync, do LOD calculations now
{
LL_RECORD_BLOCK_TIME(FTM_LOD_UPDATE);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Added a max time limit to the object list updates as these updates do affect the texture system
//gObjectList.updateApparentAngles(gAgent);
F32 max_update_apparent_angles = 0.025f * gFrameIntervalSeconds.value(); // 20 ms/second decode time

View File

@ -516,7 +516,7 @@ void LLAvatarTracker::idleNotifyObservers()
void LLAvatarTracker::notifyObservers()
{
if (mIsNotifyObservers || (LLStartUp::getStartupState() <= STATE_INVENTORY_CALLBACKS))
if (mIsNotifyObservers || (LLStartUp::getStartupState() <= STATE_INVENTORY_SEND2))
{
// Don't allow multiple calls.
// new masks and ids will be processed later from idle.
@ -835,7 +835,7 @@ void LLAvatarTracker::processNotify(LLMessageSystem* msg, bool online)
mModifyMask |= LLFriendObserver::ONLINE;
instance().notifyObservers();
// Skip if we had received the friends list before the inventory callbacks were properly initialized
if (LLStartUp::getStartupState() > STATE_INVENTORY_CALLBACKS)
if (LLStartUp::getStartupState() > STATE_INVENTORY_SEND2)
{
gInventory.notifyObservers();
}

View File

@ -75,7 +75,7 @@ static LLStaticHashedString sColorIn("color_in");
bool LLFace::sSafeRenderSelect = true; // false
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Moved to allow more code to access these values
const S8 FACE_IMPORTANCE_LEVEL = 4 ;
const F32 FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE[FACE_IMPORTANCE_LEVEL][2] = //{distance, importance_weight}
@ -180,7 +180,7 @@ void LLFace::init(LLDrawable* drawablep, LLViewerObject* objp)
mFaceColor = LLColor4(1,0,0,1);
mImportanceToCamera = 1.f ;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
mCloseToCamera = 1.0f;
// </FS:minerjr> [FIRE-35081]
mBoundingSphereRadius = 0.0f ;
@ -1683,7 +1683,7 @@ bool LLFace::getGeometryVolume(const LLVolume& volume,
xforms = XFORM_NONE;
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
//if (getVirtualSize() >= MIN_TEX_ANIM_SIZE) // || isState(LLFace::RIGGED))
// </FS:minerjr> [FIRE-35081]
@ -2287,7 +2287,7 @@ F32 LLFace::getTextureVirtualSize()
F32 radius;
F32 cos_angle_to_view_dir;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//bool in_frustum = calcPixelArea(cos_angle_to_view_dir, radius);
// The mInFrustum value is now updated in calcPixelArea, so no longer need to accss the value
calcPixelArea(cos_angle_to_view_dir, radius);
@ -2325,7 +2325,7 @@ F32 LLFace::getTextureVirtualSize()
}
face_area = LLFace::adjustPixelArea(mImportanceToCamera, face_area);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Remove the face area being affected by being partial off screen as close to screen textures can then become scaled down along with
// animated textures.
/*
@ -2423,7 +2423,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
// no rigged extents, zero out bounding box and skip update
mRiggedExtents[0] = mRiggedExtents[1] = LLVector4a(0.f, 0.f, 0.f);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Set the face to be out of the frustum as the object is invalid
mInFrustum = false;
// </FS:minerjr> [FIRE-35081]
@ -2473,7 +2473,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
LLVector4a x_axis;
x_axis.load3(camera->getXAxis().mV);
cos_angle_to_view_dir = lookAt.dot3(x_axis).getF32();
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Added close to camera (based upon the mImportanceToCamera) where any object that is within the FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE (16.1f)
// gets an extra texture scaling up.
// Use positive distance to the camera and apply the multiplier based upon the texture scaled for increase in the default draw distance
@ -2488,7 +2488,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
if(!camera->AABBInFrustum(center, size))
{
mImportanceToCamera = 0.f ;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Added real in frustum check value. Previous was only false for media textures off screen and invalid rig objects
mInFrustum = false;
// </FS:minerjr> [FIRE-35081]
@ -2514,7 +2514,7 @@ bool LLFace::calcPixelArea(F32& cos_angle_to_view_dir, F32& radius)
{
cos_angle_to_view_dir = 1.0f ;
mImportanceToCamera = 1.0f ;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
mInFrustum = true; // If the face is important to the camera, it is in the frustum
mCloseToCamera = 1.0f;
// </FS:minerjr> [FIRE-35081]
@ -2561,7 +2561,7 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_FACE;
F32 importance = 0.f ;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Move camera out to use for the inital check for the distance to the face importance with the multiplier
LLViewerCamera* camera = LLViewerCamera::getInstance();
@ -2581,7 +2581,7 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist)
}
S32 i = 0 ;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Added draw distance multiplier to the distance
for(i = 0; i < FACE_IMPORTANCE_LEVEL && dist > FACE_IMPORTANCE_TO_CAMERA_OVER_DISTANCE[i][0] * camera->getDrawDistanceMultiplier(); ++i);
// </FS:minerjr> [FIRE-35081]

View File

@ -52,7 +52,7 @@ class LLDrawInfo;
class LLMeshSkinInfo;
const F32 MIN_ALPHA_SIZE = 1024.f;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//const F32 MIN_TEX_ANIM_SIZE = 512.f;
// Change the min size to
const F32 MIN_TEX_ANIM_SIZE = 10.f;

View File

@ -47,9 +47,20 @@ bool LLFloaterNewFeatureNotification::postBuild()
const std::string dsc_txt = "description_txt";
// <FS:Beq> FIRE-35393 stop crashing just cos whirly does something daft and blames Atlas for it
std::string feature = getKey().asString();
if(feature.empty())
if(feature.empty() )
{
return true;
LL_WARNS("FloaterNewFeature") << "Unexpected failure - No feature name NewFeatureNotification." << LL_ENDL;
return false;
}
if (!hasString( title_txt + "_" + feature ) )
{
LL_WARNS("FloaterNewFeature") << "No string for " << title_txt + "_" + feature << LL_ENDL;
return false;
}
if (!hasString( dsc_txt + "_" + feature ) )
{
LL_WARNS("FloaterNewFeature") << "No string for " << dsc_txt + "_" + feature << LL_ENDL;
return false;
}
// </FS:Beq>

View File

@ -835,7 +835,7 @@ void LLViewerObjectList::setAllObjectDefaultTextures(U32 nChannel, bool fShowDef
}
}
// [/SL:KB]
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//void LLViewerObjectList::updateApparentAngles(LLAgent &agent)
// Added time limit on processing of objects as they affect the texture system (They also calcuate mMaxVirtualSize and mPixelArea)
void LLViewerObjectList::updateApparentAngles(LLAgent &agent, F32 max_time)
@ -845,7 +845,7 @@ void LLViewerObjectList::updateApparentAngles(LLAgent &agent, F32 max_time)
LLViewerObject *objectp;
S32 num_updates, max_value;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Remove the old code as it worked on fixed number of updates (Total # of Object / 128) per frame
// and some objects had nothing to do while others were avatars or volumes and could t
/*

View File

@ -89,7 +89,7 @@ public:
void processObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type, bool compressed=false);
void processCompressedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type);
void processCachedObjectUpdate(LLMessageSystem *mesgsys, void **user_data, EObjectUpdateType update_type);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//void updateApparentAngles(LLAgent &agent);
// Added time limit on processing of objects as they affect the texture system
void updateApparentAngles(LLAgent &agent, F32 max_time);

View File

@ -779,7 +779,7 @@ void LLViewerTexture::setBoostLevel(S32 level)
mBoostLevel = level;
if(mBoostLevel != LLViewerTexture::BOOST_NONE &&
mBoostLevel != LLViewerTexture::BOOST_SELECTED &&
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Added the new boost levels
mBoostLevel != LLViewerTexture::BOOST_GRASS &&
mBoostLevel != LLViewerTexture::BOOST_LIGHT &&
@ -796,7 +796,7 @@ void LLViewerTexture::setBoostLevel(S32 level)
if (mBoostLevel >= LLViewerTexture::BOOST_HIGH)
{
mMaxVirtualSize = 2048.f * 2048.f;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Add additional for the important to camera and in frustum
static LLCachedControl<F32> texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f);
mMaxVirtualSize = mMaxVirtualSize + (mMaxVirtualSize * 1.0f * texture_camera_boost);
@ -1208,7 +1208,7 @@ void LLViewerFetchedTexture::init(bool firstinit)
mKeptSavedRawImageTime = 0.f;
mLastCallBackActiveTime = 0.f;
mForceCallbackFetch = false;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
mCloseToCamera = 1.0f; // Store if the camera is close to the camera (0.0f or 1.0f)
// </FS:minerjr> [FIRE-35081]
@ -3086,13 +3086,13 @@ void LLViewerLODTexture::processTextureStats()
else if (mBoostLevel < LLGLTexture::BOOST_HIGH && mMaxVirtualSize <= 10.f)
{
// If the image has not been significantly visible in a while, we don't want it
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL + 1));
// Off screen textures at 6 would not downscale.
mDesiredDiscardLevel = llmin(mMinDesiredDiscardLevel, (S8)(MAX_DISCARD_LEVEL));
// </FS:minerjr> [FIRE-35081]
mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S32)mLoadedCallbackDesiredDiscardLevel);
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Add scale down here as the textures off screen were not getting scaled down properly
S32 current_discard = getDiscardLevel();
if (mBoostLevel < LLGLTexture::BOOST_AVATAR_BAKED)
@ -3111,7 +3111,7 @@ void LLViewerLODTexture::processTextureStats()
}
else
{
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
/*
//static const F64 log_2 = log(2.0);
static const F64 log_4 = log(4.0);
@ -3456,7 +3456,7 @@ void LLViewerMediaTexture::initVirtualSize()
{
return;
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Add camera importance to the media textures as well
static LLCachedControl<F32> texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f);
F32 vsize = 0.0f;
@ -3464,7 +3464,7 @@ void LLViewerMediaTexture::initVirtualSize()
findFaces();
for(std::list< LLFace* >::iterator iter = mMediaFaceList.begin(); iter!= mMediaFaceList.end(); ++iter)
{
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//addTextureStats((*iter)->getVirtualSize());
// Add camera importance to the media textures as well
vsize = (*iter)->getVirtualSize();
@ -3532,7 +3532,7 @@ void LLViewerMediaTexture::addFace(U32 ch, LLFace* facep)
}
// [/SL:KB]
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Try to set the boost level to MEDIA to try to force the media to high quality
tex->setBoostLevel(LLViewerTexture::MEDIA);
// </FS:minerjr> [FIRE-35081]
@ -3777,7 +3777,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
{
addTextureStats(0.f, false);//reset
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
static LLCachedControl<F32> texture_camera_boost(gSavedSettings, "TextureCameraBoost", 7.f);
F32 vsize = 0.0f;
// </FS:minerjr> [FIRE-35081]
@ -3791,7 +3791,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
LLFace* facep = mFaceList[ch][i];
if(facep->getDrawable()->isRecentlyVisible())
{
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//addTextureStats(facep->getVirtualSize());
// Add the importance to camera and close to camera to the media texture
vsize = facep->getVirtualSize();
@ -3815,7 +3815,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
LLFace* facep = *iter;
if(facep->getDrawable()->isRecentlyVisible())
{
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//addTextureStats(facep->getVirtualSize());
// Add the importance to camera and close to camera to the media texture
vsize = facep->getVirtualSize();

View File

@ -437,7 +437,7 @@ public:
void setInFastCacheList(bool in_list) { mInFastCacheList = in_list; }
bool isInFastCacheList() { return mInFastCacheList; }
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
F32 getCloseToCamera() const {return mCloseToCamera ;} // Get close to camera value
void setCloseToCamera(F32 value) {mCloseToCamera = value ;} // Set the close to camera value (0.0f or 1.0f)
// </FS:minerjr> [FIRE-35081]
@ -542,7 +542,7 @@ protected:
bool mForSculpt ; //a flag if the texture is used as sculpt data.
bool mIsFetched ; //is loaded from remote or from cache, not generated locally.
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
F32 mCloseToCamera; // Float (0.0f or 1.0f) to indicate if the texture is close to the camera
// </FS:minerjr> [FIRE-35081]

View File

@ -372,7 +372,7 @@ void LLViewerTextureList::shutdown()
mInitialized = false ; //prevent loading textures again.
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// static
// Allows the menu to call the dump method of the texture list
void LLViewerTextureList::dumpTexturelist()
@ -385,7 +385,7 @@ void LLViewerTextureList::dump()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
LL_INFOS() << "LLViewerTextureList::dump()" << LL_ENDL;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
S32 texture_count = 0;
S32 textures_close_to_camera = 0;
std::array<S32, MAX_DISCARD_LEVEL * 2 + 2> image_counts{0}; // Double the size for higher discards from textures < 1024 (2048 can make a 7 and 4096 could make an 8)
@ -404,7 +404,7 @@ void LLViewerTextureList::dump()
<< " size " << image->getWidth() << "x" << image->getHeight()
<< " discard " << image->getDiscardLevel()
<< " desired " << image->getDesiredDiscardLevel()
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
<< " close to camera " << (image->getCloseToCamera() > 0.0f ? "Y" : "N") // Display the close to camera flag
<< " FFType " << fttype_to_string(image->getFTType()) // Display the FFType of the camera
<< " Type " << (S32)image->getType() // Display the type of the image (LOCAL_TEXTURE = 0, MEDIA_TEXTURE = 1, DYNAMIC_TEXTURE = 2, FETCHED_TEXTURE = 3,LOD_TEXTURE = 4)
@ -422,7 +422,7 @@ void LLViewerTextureList::dump()
// </FS:minerjr> [FIRE-35081]
LL_CONT << " http://asset.siva.lindenlab.com/" << image->getID() << ".texture"
<< LL_ENDL;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
image_counts[(image->getDiscardLevel() + 1)] += 1; // Need to add +1 to make up for -1 being a possible value
S32 x_index = (S32)log2(image->getWidth()); // Convert the width into a 0 based index by taking the Log2 of the size to get the exponent of the size. (1 = 2^0, 2 = 2^1, 4 = 2^2...)
S32 y_index = (S32)log2(image->getHeight()); // Convert the height into a 0 based index by taking the Log2 of the size to get the exponent of the size. (1 = 2^0, 2 = 2^1, 4 = 2^2...)
@ -439,7 +439,7 @@ void LLViewerTextureList::dump()
textures_close_to_camera += S32(image->getCloseToCamera());
// </FS:minerjr> [FIRE-35081]
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Add overal texture totals
LL_INFOS() << "Texture Stats: Textures in Close to Camera " << textures_close_to_camera << " of " << texture_count << " : " << LL_ENDL;
@ -455,10 +455,10 @@ void LLViewerTextureList::dump()
LL_INFOS() << "Size vs Size" << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
// Create a header that for the Sizes
LL_INFOS() << std::format("{:<8}", "Size");
LL_INFOS() << std::setw(8) << "Size";
for (S32 x = 1; x <= 2048; x <<= 1)
{
LL_CONT << std::format("{:<8}", x);
LL_CONT << std::setw(8) << x;
}
LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
@ -466,11 +466,11 @@ void LLViewerTextureList::dump()
// Y Axis is the size of the height of the texture
for (S32 y = 0; y < 12; y++)
{
LL_INFOS() << std::format("{:<8}", (1 << y));
LL_INFOS() << std::setw(8) << (1 << y);
//X Axis is the size of the width of the texture
for (S32 x = 0; x < 12; x++)
{
LL_CONT << std::format("{:<8}", size_counts[x + y * 12]);
LL_CONT << std::setw(8) << size_counts[x + y * 12];
}
LL_CONT << LL_ENDL;
@ -480,10 +480,10 @@ void LLViewerTextureList::dump()
// This is the Discard Level Vs Size counts table
LL_INFOS() << "Discard Level Vs Size" << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
LL_INFOS() << std::format("{:<8}", "Discard");
LL_INFOS() << std::setw(8) << "Discard";
for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++)
{
LL_CONT << std::format("{:<8}", (x - 1));
LL_CONT << std::setw(8) << (x - 1);
}
LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
@ -491,11 +491,11 @@ void LLViewerTextureList::dump()
// Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used)
for (S32 y = 0; y < 12; y++)
{
LL_INFOS() << std::format("{:<8}", (1 << y));
LL_INFOS() << std::setw(8) << (1 << y);
// X Axis is the discard level starging from -1 up to 10 (2 x MAX_DISCARD_LEVEL + 1 (for negative number) + 1 additional for the fact that the last value actuauly used on not < but <=)
for (S32 x = 0; x < (MAX_DISCARD_LEVEL * 2 + 2); x++)
{
LL_CONT << std::format("{:<8}", discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]);
LL_CONT << std::setw(8) << discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)];
}
LL_CONT << LL_ENDL;
}
@ -505,10 +505,10 @@ void LLViewerTextureList::dump()
// This is the Discard Level Vs Full Size counts table
LL_INFOS() << "Discard Level Vs Full Size" << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
LL_INFOS() << std::format("{:<8}", "Discard");
LL_INFOS() << std::setw(8) << "Discard";
for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++)
{
LL_CONT << std::format("{:<8}", (x - 1));
LL_CONT << std::setw(8) << (x - 1);
}
LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
@ -516,11 +516,11 @@ void LLViewerTextureList::dump()
// Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used)
for (S32 y = 0; y < 12; y++)
{
LL_INFOS() << std::format("{:<8}", (1 << y));
LL_INFOS() << std::setw(8) << (1 << y);
// X Axis is the discard level starging from -1 up to 10 (2 x MAX_DISCARD_LEVEL + 1 (for negative number) + 1 additional for the fact that the last value actuauly used on not < but <=)
for (S32 x = 0; x < (MAX_DISCARD_LEVEL * 2 + 2); x++)
{
LL_CONT << std::format("{:<8}", fullsize_discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]);
LL_CONT << std::setw(8) << fullsize_discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)];
}
LL_CONT << LL_ENDL;
}
@ -531,10 +531,10 @@ void LLViewerTextureList::dump()
LL_INFOS() << "Boost Level Vs Size" << LL_ENDL;
header_break.append((LLViewerTexture::BOOST_MAX_LEVEL * 8) - (12 * 8), '-');
LL_INFOS() << header_break << LL_ENDL;
LL_INFOS() << std::format("{:<8}", "Discard");
LL_INFOS() << std::setw(8) << "Discard";
for (S32 x = 0; x < LLViewerTexture::BOOST_MAX_LEVEL; x++)
{
LL_CONT << std::format("{:<8}", x);
LL_CONT << std::setw(8) << x;
}
LL_CONT << LL_ENDL;
LL_INFOS() << header_break << LL_ENDL;
@ -542,11 +542,11 @@ void LLViewerTextureList::dump()
// Y Axis is the current possible max dimension of the textures (X or Y, which ever is larger is used)
for (S32 y = 0; y < 12; y++)
{
LL_INFOS() << std::format("{:<8}", (1 << y));
LL_INFOS() << std::setw(8) << (1 << y);
// X Axis is the boost level starging from BOOST_NONE up to BOOST_MAX_LEVEL
for (S32 x = 0; x < (LLViewerTexture::BOOST_MAX_LEVEL); x++)
{
LL_CONT << std::format("{:<8}", boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)]);
LL_CONT << std::setw(8) << boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)];
}
LL_CONT << LL_ENDL;
}
@ -1095,7 +1095,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
F32 bias = llclamp(max_discard - 2.f, 1.f, LLViewerTexture::sDesiredDiscardBias);
// convert bias into a vsize scaler
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//bias = (F32) llroundf(powf(4, bias - 1.f));
// Pre-divide the bias so you can just use multiply in the loop
bias = (F32) 1.0f / llroundf(powf(4, bias - 1.f));
@ -1137,7 +1137,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
if (face && face->getViewerObject())
{
++face_count;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// No longer needed as we no longer re-calculate the face's virtual texture size, we use it directly from the face
//F32 radius;
//F32 cos_angle_to_view_dir;
@ -1156,7 +1156,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
}
// Also moved allocation outside the loop
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//F32 vsize = face->getPixelArea();
//on_screen |= face->mInFrustum;
@ -1171,7 +1171,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
animated += S64(face->hasMedia()); // Add has media for both local and parcel media
animated += S64(imagep->hasParcelMedia());
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer (It is)
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings (It is)
/*
// Scale desired texture resolution higher or lower depending on texture scale
//
@ -1232,7 +1232,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
}
}
// <FS> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS> [FIRE-35081] Blurry prims not changing with graphics settings
//if (max_vsize >= LLViewerFetchedTexture::sMaxVirtualSize
// && (on_screen || LLViewerTexture::sDesiredDiscardBias <= BIAS_TRS_ON_SCREEN))
//{
@ -1241,7 +1241,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
// </FS>
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Replaced all the checks for this bool to be only in this 1 place instead of in the loop.
// If the on screen counter is greater then 0, then there was at least 1 on screen texture
on_screen = bool(on_screen_count);
@ -1269,7 +1269,7 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
}
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//imagep->addTextureStats(max_vsize);
// New logic block for the bias system
// Then depending on the type of texture, the higher resolution on_screen_max_vsize is applied.
@ -1396,7 +1396,7 @@ F32 LLViewerTextureList::updateImagesCreateTextures(F32 max_time)
mCreateTextureList.pop();
if (imagep->hasGLTexture() && imagep->getDiscardLevel() < imagep->getDesiredDiscardLevel() &&
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//(imagep->getDesiredDiscardLevel() <= MAX_DISCARD_LEVEL))
// Add additional restrictions on scaling down (only BOOST_NONE LOD Textures (Also skip media)
(imagep->getDesiredDiscardLevel() <= MAX_DISCARD_LEVEL) && imagep->getBoostLevel() == LLViewerTexture::BOOST_NONE && imagep->getType() == LLViewerTexture::LOD_TEXTURE && !imagep->hasParcelMedia() && !imagep->isViewerMediaTexture())

View File

@ -111,7 +111,7 @@ public:
static void receiveImageHeader(LLMessageSystem *msg, void **user_data);
static void receiveImagePacket(LLMessageSystem *msg, void **user_data);
// </FS:Ansariel>
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
static void dumpTexturelist(); // Added code to handle dumping texture information
// </FS:minerjr> [FIRE-35081]

View File

@ -5936,8 +5936,15 @@ void LLViewerWindow::saveImageLocal(LLImageFormatted *image, const snapshot_save
filepath = sSnapshotDir;
filepath += gDirUtilp->getDirDelimiter();
filepath += sSnapshotBaseName;
filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S");
filepath += llformat("%.2d", i);
// <FS:Beq> FIRE-35391 - Restore ability for snapshots saving with simple index number
// filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S");
// filepath += llformat("%.2d", i);
if (gSavedSettings.getBOOL("FSSnapshotLocalNamesWithTimestamps"))
{
filepath += now.toLocalDateString("_%Y-%m-%d_%H%M%S");
}
filepath += llformat("_%.3d", i);
// </FS:Beq>
filepath += extension;
llstat stat_info;

View File

@ -2975,7 +2975,7 @@ LLViewerFetchedTexture *LLVOAvatar::getBakedTextureImage(const U8 te, const LLUU
LL_DEBUGS("Avatar") << avString() << "get old-bake image from host " << uuid << LL_ENDL;
LLHost host = getObjectHost();
result = LLViewerTextureManager::getFetchedTexture(
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//uuid, FTT_HOST_BAKE, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
uuid, FTT_HOST_BAKE, true, LLGLTexture::BOOST_AVATAR_BAKED, LLViewerTexture::LOD_TEXTURE, 0, 0, host);
// <FS:minerjr> [FIRE-35081]
@ -11012,7 +11012,7 @@ void LLVOAvatar::applyParsedAppearanceMessage(LLAppearanceMessageContents& conte
//LL_DEBUGS("Avatar") << avString() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL;
LL_DEBUGS("Avatar") << avString() << "sb " << (S32) isUsingServerBakes() << " baked_index " << (S32) baked_index << " using mLastTextureID " << mBakedTextureDatas[baked_index].mLastTextureID << LL_ENDL;
setTEImage(mBakedTextureDatas[baked_index].mTextureIndex,
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
//Texture will use baked textures, so it should also use that for the boost.
LLViewerTextureManager::getFetchedTexture(mBakedTextureDatas[baked_index].mLastTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_AVATAR_BAKED, LLViewerTexture::LOD_TEXTURE));

View File

@ -99,7 +99,7 @@ void LLVOGrass::updateSpecies()
SpeciesMap::const_iterator it = sSpeciesTable.begin();
mSpecies = (*it).first;
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE));
// Added new boost Grass as it forces a fixed size on updates
setTEImage(0, LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_GRASS, LLViewerTexture::LOD_TEXTURE));

View File

@ -330,7 +330,7 @@ U32 LLVOTree::processUpdateMessage(LLMessageSystem *mesgsys,
// Load Species-Specific data
//
static const S32 MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = 32 ; //frames.
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
// Set boost level for Tree as it overrides the normal texture sizes
mTreeImagep = LLViewerTextureManager::getFetchedTexture(sSpeciesTable[mSpecies]->mTextureID, FTT_DEFAULT, true, LLGLTexture::BOOST_TREE, LLViewerTexture::LOD_TEXTURE);

View File

@ -742,7 +742,7 @@ void LLVOVolume::animateTextures()
{
LLFace* facep = mDrawable->getFace(i);
if (!facep) continue;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
//if(facep->getVirtualSize() <= MIN_TEX_ANIM_SIZE && facep->mTextureMatrix) continue;
// </FS:minerjr> [FIRE-35081]
@ -770,7 +770,7 @@ void LLVOVolume::animateTextures()
if (!facep->mTextureMatrix)
{
facep->mTextureMatrix = new LLMatrix4();
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
//if (facep->getVirtualSize() > MIN_TEX_ANIM_SIZE)
// </FS:minerjr> [FIRE-35081]
@ -926,7 +926,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
F32 min_vsize=999999999.f, max_vsize=0.f;
LLViewerCamera* camera = LLViewerCamera::getInstance();
std::stringstream debug_text;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Use this flag to indicate that there was a legit change to 0.0 for the mPixelArea (All faces off screen)
bool changed = false;
// </FS:minerjr> [FIRE-35081]
@ -978,7 +978,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
mPixelArea = llmax(mPixelArea, face->getPixelArea());
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// If the new area is changed from the old area, then accept it.
if (mPixelArea != old_area)
{
@ -1073,7 +1073,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
{
LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE);
LLUUID id = params->getLightTexture();
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Light textures should be treaded not the same as normal LOD textures
mLightTexture = LLViewerTextureManager::getFetchedTexture(id, FTT_DEFAULT, true, LLGLTexture::BOOST_LIGHT);
// </FS:minerjr> [FIRE-35081]
@ -1126,7 +1126,7 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
setDebugText(output);
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
//if (mPixelArea == 0)
// If there is a legit change to 0.0, don't dismiss it.
if (mPixelArea == 0 && !changed)
@ -5462,7 +5462,7 @@ bool can_batch_texture(LLFace* facep)
return false;
}
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
if (facep->isState(LLFace::TEXTURE_ANIM))//&& facep->getVirtualSize() > MIN_TEX_ANIM_SIZE)
// </FS:minerjr> [FIRE-35081]
@ -5612,7 +5612,7 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
}
const LLMatrix4* tex_mat = NULL;
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings
// Removed check for turning off animations
if (facep->isState(LLFace::TEXTURE_ANIM)) //&& facep->getVirtualSize() > MIN_TEX_ANIM_SIZE)
// </FS:minerjr> [FIRE-35081]

View File

@ -5128,7 +5128,7 @@ Bu əməliyyatı geri qaytara bilməzsiniz.
Flickr doğrulaması alınmadı. Zəhmət olmasa, yenidən cəhd edin və doğrulama kodunu iki dəfə yoxladığınızdan əmin olun.
</notification>
<notification name="ExodusFlickrUploadComplete">
Şəkiliniz indi [http://www.flickr.com/photos/upload/edit/?ids=[ID] burada] baxıla bilər.
Şəkiliniz indi [https://www.flickr.com/photos/me/[ID] burada] baxıla bilər.
</notification>
<notification name="RegionTrackerAdd">
&quot;[REGION]&quot; üçün

View File

@ -5779,7 +5779,7 @@ Flickr-Verifikation fehlgeschlagen. Bitte erneut versuchen sowie den eingegebene
</notification>
<notification name="ExodusFlickrUploadComplete">
Das Foto kann jetzt [http://www.flickr.com/photos/upload/edit/?ids=[ID] hier] betrachtet werden.
Das Foto kann jetzt [https://www.flickr.com/photos/me/[ID] hier] betrachtet werden.
</notification>
<!-- </FS:TS> FIRE-5453 -->
<notification name="RegionTrackerAdd">

View File

@ -13961,7 +13961,7 @@ Flickr verification failed. Please try again, and be sure to double check the ve
icon="notifytip.tga"
name="ExodusFlickrUploadComplete"
type="notifytip">
Your snapshot can now be viewed [http://www.flickr.com/photos/upload/edit/?ids=[ID] here].
Your snapshot can now be viewed [https://www.flickr.com/photos/me/[ID] here].
</notification>
<!-- </FS:TS> FIRE-5453 -->

View File

@ -176,14 +176,34 @@
<text
layout="topleft"
follows="top|left"
height="140"
height="14"
length="1"
name="local_remember_location_sessions_text"
top_delta="-6"
left_delta="20"
width="200"
wrap="true">
Save location and filename between sessions
Persist location and filename
</text>
<check_box
top_pad="8"
follows="left|top"
layout="topleft"
left="10"
width="20"
name="local_use_timestamp"
control_name="FSSnapshotLocalNamesWithTimestamps"/>
<text
layout="topleft"
follows="top|left"
height="14"
length="1"
name="local_use_timestamp_text"
top_delta="-6"
left_delta="20"
width="200"
wrap="true">
include date/time in filename
</text>
<button
follows="right|bottom"

View File

@ -5001,6 +5001,6 @@ No se podrá deshacer.
<usetemplate name="okbutton" yestext="Aceptar"/>
</notification>
<notification name="ExodusFlickrUploadComplete">
Tu instantánea puede ser vista ahora [http://www.flickr.com/photos/upload/edit/?ids=[ID] aquí].
Tu instantánea puede ser vista ahora [https://www.flickr.com/photos/me/[ID] aquí].
</notification>
</notifications>

View File

@ -142,7 +142,10 @@
<string name="title_LEFT_PEC">Sein gauche</string>
<string name="title_RIGHT_PEC">Sein droit</string>
<string name="LoadPoseLabel">Charger pose</string>
<string name="SavePoseLabel">Enr. pose</string>
<string name="LoadDiffLabel">Charger diff</string>
<string name="SaveDiffLabel">Enr. diff</string>
<string name="OverWriteLabel">Écraser ?</string>
<layout_stack name="poser_stack">
<layout_panel name="regular_controls_layout">
<panel name="joints_parent_panel">
@ -181,8 +184,8 @@
<scroll_list name="hand_presets_scroll">
<scroll_list.columns label="Param." name="name" />
</scroll_list>
<button label="Gauche" name="button_loadHandPoseLeft" tool_tip="Double-cliquez pour placer la main gauche sur la valeur souhaitée." />
<button label="Droite" name="button_loadHandPoseRight" tool_tip="Double-cliquez pour placer la main droite sur la valeur souhaitée." />
<button label="Gauche" name="button_loadHandPoseLeft" tool_tip="Cliquez pour placer la main gauche sur la valeur souhaitée." />
<button label="Droite" name="button_loadHandPoseRight" tool_tip="Cliquez pour placer la main droite sur la valeur souhaitée." />
</panel>
</tab_container>
<panel title="Divers" name="misc_joints_panel">
@ -203,7 +206,7 @@
</scroll_list>
<button label="" name="refresh_avatars" tool_tip="Actualiser la liste des avatars et des animeshes"/>
<button label="Commencer pose" label_selected="Arrêter pose" tool_tip="Commencez à faire poser l'avatar ou l'animesh sélectionné, si vous y êtes autorisé." name="start_stop_posing_button"/>
<button label="Mettre en pose T" name="set_t_pose_button" tool_tip="Double-cliquez sur l'avatar sélectionné pour lui faire prendre la pose en « T »."/>
<button label="Mettre en pose T" name="set_t_pose_button" tool_tip="Cliquez sur l'avatar sélectionné pour lui faire prendre la pose en « T »."/>
</panel>
<panel title="Param." name="settings_panel">
<text name="trackpad_sensitivity_label">
@ -214,6 +217,7 @@
<check_box name="stop_posing_on_close_checkbox" label="Arrêt pose si fermeture" tool_tip="Ne pas arrêter votre pose peut être utile si vous travaillez beaucoup et que vous ne voulez pas la perdre accidentellement."/>
<check_box name="reset_base_rotation_on_edit_checkbox" label="Réinitialisation de la rotation" tool_tip="Lorsque vous modifiez une rotation pour la première fois, la remet à zéro. Cela signifie que votre travail peut enregistrer une pose (et non une différence - voir charger/enregistrer). Une coche verte apparaît à côté de chaque articulation dont l'exportation a été remise à zéro."/>
<check_box name="also_save_bvh_checkbox" label="Ajouter BVH à l'enregis.**" tool_tip="Lorsque vous enregistrez votre pose, écrivez également un fichier BVH, qui peut être téléchargé via 'Construire > Charger > Animation' pour poser vous-même ou d'autres personnes dans le monde. Pour ce faire, les articulations doivent remettre leur « base » à zéro, car le BVH nécessite que l'on travaille sur l'original."/>
<check_box name="confirm_overwrite_on_save_checkbox" label="Confirmer l'écrasement" tool_tip="Lorsque vous enregistrez une pose, si le fichier existe déjà, vous devez cliquer à nouveau sur le bouton d'enregistrement pour confirmer que vous êtes sûr de vouloir l'écraser."/>
</panel>
</tab_container>
<button name="toggleVisualManipulators" tool_tip="Activer et désactiver les manipulateurs visuels"/>
@ -256,12 +260,12 @@
<panel name="trackball_button_panel">
<button name="undo_change" tool_tip="Annuler la dernière modification" />
<button name="button_redo_change" tool_tip="Rétablir la dernière modification annulée" />
<button name="poser_joint_reset" tool_tip="Double-cliquez pour remettre toutes les parties du corps sélectionnées dans l'état où elles se trouvaient lorsque vous avez commencé à poser." />
<button name="poser_joint_reset" tool_tip="Cliquez pour remettre toutes les parties du corps sélectionnées dans l'état où elles se trouvaient lorsque vous avez commencé à poser." />
<button name="delta_mode_toggle" tool_tip="Si vous modifiez plusieurs articulations, chacune d'entre elles sera modifiée de la même manière, au lieu de toutes les modifier du même coup. Sert également à déverrouiller le Gimbal Lock." />
<button label="Miroir" name="button_toggleMirrorRotation" tool_tip="Changer l'articulation opposée, comme dans un miroir." />
<button label="Sym." name="button_toggleSympatheticRotation" tool_tip="Copier les modifications sur l'articulation opposée." />
<button label="Cop. G &gt; D" name="button_symmetrize_left_to_right" tool_tip="Double-cliquez pour copier la modification du côté gauche vers le côté droit."/>
<button label="Cop. D &gt; G" name="button_symmetrize_right_to_left" tool_tip="Double-cliquez pour copier la modification du côté droit vers le côté gauche."/>
<button label="Cop. G &gt; D" name="button_symmetrize_left_to_right" tool_tip="Cliquez pour copier la modification du côté gauche vers le côté droit."/>
<button label="Cop. D &gt; G" name="button_symmetrize_right_to_left" tool_tip="Cliquez pour copier la modification du côté droit vers le côté gauche."/>
</panel>
</panel>
<panel name="poses_loadSave">

View File

@ -33,7 +33,7 @@
<text name="IndirectMaxComplexityText">
0
</text>
<slider label="Avatars max. non éloignés en 2D :" name="IndirectMaxNonImpostors"/>
<slider label="Max. avatars animés :" name="IndirectMaxNonImpostors"/>
<text name="IndirectMaxNonImpostorsText">
0
</text>
@ -152,6 +152,16 @@
<combo_box.item label="Manuelles + terrain" name="2"/>
<combo_box.item label="Scène complète" name="3"/>
</combo_box>
<text name="ReflectionProbeCount">
Max. sondes de réflexion.:
</text>
<combo_box label="Max. sondes de réflexion :" name="ProbeCount">
<combo_box.item label="Aucune" name="1"/>
<combo_box.item label="Faible" name="32"/>
<combo_box.item label="Moyen" name="64"/>
<combo_box.item label="Élevé" name="128"/>
<combo_box.item label="Ultra" name="256"/>
</combo_box>
<slider label="Exposition :" name="RenderExposure"/>
<check_box label="Miroirs" name="Mirrors"/>
<text name="MirrorResolutionText">

View File

@ -87,7 +87,8 @@
<menu_item_call label="Protéger" name="ProtectFolder"/>
<menu_item_call label="Déprotéger" name="UnprotectFolder"/>
<menu_item_call label="Recharger le dossier" name="ReloadFolder"/>
<menu_item_call label="Copier l&apos;UUID (identifiant universel unique)" name="Copy Asset UUID"/>
<menu_item_call label="Copier l&apos;UUID de l'objet" name="Copy Asset UUID"/>
<menu_item_call label="Copier l'UUID" name="Copy UUID"/>
<menu_item_call label="Remettre à la dernière position" name="Restore to Last Position"/>
<menu_item_call label="Affiche le Panneau principal" name="Show in Main Panel"/>
<menu_item_call label="Afficher dans une nouvelle fenêtre" name="Show in new Window"/>

View File

@ -13,6 +13,7 @@
<menu_item_call label="Nouveau script" name="New Script"/>
<menu_item_call label="Nouvelle note" name="New Note"/>
<menu_item_call label="Nouveau geste" name="New Gesture"/>
<menu_item_call label="Nouveau matériau" name="New Material"/>
<menu label="Nouveaux habits" name="New Clothes">
<menu_item_call label="Nouvelle chemise" name="New Shirt"/>
<menu_item_call label="Nouveau pantalon" name="New Pants"/>

View File

@ -428,7 +428,11 @@
<menu_item_call label="Forcer une boucle infinie" name="Force Infinite Loop"/>
<menu_item_call label="Forcer le plantage du driver" name="Force Driver Carsh"/>
<menu_item_call label="Forcer une exception logicielle" name="Force Software Exception"/>
<menu_item_call label="Forcer une exception système" name="Force OS Exception"/>
<menu_item_call label="Forcer une exception logicielle dans une coroutine" name="Force Software Exception in Coroutine"/>
<menu_item_call label="Forcer une exception logicielle dans une coroutine" name="Force a Crash in a Coroutine"/>
<menu_item_call label="Forcer un plantage dans une coroprocédure" name="Force a Crash in a Coroprocedure"/>
<menu_item_call label="Forcer un plantage dans une file d'attente" name="Force a Crash in a Work Queue"/>
<menu_item_call label="Forcer un plantage dans un processus" name="Force a Crash in a Thread"/>
<menu_item_call label="Forcer la déconnexion du client" name="Force Disconnect Viewer"/>
<menu_item_call label="Simuler une fuite de mémoire" name="Memory Leaking Simulation"/>
@ -563,6 +567,7 @@
<menu label="XUI" name="XUI">
<menu_item_call label="Recharger les paramètres de couleurs" name="Reload Color Settings"/>
<menu_item_call label="Afficher le test de police" name="Show Font Test"/>
<menu_item_call label="Afficher le test SLapps" name="Show SLapps Test"/>
<menu_item_call label="Charge à partir d'XML" name="Load from XML"/>
<menu_item_call label="Enregistre en XML" name="Save to XML"/>
<menu_item_check label="Afficher les noms XUI" name="Show XUI Names"/>

View File

@ -947,6 +947,21 @@ Assurez-vous que le fichier a l&apos;extension correcte.
<notification name="CannotUploadReason">
Impossible de charger [FILE] suite au problème suivant : [REASON]
Veuillez réessayer ultérieurement.
</notification>
<notification name="CannotUploadSnapshotEmailTooBig">
Impossible de transférer l'image [FICHIER] pour la raison suivante : [MOTIF].
Le fichier est peut-être trop lourd, essayez de réduire la résolution, la qualité ou réessayez plus tard.
</notification>
<notification name="CannotUploadSnapshotWebTooBig">
Impossible de transférer l'image.
Le fichier est peut-être trop lourd, essayez de réduire la résolution, la qualité ou réessayez plus tard.
</notification>
<notification name="CannotOpenFileTooBig">
Impossible d'ouvrir le fichier.
La visionneuse a épuisé sa mémoire lors de l'ouverture du fichier. Le fichier est peut-être trop lourd.
</notification>
<notification name="LandmarkCreated">
Vous avez ajouté [LANDMARK_NAME] à votre dossier [FOLDER_NAME].
@ -3048,7 +3063,7 @@ Voulez-vous autoriser [APP_NAME] à poster sur votre compte Flickr?
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="ExodusFlickrUploadComplete">
Votre photo est visible maintenant [http://www.flickr.com/photos/upload/edit/?ids=[ID] ici].
Votre photo est visible maintenant [https://www.flickr.com/photos/me/[ID] ici].
</notification>
<notification name="EventNotification">
Avis d&apos;événement :
@ -5562,6 +5577,10 @@ Voulez-vous continuer ?
<notification name="NoSupportGLTFShader">
Les scènes GLTF ne sont pas encore prises en charge par votre matériel graphique.
</notification>
<notification name="WaterExclusionSurfacesWarning">
Si vous cochez la case « cacher l'eau », les choix de texture, d'aspérités et de brillance seront écrasés.
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="Continuer"/>
</notification>
<notification name="EnableAutoFPSWarning">
Vous êtes sur le point d'activer l'AutoFPS. Tous les paramètres graphiques non sauvegardés seront perdus.

View File

@ -378,9 +378,7 @@
<spinner name="rptctrl" label="Répétitions / mètre"/>
<check_box label="Synchroniser les matériaux" name="checkbox_sync_settings" tool_tip="Synchronisation des paramètres de la carte de texture"/>
<check_box label="Aligner les faces planaires" name="checkbox planar align" tool_tip="Aligne les textures de toutes les faces sélectionnées sur la dernière face sélectionnée. Nécessite un mappage planaire des textures."/>
<text name="tex gen">
Mapping
</text>
<check_box label="Occulter eau" name="checkbox_hide_water"/>
<combo_box name="combobox texgen">
<combo_box.item label="Défaut" name="Default"/>
<combo_box.item label="Planaire" name="Planar"/>

View File

@ -183,6 +183,16 @@ Si vous ne comprenez pas la distinction, ne vous souciez pas de ce contrôle."/>
<slider width="480" label_width="340" label="Qualité des ombres :" tool_tip="Qualité des ombres (1 par défaut)" name="ShadowResolution"/>
<slider width="480" label_width="340" label="Taille de rendu des textures du terrain (Redémarrage requis) :" name="RenderTerrainScale" tool_tip="Détermine la taille de rendu des textures du terrain - une valeur plus basse est plus compressée (nécessite un redémarrage)"/>
<slider label="Amélioration de la netteté :" name="RenderSharpness"/>
<text name="ReflectionProbeCount">
Max. sondes de réflexion :
</text>
<combo_box name="ProbeCount">
<combo_box.item label="Aucune" name="1"/>
<combo_box.item label="Bas" name="32"/>
<combo_box.item label="Moyen" name="64"/>
<combo_box.item label="Élevé" name="128"/>
<combo_box.item label="Ultra" name="256"/>
</combo_box>
<text name="TonemapTypeText">
Mappage de tons :
</text>

View File

@ -15,6 +15,7 @@
Lueur
</text>
<check_box label="Lumineux" name="checkbox fullbright"/>
<check_box label="Occulter l'eau" name="checkbox_hide_water"/>
<button name="copy_face_btn" tool_tip="Copie les paramètres des textures dans le presse-papiers"/>
<button name="paste_face_btn" tool_tip="Colle les paramètres des textures à partir du presse-papiers"/>
<combo_box name="combobox matmedia">

View File

@ -5116,7 +5116,7 @@ Autorizzare [APP_NAME] a pubblicare su Flickr?
Autenticazione Flickr fallita. Riprovare dopo aver controllato il codice di verifica.
</notification>
<notification name="ExodusFlickrUploadComplete">
La foto può essere vista [http://www.flickr.com/photos/upload/edit/?ids=[ID] qui].
La foto può essere vista [https://www.flickr.com/photos/me/[ID] qui].
</notification>
<notification name="RegionTrackerAdd">
Inserire l&apos;etichetta che si vuole usare

View File

@ -6577,8 +6577,7 @@ http://opensimulator.org/wiki/inventory を使用して問題を修正できま
<tag>fail</tag>
<usetemplate name="okbutton" yestext=""/>
</notification>
<notification name="ExodusFlickrUploadComplete"> スナップショットは[http://www.flickr.com/photos/upload/edit/?ids=[ID] ここ]で閲覧できます。
</notification>
<notification name="ExodusFlickrUploadComplete">スナップショットは[http://www.flickr.com/photos/upload/edit/?ids=[ID] ここ]から閲覧できます。</notification>
<!-- </FS:TS> FIRE-5453 -->
<notification name="RegionTrackerAdd">
リージョン「[REGION]」にどのラベルを使用しますか?

View File

@ -5224,7 +5224,7 @@ Czy chcesz autoryzować [APP_NAME] do przesyłania zdjęć na Flickr?
Autoryzacja Flickr nie powiodła się. Spróbuj ponownie i sprawdź dokładnie kod weryfikacyjny.
</notification>
<notification name="ExodusFlickrUploadComplete">
Możesz znaleźć swoje zdjęcie [http://www.flickr.com/photos/upload/edit/?ids=[ID] tutaj].
Możesz znaleźć swoje zdjęcie [https://www.flickr.com/photos/me/[ID] tutaj].
</notification>
<notification name="RegionTrackerAdd">
Jaką etykietę chcesz nadać regionowi

View File

@ -15,7 +15,10 @@
</combo_box>
<slider label="Jakość:" name="image_quality_slider" />
<text name="local_remember_location_sessions_text">
Trzymaj lokalizację i nazwę pliku między sesjami
Trzymaj lokalizację i nazwę pliku
</text>
<text name="local_use_timestamp_text">
data/czas w nazwie pliku
</text>
<button label="&#x25B6; Wybór" name="cancel_btn" />
<flyout_button label="Zapisz" name="save_btn" tool_tip="Zapisz obraz do pliku">

View File

@ -5329,7 +5329,7 @@ https://wiki.firestormviewer.org/fs_voice
Flickr проверка не удалась. Пожалуйста, попробуйте еще раз, и проверьте код подтверждения.
</notification>
<notification name="ExodusFlickrUploadComplete">
Ваш снимок теперь может быть просмотрен [http://www.flickr.com/photos/upload/edit/?ids=[ID] тут].
Ваш снимок теперь может быть просмотрен [https://www.flickr.com/photos/me/[ID] тут].
</notification>
<notification name="RegionTrackerAdd">
Какую бы метку вы хотели использовать

View File

@ -142,7 +142,10 @@
<string name="title_LEFT_PEC">左胸肌</string>
<string name="title_RIGHT_PEC">右胸肌</string>
<string name="LoadPoseLabel">載入姿勢</string>
<string name="SavePoseLabel">儲存姿勢</string>
<string name="LoadDiffLabel">載入差異</string>
<string name="SaveDiffLabel">儲存差異</string>
<string name="OverWriteLabel">覆蓋?</string>
<layout_stack name="poser_stack">
<layout_panel name="regular_controls_layout">
<panel name="joints_parent_panel">
@ -186,8 +189,8 @@
<scroll_list name="hand_presets_scroll">
<scroll_list.columns label="預設名稱" name="name"/>
</scroll_list>
<button label="設定左手" name="button_loadHandPoseLeft" tool_tip="雙擊以將左手設定為選定的預設"/>
<button label="設定右手" name="button_loadHandPoseRight" tool_tip="雙擊以將右手設定為選定的預設"/>
<button label="設定左手" name="button_loadHandPoseLeft" tool_tip="點選將左手設定為選定的預設"/>
<button label="設定右手" name="button_loadHandPoseRight" tool_tip="點選將右手設定為選定的預設"/>
</panel>
</tab_container>
<panel title="其他" name="misc_joints_panel">
@ -206,7 +209,7 @@
</scroll_list>
<button name="refresh_avatars" tool_tip="更新化身和動畫物件的列表"/>
<button label="開始姿勢" label_selected="停止姿勢" tool_tip="若有許可權,開始/停止選定的化身或動畫物件的姿勢" name="start_stop_posing_button"/>
<button label="設為T姿勢" tool_tip="雙擊將選定的化身設為T姿勢" name="set_t_pose_button"/>
<button label="設為T姿勢" tool_tip="點選將選定的化身設為T姿勢" name="set_t_pose_button"/>
</panel>
<panel title="設定" name="settings_panel">
<text name="trackpad_sensitivity_label">
@ -216,6 +219,7 @@
<check_box name="natural_direction_checkbox" label="使用自然對齊" tool_tip="骨骼預設具有不自然的關節旋轉,這可能會讓姿勢調整變得更複雜。選取此選項後,關節將以更自然的方式旋轉。" />
<check_box name="stop_posing_on_close_checkbox" label="關閉時停止" tool_tip="關閉時不停止姿勢可有助於保留目前工作。"/>
<check_box name="also_save_bvh_checkbox" label="儲存時也儲存BHV" tool_tip="當姿勢被儲存時將同時創建一個BHV檔案該檔案可以透過建造 > 上傳 > 動畫上傳並用於自己或其他化身的姿勢。為了實現此功能關節的基礎位置必須設為零因為BHV無法從其他姿勢推導出來。"/>
<check_box name="confirm_overwrite_on_save_checkbox" label="確認覆蓋" tool_tip="儲存姿勢時,如果檔案已存在,您需要再次點擊保存按鈕以確認覆蓋。" />
<check_box name="reset_base_rotation_on_edit_checkbox" label="編輯時重設基礎旋轉" tool_tip="首次編輯旋轉時,將其重設為零。這意味著可以保存完整的姿勢(而不僅僅是差異,請參閱載入/保存)。每個以零為基準匯出的關節旁都會顯示綠色勾選標誌。" />
</panel>
</tab_container>
@ -259,12 +263,12 @@
<panel name="trackball_button_panel">
<button name="undo_change" tool_tip="撤銷上一次變更" />
<button name="button_redo_change" tool_tip="重做上一次變更"/>
<button name="poser_joint_reset" tool_tip="雙擊以將選取的身體部位重設為最初開始調整姿勢時的狀態。"/>
<button name="poser_joint_reset" tool_tip="點選將選取的身體部位重設為最初開始調整姿勢時的狀態。"/>
<button name="delta_mode_toggle" tool_tip="如果改變多個關節,則改變它們相同的值而不是相同的角度。這也用於解決萬向節鎖定的問題。"/>
<button label="鏡像" name="button_toggleMirrorRotation" tool_tip="將變更鏡像到對側關節。"/>
<button label="複製" name="button_toggleSympatheticRotation" tool_tip="將變更複製到對側關節。"/>
<button label="複製左側&gt;右" name="button_symmetrize_left_to_right" tool_tip="雙擊以將變更從左側複製到右側。" />
<button label="複製右側&gt;左" name="button_symmetrize_right_to_left" tool_tip="雙擊以將變更從右側複製到左側。" />
<button label="複製左側&gt;右" name="button_symmetrize_left_to_right" tool_tip="點選將變更從左側複製到右側。" />
<button label="複製右側&gt;左" name="button_symmetrize_right_to_left" tool_tip="點選將變更從右側複製到左側。" />
</panel>
</panel>
<panel name="poses_loadSave">

View File

@ -308,7 +308,7 @@
化身物理
</text>
<button name="Reset_Avi_Physics" tool_tip="重設為預設值。" />
<text name="T_Particle_Cnt" tool_tip="設置查看器一次將彩現的最大粒子數。這會影響煙霧、火焰、魔法咒語、繩索、鏈條和基於粒子的動畫等效果。較高的值允許更多粒子用於詳細的視覺效果,但可能會在粒子密集的環境中降低效能。">
<text name="T_Particle_Cnt" tool_tip="設置檢視器一次將彩現的最大粒子數。這會影響煙霧、火焰、魔法咒語、繩索、鏈條和基於粒子的動畫等效果。較高的值允許更多粒子用於詳細的視覺效果,但可能會在粒子密集的環境中降低效能。">
最大粒子數
</text>
<button name="Reset_Particle_Cnt" tool_tip="重設為預設值。" />
@ -346,14 +346,14 @@
<button name="Reset_Exposure" tool_tip="重設為預設值。"/>
</panel>
<panel name="P_Render">
<check_box label="啟用繪製距離" name="UseFarClip" tool_tip="啟用繪製距離限制,根據設定的繪製距離限制查看器彩現物件的距離。禁用此選項將導致查看器彩現超出定義距離的物件,這在大型、詳細環境中會顯著降低效能。"/>
<check_box label="動態調整細節級別" name="RednerLod1" tool_tip="允許查看器根據您與物件的距離自動調整物件的細節層次LOD。這通過減少遠處物件的細節來提高效能同時保持近處物件的高細節。然而在快速移動或大型場景中這可能會導致物件顯示質量明顯下降。"/>
<check_box label="啟用繪製距離" name="UseFarClip" tool_tip="啟用繪製距離限制,根據設定的繪製距離限制檢視器彩現物件的距離。禁用此選項將導致檢視器彩現超出定義距離的物件,這在大型、詳細環境中會顯著降低效能。"/>
<check_box label="動態調整細節級別" name="RednerLod1" tool_tip="允許檢視器根據您與物件的距離自動調整物件的細節層次LOD。這通過減少遠處物件的細節來提高效能同時保持近處物件的高細節。然而在快速移動或大型場景中這可能會導致物件顯示質量明顯下降。"/>
<check_box label="僅彩現相機視野內的物件" name="UssOcclusion1" tool_tip="啟用遮擋剔除,通過只彩現相機視野內的物件而非隱藏在其他物件後的物件來優化效能。這可以在複雜場景中提升效能,但在稀疏區域可能偶爾會降低效能。切換此設置以查看是否能在您的特定環境中提升效能。"/>
<check_box label="各向異性過濾" name="Anisotropic" tool_tip="提高在角度觀察時紋理的銳度和清晰度,使地面、道路和牆壁等表面看起來更加清晰。雖然增強了視覺質量,但啟用各向異性過濾可能會略微影響效能,尤其是在低端圖形硬體上。"/>
<check_box label="顯示其他化身的粒子" name="Render Attached Particle" tool_tip="啟用附著到其他化身或從其他化身發射的粒子效果的彩現,例如光暈效果、粒子軌跡或基於化身的視覺效果。這還包括附著到家具或化身坐著的物件上的粒子。禁用此選項可以在擁擠區域提高效能,但會隱藏這些粒子效果。"/>
</panel>
<panel name="P_Anti-aliasing">
<text name="T_Antialiasing_Type" tool_tip="選擇用於平滑物件邊緣的反鋸齒類型。FXAA快速近似反鋸齒是一種速度快但質量中等的方法。SMAA子像素形態反鋸齒提供更好的邊緣平滑效果但性能開銷略高。更改此設置可能需要重啟查看器才能在某些硬體上生效。">
<text name="T_Antialiasing_Type" tool_tip="選擇用於平滑物件邊緣的反鋸齒類型。FXAA快速近似反鋸齒是一種速度快但質量中等的方法。SMAA子像素形態反鋸齒提供更好的邊緣平滑效果但性能開銷略高。更改此設置可能需要重啟檢視器才能在某些硬體上生效。">
反鋸齒類型(需要重啟)
</text>
<combo_box name="CB_Antialiasing_Type">
@ -407,20 +407,20 @@
<check_box tool_tip="顯示場景中所有光源周圍的線框邊界框,幫助可視化光源的位置和範圍,便於調試或場景設置。" label="顯示場景中所有光源的邊界框" name="Lights"/>
<check_box tool_tip="顯示選定光源的有效半徑,允許您查看光在場景中的照射範圍。對於精細調整照明設置非常有用。" label="顯示選定光源的光照半徑" name="Show Light Radius for Selection"/>
<check_box tool_tip="啟用場景中所有物件的線框邊界框。這有助於識別物件邊界,用於對齊、縮放或排除彩現問題。" label="顯示場景中物件的邊界框" name="Bounding Boxes"/>
<check_box tool_tip="顯示實時性能統計,包括影格率、網絡數據和彩現指標。用於監控查看器性能和識別瓶頸。" label="顯示統計信息窗口" name="Statistics Bar"/>
<check_box tool_tip="顯示實時性能統計,包括影格率、網絡數據和彩現指標。用於監控檢視器性能和識別瓶頸。" label="顯示統計信息窗口" name="Statistics Bar"/>
<check_box tool_tip="顯示相機在場景中的位置、方向和移動的詳細信息。用於攝影、電影製作或建築中的精確攝像工作。" label="顯示詳細的相機位置數據" name="Camera"/>
<check_box tool_tip="打開紋理控制台,顯示紋理加載的實時信息,包括其大小、加載時間和記憶體使用情況。幫助診斷與紋理相關的性能問題。" label="顯示詳細的紋理加載信息" name="Texture Console"/>
<check_box tool_tip="顯示光標下像素的RGB紅、綠、藍和強度I顏色值。用於顏色匹配、設計工作或調試照明問題。" label="顯示光標下的RGB-I顏色值" name="Show Color Under Cursor"/>
<check_box tool_tip="將透明物件以紅色高亮顯示,使其更容易識別。這在構建或排除場景故障時特別有用,以定位不可見的物件或隱藏的物件。" label="以紅色高亮顯示透明物件" name="Highlight Transparent"/>
<check_box tool_tip="以線框模式彩現整個場景顯示物件的基礎幾何結構而不顯示紋理或陰影。用於分析物件結構、細節級別LOD和網格拓撲。" label="以線框模式顯示場景" name="Wireframe"/>
<check_box tool_tip="顯示當前附著到您化身的所有HUD附件。禁用此選項可以隱藏HUD這對於減少屏幕雜亂或提高性能非常有用。" label="顯示附著到您化身的HUD" name="Show HUD Attachments"/>
<check_box label="慢動作動畫 - 僅在您的化身和查看器" tool_tip="減慢查看器中的化身動畫速度,允許您詳細觀察動作。此設置不會影響其他人看到的您的化身。" name="Slow Motion Animations"/>
<button name="Rebake Texture" tool_tip="強制查看器重新烘焙或刷新您化身的外觀紋理。這可以解決諸如皮膚模糊、衣服加載不正確或其他與紋理相關的問題。" label="強制外觀更新(重新烘焙)"/>
<button name="Set Window Size..." label="設置查看器窗口大小..." tool_tip="打開一個對話框,以設置查看器窗口的精確尺寸。用於以特定解析度創建屏幕截圖或匹配電影製作中的窗口大小要求。"/>
<button name="Debug Settings" label="顯示調試設置" tool_tip="打開調試設置菜單,允許訪問標準首選項中不可用的高級查看器設置。請謹慎使用,因為更改可能會影響性能和穩定性。"/>
<check_box label="慢動作動畫 - 僅在您的化身和檢視器" tool_tip="減慢檢視器中的化身動畫速度,允許您詳細觀察動作。此設置不會影響其他人看到的您的化身。" name="Slow Motion Animations"/>
<button name="Rebake Texture" tool_tip="強制檢視器重新烘焙或刷新您化身的外觀紋理。這可以解決諸如皮膚模糊、衣服加載不正確或其他與紋理相關的問題。" label="強制外觀更新(重新烘焙)"/>
<button name="Set Window Size..." label="設置檢視器窗口大小..." tool_tip="打開一個對話框,以設置檢視器窗口的精確尺寸。用於以特定解析度創建屏幕截圖或匹配電影製作中的窗口大小要求。"/>
<button name="Debug Settings" label="顯示調試設置" tool_tip="打開調試設置菜單,允許訪問標準首選項中不可用的高級檢視器設置。請謹慎使用,因為更改可能會影響性能和穩定性。"/>
</panel>
<panel name="P_Quick_Stats">
<text name="T_Quick_Stats" tool_tip="显示实时系统性能统计,帮助您评估查看器的效率。您可以通过点击标签来展开或折叠各个指标。">
<text name="T_Quick_Stats" tool_tip="显示实时系统性能统计,帮助您评估檢視器的效率。您可以通过点击标签来展开或折叠各个指标。">
統計資訊
</text>
</panel>
@ -433,7 +433,7 @@
<stat_bar name="ktrissec" label="每秒繪製的千三角形" tool_tip="表示每秒繪製的三角形總數。這有助於衡量正在渲染的場景的整體複雜性。" />
<stat_bar name="objs" label="物件數量" tool_tip="顯示當前場景中可見的物件總數,包括化身、元素、地形塊和其他實體。" />
<stat_bar name="newobjs" label="新物件" tool_tip="顯示每秒加載到場景中的新物件數量,反映資產流傳輸活動。"/>
<stat_bar name="numimagesstat" label="紋理數量" tool_tip="表示當前查看器中加載的不同紋理總數,這會影響視訊記憶體的使用。" />
<stat_bar name="numimagesstat" label="紋理數量" tool_tip="表示當前檢視器中加載的不同紋理總數,這會影響視訊記憶體的使用。" />
</stat_view>
</container_view>
</scroll_container>

View File

@ -33,7 +33,7 @@
<text name="IndirectMaxComplexityText">
0
</text>
<slider label="非精簡化身數目上限:" name="IndirectMaxNonImpostors" />
<slider label="動態化身數目上限:" name="IndirectMaxNonImpostors" />
<text name="IndirectMaxNonImpostorsText">
0
</text>
@ -128,8 +128,16 @@
<combo_box.item label="手動 + 地形" name="2" />
<combo_box.item label="全景" name="3" />
</combo_box>
<text name="ReflectionProbeCount">
反射探針數量:
</text>
<combo_box label="反射探針數量:" name="ProbeCount">
<combo_box.item label="無" name="1" />
<combo_box.item label="少量" name="32" />
<combo_box.item label="中等" name="64" />
<combo_box.item label="很多" name="128" />
</combo_box>
<slider label="曝光度:" name="RenderExposure" />
<!-- Mirror settings. -->
<check_box label="鏡面" name="Mirrors" />
<text name="MirrorResolutionText">
鏡面解析度:

View File

@ -91,6 +91,7 @@
<menu_item_call label="解鎖檔案夾" name="UnprotectFolder" />
<menu_item_call label="更新檔案夾" name="ReloadFolder" />
<menu_item_call label="複製資源UUID" name="Copy Asset UUID" />
<menu_item_call label="複製UUID" name="Copy UUID" />
<menu_item_call label="還原至之前的位置" name="Restore to Last Position" />
<menu_item_call label="剪下" name="Cut" />
<menu_item_call label="複製" name="Copy" />

View File

@ -439,6 +439,8 @@
<menu_item_call label="強制軟體異常" name="Force Software Exception" />
<menu_item_call label="強製作業系統異常" name="Force OS Exception" />
<menu_item_call label="強制協程中軟體異常" name="Force Software Exception in Coroutine" />
<menu_item_call label="強制協程崩潰" name="Force a Crash in a Coroprocedure" />
<menu_item_call label="強制工作隊列崩潰" name="Force a Crash in a Work Queue" />
<menu_item_call label="強製程式崩潰" name="Force a Crash in a Thread" />
<menu_item_call label="強制瀏覽器斷線" name="Force Disconnect Viewer" />
<menu_item_call label="類比記憶體不足" name="Memory Leaking Simulation" />
@ -650,7 +652,7 @@
<menu_item_call label="離開管理員狀態" name="Leave Admin Options" />
<menu_item_check label="顯示管理員選項" name="View Admin Options" />
<menu label="轉儲" name="Dump">
<menu_item_call label="林登查看器紋理清單" name="LLViewerTexturelist"/>
<menu_item_call label="林登檢視器紋理清單" name="LLViewerTexturelist"/>
</menu>
</menu>
<menu label="管理員" name="Admin">

View File

@ -955,18 +955,23 @@
[APP_NAME] 當前尚不支援 BVH 格式的動畫檔案批次上傳。
</notification>
<notification name="CannotUploadReason">
無法上傳 [FILE],原因:[REASON]
無法上傳 [FILE],原因:[REASON]
請稍候再試一次。
</notification>
<notification name="CannotUploadSnapshotEmailTooBig">
無法上傳快照 [FILE],原因如下:[REASON]
無法上傳快照 [FILE],原因如下:[REASON]
檔案可能太大,請嘗試降低解析度、降低品質或稍後重試。
</notification>
<notification name="CannotUploadSnapshotWebTooBig">
無法上傳快照。
無法上傳快照。
檔案可能太大,請嘗試降低解析度或稍後重試。
</notification>
<notification name="CannotOpenFileTooBig">
無法打開檔案。
檢視器在打開檔案時記憶體不足。檔案可能過大。
</notification>
<notification name="LandmarkCreated">
你已新增「[LANDMARK_NAME]」到你的 [FOLDER_NAME] 檔案夾。
@ -5467,7 +5472,7 @@ Flickr 驗證失敗。請重試並檢查輸入的程式碼。
<usetemplate name="okbutton" yestext="確定"/>
</notification>
<notification name="ExodusFlickrUploadComplete">
現在可以在這裡 [http://www.flickr.com/photos/upload/edit/?ids=[ID] 檢視相片。
現在可以在這裡 https://www.flickr.com/photos/me/[ID] 檢視相片。
</notification>
<notification name="RegionTrackerAdd">
應該為區域「[REGION]」
@ -5688,6 +5693,10 @@ gzip級別6壓縮的測試結果對[FILE]檔案大小[SIZE] KB
您的圖形硬體尚不支援GLTF場景。
<usetemplate name="okbutton" yestext="確定"/>
</notification>
<notification name="WaterExclusionSurfacesWarning">
選中“隱藏水”複選框將覆蓋所選的紋理、凹凸和光澤圖選項。
<usetemplate name="okcancelbuttons" notext="取消" yestext="繼續" />
</notification>
<notification name="EnableAutoFPSWarning">
你即將啟用自動影格率。所有未儲存的圖形設定將會丟失。

View File

@ -272,9 +272,7 @@
<spinner name="rptctrl" label="每米重複次數" />
<check_box label="同步材質" name="checkbox_sync_settings" tool_tip="同步紋理貼圖參數" />
<check_box label="對齊平面表面" name="checkbox planar align" tool_tip="將所有選定表面上的紋理與最後選擇的表面對齊。需要平面紋理對映。" />
<text name="tex gen">
對映
</text>
<check_box label="隱藏水" name="checkbox_hide_water" />
<combo_box name="combobox texgen">
<combo_box.item label="預設" name="Default" />
<combo_box.item label="平面" name="Planar" />

View File

@ -205,6 +205,15 @@
<slider label="陰影品質" tool_tip="陰影的品質預設為1" name="ShadowResolution" />
<slider label="地形紋理彩現比例 (需要重新啟動)" name="RenderTerrainScale" tool_tip="確定地形紋理的彩現比例-較低的值更壓縮(需要重新啟動)" />
<slider label="銳化:" name="RenderSharpness"/>
<text name="ReflectionProbeCount">
反射探針數量:
</text>
<combo_box name="ProbeCount">
<combo_box.item label="無" name="1" />
<combo_box.item label="少量" name="32" />
<combo_box.item label="中等" name="64" />
<combo_box.item label="很多" name="128" />
</combo_box>
<text name="TonemapTypeText">
色調映射器:
</text>

View File

@ -19,7 +19,10 @@
</combo_box>
<slider label="清晰度:" name="image_quality_slider" />
<text name="local_remember_location_sessions_text">
在對談之間儲存位置和檔案名
儲存位置和檔案名
</text>
<text name="local_use_timestamp_text">
檔案名包含日期/時間
</text>
<button label="▶ 取消" name="cancel_btn" />
<flyout_button label="儲存" name="save_btn" tool_tip="儲存圖像到檔案">

View File

@ -29,6 +29,7 @@
光暈
</text>
<check_box label="全亮" name="checkbox fullbright" />
<check_box label="隱藏水" name="checkbox_hide_water" />
<button name="copy_face_btn" tool_tip="將紋理參數複製到剪貼簿" />
<button name="paste_face_btn" tool_tip="從剪貼簿黏貼紋理參數" />
<text name="label_matmedia">

View File

@ -6282,6 +6282,12 @@ support@secondlife.com.
<string name="Command_Beacons_Label">
信標
</string>
<string name="Command_Poser_Label">
姿勢編輯器
</string>
<string name="Command_Poser_Tooltip">
編輯你的化身與動畫物件的姿勢
</string>
<string name="Command_360_Capture_Tooltip">
拍攝360°旋轉圖像
</string>