Merge branch 'master' of https://github.com/FirestormViewer/phoenix-firestorm
# Conflicts: # indra/newview/skins/default/xui/ja/strings.xmlmaster
commit
f0da8bdcbd
|
|
@ -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>
|
||||
|
|
@ -950,11 +950,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>595e7aa51f2161b8d11c3afcc88e2197</string>
|
||||
<key>hash_algorithm</key>
|
||||
<string>md5</string>
|
||||
<string>4a0da36b4a31332df62dadf6438f935e</string>
|
||||
<key>url</key>
|
||||
<string>file:///c:/cygwin/opt/firestorm/fmodstudio-2.02.26-windows64-243641704.tar.bz2</string>
|
||||
<string>file:///c:/cygwin/opt/firestorm/fmodstudio-2.03.07-windows64-251121127.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
|
|||
|
|
@ -140,10 +140,9 @@ public:
|
|||
LLVector3 mHeadOffset{}; // current head position
|
||||
LLAvatarJoint* mRoot{ nullptr };
|
||||
|
||||
// <FS:ND> This map gets queried a huge amount of time.
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
// typedef std::map<std::string, LLJoint*> joint_map_t;
|
||||
typedef std::unordered_map<U32, LLJoint*> joint_map_t;
|
||||
// </FS:ND>
|
||||
typedef std::map<std::string, LLJoint*, std::less<>> joint_map_t;
|
||||
|
||||
joint_map_t mJointMap;
|
||||
|
||||
|
|
|
|||
|
|
@ -44,9 +44,9 @@
|
|||
|
||||
#include "sound_ids.h"
|
||||
|
||||
const U32 EXTRA_SOUND_CHANNELS = 10;
|
||||
constexpr U32 EXTRA_SOUND_CHANNELS = 10;
|
||||
|
||||
FMOD_RESULT F_CALLBACK windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels);
|
||||
FMOD_RESULT F_CALL windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels);
|
||||
|
||||
FMOD::ChannelGroup *LLAudioEngine_FMODSTUDIO::mChannelGroups[LLAudioEngine::AUDIO_TYPE_COUNT] = {0};
|
||||
|
||||
|
|
@ -69,13 +69,13 @@ static inline bool Check_FMOD_Error(FMOD_RESULT result, const char *string)
|
|||
return true;
|
||||
}
|
||||
|
||||
LLUUID FMOD_GUID_to_LLUUID(FMOD_GUID guid)
|
||||
static LLUUID FMOD_GUID_to_LLUUID(FMOD_GUID guid)
|
||||
{
|
||||
return LLUUID(llformat("%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", guid.Data1, guid.Data2, guid.Data3,
|
||||
guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]));
|
||||
}
|
||||
|
||||
void set_device(FMOD::System* system, const LLUUID& device_uuid)
|
||||
static void set_device(FMOD::System* system, const LLUUID& device_uuid)
|
||||
{
|
||||
LL_INFOS() << "LLAudioEngine_FMODSTUDIO::setDevice with device_uuid=" << device_uuid << LL_ENDL;
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid)
|
|||
}
|
||||
}
|
||||
|
||||
FMOD_RESULT F_CALLBACK systemCallback(FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_TYPE type, void *commanddata1, void *commanddata2, void* userdata)
|
||||
FMOD_RESULT F_CALL systemCallback(FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK_TYPE type, void *commanddata1, void *commanddata2, void* userdata)
|
||||
{
|
||||
FMOD::System* sys = (FMOD::System*)system;
|
||||
LLAudioEngine_FMODSTUDIO* audio_engine = (LLAudioEngine_FMODSTUDIO*)userdata;
|
||||
|
|
@ -881,7 +881,7 @@ void LLAudioChannelFMODSTUDIO::set3DMode(bool use3d)
|
|||
// not the main thread. May have implications for callees or audio
|
||||
// engine shutdown.
|
||||
|
||||
FMOD_RESULT F_CALLBACK windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels)
|
||||
FMOD_RESULT F_CALL windCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int *outchannels)
|
||||
{
|
||||
// inbuffer = fmod's original mixbuffer.
|
||||
// outbuffer = the buffer passed from the previous DSP unit.
|
||||
|
|
|
|||
|
|
@ -77,7 +77,9 @@ LLCharacter::~LLCharacter()
|
|||
//-----------------------------------------------------------------------------
|
||||
// getJoint()
|
||||
//-----------------------------------------------------------------------------
|
||||
LLJoint *LLCharacter::getJoint( const std::string &name )
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//LLJoint *LLCharacter::getJoint( const std::string &name )
|
||||
LLJoint* LLCharacter::getJoint(std::string_view name)
|
||||
{
|
||||
LLJoint* joint = NULL;
|
||||
|
||||
|
|
@ -94,14 +96,6 @@ LLJoint *LLCharacter::getJoint( const std::string &name )
|
|||
return joint;
|
||||
}
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// Default fallback is string.
|
||||
LLJoint *LLCharacter::getJoint( const JointKey &name )
|
||||
{
|
||||
return getJoint( name.mName );
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// registerMotion()
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -76,13 +76,9 @@ public:
|
|||
// get the specified joint
|
||||
// default implementation does recursive search,
|
||||
// subclasses may optimize/cache results.
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
// virtual LLJoint *getJoint( const std::string &name );
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
virtual LLJoint *getJoint( const JointKey &name );
|
||||
// </FS:ND>
|
||||
|
||||
LLJoint *getJoint( const std::string &name );
|
||||
virtual LLJoint* getJoint(std::string_view name);
|
||||
|
||||
// get the position of the character
|
||||
virtual LLVector3 getCharacterPosition() = 0;
|
||||
|
|
|
|||
|
|
@ -34,24 +34,6 @@
|
|||
#include "llmath.h"
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
//<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;
|
||||
|
||||
JointKey JointKey::construct(const std::string& aName)
|
||||
{
|
||||
if (const auto itr = mpStringToKeys.find(aName); itr != mpStringToKeys.end())
|
||||
{
|
||||
return { aName, itr->second };
|
||||
}
|
||||
|
||||
U32 size = static_cast<U32>(mpStringToKeys.size()) + 1;
|
||||
mpStringToKeys.try_emplace(aName, size);
|
||||
return { aName, size };
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
S32 LLJoint::sNumUpdates = 0;
|
||||
S32 LLJoint::sNumTouches = 0;
|
||||
|
||||
|
|
@ -260,7 +242,9 @@ LLJoint *LLJoint::getRoot()
|
|||
//-----------------------------------------------------------------------------
|
||||
// findJoint()
|
||||
//-----------------------------------------------------------------------------
|
||||
LLJoint *LLJoint::findJoint( const std::string &name )
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//LLJoint *LLJoint::findJoint( const std::string &name )
|
||||
LLJoint *LLJoint::findJoint(std::string_view name)
|
||||
{
|
||||
if (name == getName())
|
||||
return this;
|
||||
|
|
|
|||
|
|
@ -40,31 +40,6 @@
|
|||
#include "xform.h"
|
||||
#include "llmatrix4a.h"
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
struct JointKey
|
||||
{
|
||||
std::string mName;
|
||||
U32 mKey;
|
||||
|
||||
static JointKey construct(const std::string& aName);
|
||||
};
|
||||
|
||||
inline bool operator==(JointKey const &aLHS, JointKey const &aRHS)
|
||||
{
|
||||
return aLHS.mName == aRHS.mName;
|
||||
}
|
||||
|
||||
inline bool operator!=(JointKey const &aLHS, JointKey const &aRHS)
|
||||
{
|
||||
return ! (aLHS == aRHS);
|
||||
}
|
||||
|
||||
inline std::ostream& operator<<(std::ostream &aLHS, JointKey const &aRHS)
|
||||
{
|
||||
return aLHS << aRHS.mName << " (" << aRHS.mKey << ")";
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
constexpr S32 LL_CHARACTER_MAX_JOINTS_PER_MESH = 15;
|
||||
// Need to set this to count of animate-able joints,
|
||||
// currently = #bones + #collision_volumes + #attachments + 2,
|
||||
|
|
@ -247,7 +222,9 @@ public:
|
|||
LLJoint *getRoot();
|
||||
|
||||
// search for child joints by name
|
||||
LLJoint *findJoint( const std::string &name );
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//LLJoint *findJoint( const std::string &name );
|
||||
LLJoint* findJoint(std::string_view name);
|
||||
|
||||
// add/remove children
|
||||
void addChild( LLJoint *joint );
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ U32 micro_sleep(U64 us, U32 max_yields)
|
|||
|
||||
U32 micro_sleep(U64 us, U32 max_yields)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
// LL_PROFILE_ZONE_SCOPED; // <FS:Beq/> remove pointless profiling
|
||||
#if 0
|
||||
LARGE_INTEGER ft;
|
||||
ft.QuadPart = -static_cast<S64>(us * 10); // '-' using relative time
|
||||
|
|
@ -109,7 +109,7 @@ U32 micro_sleep(U64 us, U32 max_yields)
|
|||
|
||||
void ms_sleep(U32 ms)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED;
|
||||
// LL_PROFILE_ZONE_SCOPED; // <FS:Beq/> remove pointless profiling
|
||||
micro_sleep(ms * 1000, 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ void HttpService::threadRun(LLCoreInt::HttpThread * thread)
|
|||
ELoopSpeed loop(REQUEST_SLEEP);
|
||||
while (! mExitRequested)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK;
|
||||
// LL_PROFILE_ZONE_SCOPED_CATEGORY_NETWORK; // <FS:Beq/> remove pointless profiling
|
||||
try
|
||||
{
|
||||
loop = processRequestQueue(loop);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -1467,10 +1467,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
|
|||
{
|
||||
name = mJointMap[name];
|
||||
}
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// model->mSkinInfo.mJointNames.push_back( name );
|
||||
model->mSkinInfo.mJointNames.push_back( JointKey::construct( name ) );
|
||||
// </FS:ND>
|
||||
model->mSkinInfo.mJointNames.push_back(name);
|
||||
model->mSkinInfo.mJointNums.push_back(-1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1488,10 +1485,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
|
|||
{
|
||||
name = mJointMap[name];
|
||||
}
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// model->mSkinInfo.mJointNames.push_back( name );
|
||||
model->mSkinInfo.mJointNames.push_back( JointKey::construct( name ) );
|
||||
// </FS:ND>
|
||||
model->mSkinInfo.mJointNames.push_back(name);
|
||||
model->mSkinInfo.mJointNums.push_back(-1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1533,10 +1527,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
|
|||
//but does not use the skeleton).
|
||||
buildJointToNodeMappingFromScene( root );
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// critiqueRigForUploadApplicability( model->mSkinInfo.mJointNames );
|
||||
critiqueRigForUploadApplicability( toStringVector( model->mSkinInfo.mJointNames ) );
|
||||
// </FS:ND>
|
||||
critiqueRigForUploadApplicability( model->mSkinInfo.mJointNames );
|
||||
|
||||
if ( !missingSkeletonOrScene )
|
||||
{
|
||||
|
|
@ -1589,11 +1580,7 @@ void LLDAELoader::processDomModel(LLModel* model, DAE* dae, daeElement* root, do
|
|||
//with the skeleton are not stored in the same order as they are in the exported joint buffer.
|
||||
//This remaps the skeletal joints to be in the same order as the joints stored in the model.
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// std::vector<std::string> ::const_iterator jointIt = model->mSkinInfo.mJointNames.begin();
|
||||
std::vector< std::string > jointNames = toStringVector( model->mSkinInfo.mJointNames );
|
||||
std::vector<std::string> ::const_iterator jointIt = jointNames.begin();
|
||||
// </FS:ND>
|
||||
std::vector<std::string> ::const_iterator jointIt = model->mSkinInfo.mJointNames.begin();
|
||||
|
||||
const int jointCnt = static_cast<int>(model->mSkinInfo.mJointNames.size());
|
||||
for ( int i=0; i<jointCnt; ++i, ++jointIt )
|
||||
|
|
|
|||
|
|
@ -1496,10 +1496,7 @@ void LLMeshSkinInfo::fromLLSD(LLSD& skin)
|
|||
{
|
||||
for (U32 i = 0; i < skin["joint_names"].size(); ++i)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// mJointNames.push_back( skin[ "joint_names" ][ i ] );
|
||||
mJointNames.push_back( JointKey::construct( skin[ "joint_names" ][ i ] ) );
|
||||
// </FS>ND>
|
||||
mJointNames.push_back( skin[ "joint_names" ][ i ] );
|
||||
mJointNums.push_back(-1);
|
||||
}
|
||||
}
|
||||
|
|
@ -1589,10 +1586,7 @@ LLSD LLMeshSkinInfo::asLLSD(bool include_joints, bool lock_scale_if_joint_positi
|
|||
|
||||
for (U32 i = 0; i < mJointNames.size(); ++i)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// ret[ "joint_names" ][ i ] = mJointNames[ i ];
|
||||
ret[ "joint_names" ][ i ] = mJointNames[ i ].mName;
|
||||
// </FS:ND>
|
||||
ret[ "joint_names" ][ i ] = mJointNames[ i ];
|
||||
|
||||
for (U32 j = 0; j < 4; j++)
|
||||
{
|
||||
|
|
@ -1643,9 +1637,7 @@ void LLMeshSkinInfo::updateHash()
|
|||
//mJointNames
|
||||
for (auto& name : mJointNames)
|
||||
{
|
||||
// <FS:Ansariel> Joint lookup speedup
|
||||
//hash.update(name);
|
||||
hash.update(name.mName);
|
||||
hash.update(name);
|
||||
}
|
||||
|
||||
//mJointNums
|
||||
|
|
@ -1671,10 +1663,7 @@ U32 LLMeshSkinInfo::sizeBytes() const
|
|||
res += sizeof(std::vector<std::string>) + sizeof(std::string) * static_cast<U32>(mJointNames.size());
|
||||
for (U32 i = 0; i < mJointNames.size(); ++i)
|
||||
{
|
||||
// <FS> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//res += static_cast<U32>(mJointNames[i].size()); // actual size, not capacity
|
||||
res += static_cast<U32>(mJointNames[i].mName.size()); // actual size, not capacity
|
||||
// </FS>
|
||||
res += static_cast<U32>(mJointNames[i].size()); // actual size, not capacity
|
||||
}
|
||||
|
||||
res += sizeof(std::vector<S32>) + sizeof(S32) * static_cast<U32>(mJointNums.size());
|
||||
|
|
|
|||
|
|
@ -56,10 +56,7 @@ public:
|
|||
U32 sizeBytes() const;
|
||||
|
||||
LLUUID mMeshID;
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// std::vector<std::string> mJointNames;
|
||||
std::vector< JointKey > mJointNames;
|
||||
// </FS:ND>
|
||||
std::vector<std::string> mJointNames;
|
||||
mutable std::vector<S32> mJointNums;
|
||||
typedef std::vector<LLMatrix4a> matrix_list_t;
|
||||
matrix_list_t mInvBindMatrix;
|
||||
|
|
|
|||
|
|
@ -257,10 +257,7 @@ bool LLModelLoader::loadFromSLM(const std::string& filename)
|
|||
if (!loaded_model->mSkinInfo.mJointNames.empty())
|
||||
{
|
||||
//check to see if rig is valid
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// critiqueRigForUploadApplicability( loaded_model->mSkinInfo.mJointNames );
|
||||
critiqueRigForUploadApplicability( toStringVector( loaded_model->mSkinInfo.mJointNames ) );
|
||||
// </FS:ND>
|
||||
critiqueRigForUploadApplicability( loaded_model->mSkinInfo.mJointNames );
|
||||
}
|
||||
else if (mCacheOnlyHitIfRigged)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -196,18 +196,6 @@ public:
|
|||
void clearLog() { mWarningsArray.clear(); }
|
||||
|
||||
protected:
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
std::vector< std::string > toStringVector( std::vector< JointKey > const &aIn ) const
|
||||
{
|
||||
std::vector< std::string > out;
|
||||
|
||||
for( std::vector< JointKey >::const_iterator itr = aIn.begin(); itr != aIn.end(); ++itr )
|
||||
out.push_back( itr->mName );
|
||||
|
||||
return out;
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
LLModelLoader::load_callback_t mLoadCallback;
|
||||
LLModelLoader::joint_lookup_func_t mJointLookupFunc;
|
||||
LLModelLoader::texture_load_func_t mTextureLoadFunc;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1249,7 +1249,7 @@ void LLUrlEntryParcel::processParcelInfo(const LLParcelData& parcel_data)
|
|||
//
|
||||
LLUrlEntryPlace::LLUrlEntryPlace()
|
||||
{
|
||||
mPattern = boost::regex("((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+(?:/?(-?\\d+/-?\\d+/-?\\d+|-?\\d+/-?\\d+)/?)?", // <AW: hop:// protocol>
|
||||
mPattern = boost::regex("(((hop://[-\\w\\.\\:\\@]+/)|((x-grid-location-info://[-\\w\\.]+/region/)|(secondlife://)))\\S+/?(\\d+/\\d+/-?\\d+|\\d+/-?\\d+)/?)|(hop://[-\\w\\.\\:\\@]+/[^\\s/]+/?(?![^\\s]))", // <AW: hop:// protocol>
|
||||
boost::regex::perl|boost::regex::icase);
|
||||
mMenuName = "menu_url_slurl.xml";
|
||||
mTooltip = LLTrans::getString("TooltipSLURL");
|
||||
|
|
|
|||
|
|
@ -74,13 +74,11 @@
|
|||
<string>RenderShaderLightingMaxLevel</string>
|
||||
<string>RenderShadowDetail</string>
|
||||
<string>RenderShadowResolutionScale</string>
|
||||
<string>RenderSkyAmbientScale</string>
|
||||
<string>RenderSkyAutoAdjustAmbientScale</string>
|
||||
<string>RenderSkyAutoAdjustBlueDensityScale</string>
|
||||
<string>RenderSkyAutoAdjustBlueHorizonScale</string>
|
||||
<string>RenderSkyAutoAdjustSunColorScale</string>
|
||||
<string>RenderSkyAutoAdjustHDRScale</string>
|
||||
<string>RenderSkyAutoAdjustLegacy</string>
|
||||
<string>RenderSkyAutoAdjustProbeAmbiance</string>
|
||||
<string>RenderSkySunlightScale</string>
|
||||
<string>RenderSSAOIrradianceScale</string>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(joints[0]->jointName()));
|
||||
else
|
||||
FSToolCompPose::getInstance()->setJoint(nullptr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -96,6 +96,13 @@ public:
|
|||
{
|
||||
ctrl->getSignal()->connect(boost::bind(&LLFloaterIMNearbyChatScreenChannel::updateToastFadingTime, this));
|
||||
}
|
||||
// <FS:darl> [FIRE-35039 > FIRE-35294] Add flag to show/hide the on-screen console
|
||||
ctrl = gSavedSettings.getControl("FSShowOnscreenConsole").get();
|
||||
if (ctrl)
|
||||
{
|
||||
ctrl->getSignal()->connect(boost::bind(&LLFloaterIMNearbyChatScreenChannel::removeToastsFromChannel, this));
|
||||
}
|
||||
// </FS:darl> [FIRE-35039 > FIRE-35294] Add flag to show/hide the on-screen console
|
||||
}
|
||||
|
||||
void addChat (LLSD& chat);
|
||||
|
|
@ -694,6 +701,14 @@ void LLFloaterIMNearbyChatHandler::processChat(const LLChat& chat_msg,
|
|||
}
|
||||
// </FS:Ansariel>
|
||||
|
||||
// <FS:darl> [FIRE-35039 > FIRE-35294] Add flag to show/hide the on-screen console
|
||||
static LLUICachedControl<bool> showOnscreenConsole("FSShowOnscreenConsole");
|
||||
if (!showOnscreenConsole)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// </FS:darl> [FIRE-35039 > FIRE-35294]
|
||||
|
||||
static LLCachedControl<bool> useChatBubbles(gSavedSettings, "UseChatBubbles");
|
||||
static LLCachedControl<bool> fsBubblesHideConsoleAndToasts(gSavedSettings, "FSBubblesHideConsoleAndToasts");
|
||||
// <FS:Ansariel> [FS communication UI]
|
||||
|
|
|
|||
|
|
@ -1625,14 +1625,9 @@ void LLFloaterModelPreview::updateAvatarTab(bool highlight_overrides)
|
|||
for (U32 j = 0; j < joint_count; ++j)
|
||||
{
|
||||
const LLVector3& joint_pos = LLVector3(skin->mAlternateBindMatrix[j].getTranslation());
|
||||
// <FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
|
||||
LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
|
||||
|
||||
//LLJoint* pJoint = LLModelPreview::lookupJointByName(skin->mJointNames[j], mModelPreview);
|
||||
LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j].mName];
|
||||
|
||||
LLJoint* pJoint = LLModelPreview::lookupJointByName(skin->mJointNames[j].mName, mModelPreview);
|
||||
// <FS:ND>
|
||||
LLJoint* pJoint = LLModelPreview::lookupJointByName(skin->mJointNames[j], mModelPreview);
|
||||
if (pJoint)
|
||||
{
|
||||
// see how voavatar uses aboveJointPosThreshold
|
||||
|
|
@ -1661,9 +1656,7 @@ void LLFloaterModelPreview::updateAvatarTab(bool highlight_overrides)
|
|||
{
|
||||
for (U32 j = 0; j < joint_count; ++j)
|
||||
{
|
||||
// <FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
|
||||
LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j].mName];
|
||||
LLJointOverrideData &data = mJointOverrides[display_lod][skin->mJointNames[j]];
|
||||
data.mModelsNoOverrides.insert(model->getName());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,10 +45,27 @@ bool LLFloaterNewFeatureNotification::postBuild()
|
|||
|
||||
const std::string title_txt = "title_txt";
|
||||
const std::string dsc_txt = "description_txt";
|
||||
std::string feature = "_" + getKey().asString();
|
||||
|
||||
getChild<LLUICtrl>(title_txt)->setValue(getString(title_txt + feature));
|
||||
getChild<LLUICtrl>(dsc_txt)->setValue(getString(dsc_txt + feature));
|
||||
// <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() )
|
||||
{
|
||||
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>
|
||||
|
||||
getChild<LLUICtrl>(title_txt)->setValue(getString(title_txt + "_" + feature));
|
||||
getChild<LLUICtrl>(dsc_txt)->setValue(getString(dsc_txt + "_" + feature));
|
||||
|
||||
if (getKey().asString() == "gltf")
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1085,9 +1085,9 @@ void LLFloaterWorldMap::updateLocation()
|
|||
// mSLURL = LLSLURL(sim_name, pos_global);
|
||||
// <FS> [FIRE-35268] OpenSim support for when on other grids
|
||||
if (LLGridManager::getInstance()->isInSecondLife())
|
||||
mSLURL = LLSLURL(sim_info->getName(), gAgent.getPositionAgent());
|
||||
mSLURL = LLSLURL(sim_info->getName(), sim_info->getGlobalOrigin(), pos_global);
|
||||
else
|
||||
mSLURL = LLSLURL(LFSimFeatureHandler::instance().hyperGridURL(), sim_info->getName(), gAgent.getPositionAgent());
|
||||
mSLURL = LLSLURL(LFSimFeatureHandler::instance().hyperGridURL(), sim_info->getName(), sim_info->getGlobalOrigin(), pos_global);
|
||||
// </FS>
|
||||
}
|
||||
// </FS:Beq pp Oren>
|
||||
|
|
|
|||
|
|
@ -1891,42 +1891,36 @@ bool LLMeshRepoThread::fetchMeshPhysicsShape(const LLUUID& mesh_id)
|
|||
//static
|
||||
void LLMeshRepoThread::incActiveLODRequests()
|
||||
{
|
||||
LLMutexLock lock(gMeshRepo.mThread->mMutex);
|
||||
++LLMeshRepoThread::sActiveLODRequests;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMeshRepoThread::decActiveLODRequests()
|
||||
{
|
||||
LLMutexLock lock(gMeshRepo.mThread->mMutex);
|
||||
--LLMeshRepoThread::sActiveLODRequests;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMeshRepoThread::incActiveHeaderRequests()
|
||||
{
|
||||
LLMutexLock lock(gMeshRepo.mThread->mMutex);
|
||||
++LLMeshRepoThread::sActiveHeaderRequests;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMeshRepoThread::decActiveHeaderRequests()
|
||||
{
|
||||
LLMutexLock lock(gMeshRepo.mThread->mMutex);
|
||||
--LLMeshRepoThread::sActiveHeaderRequests;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMeshRepoThread::incActiveSkinRequests()
|
||||
{
|
||||
LLMutexLock lock(gMeshRepo.mThread->mMutex);
|
||||
++LLMeshRepoThread::sActiveSkinRequests;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLMeshRepoThread::decActiveSkinRequests()
|
||||
{
|
||||
LLMutexLock lock(gMeshRepo.mThread->mMutex);
|
||||
--LLMeshRepoThread::sActiveSkinRequests;
|
||||
}
|
||||
|
||||
|
|
@ -4634,13 +4628,20 @@ void LLMeshRepository::notifyLoadedMeshes()
|
|||
{
|
||||
LLMutexTrylock lock1(mMeshMutex);
|
||||
LLMutexTrylock lock2(mThread->mMutex);
|
||||
LLMutexTrylock lock3(mThread->mHeaderMutex);
|
||||
LLMutexTrylock lock4(mThread->mPendingMutex);
|
||||
|
||||
static U32 hold_offs(0);
|
||||
if (! lock1.isLocked() || ! lock2.isLocked())
|
||||
if (! lock1.isLocked() || ! lock2.isLocked() || ! lock3.isLocked() || ! lock4.isLocked())
|
||||
{
|
||||
// If we can't get the locks, skip and pick this up later.
|
||||
// Eventually thread queue will be free enough
|
||||
++hold_offs;
|
||||
sMaxLockHoldoffs = llmax(sMaxLockHoldoffs, hold_offs);
|
||||
if (hold_offs > 4)
|
||||
{
|
||||
LL_WARNS_ONCE() << "High mesh thread holdoff" << LL_ENDL;
|
||||
}
|
||||
return;
|
||||
}
|
||||
hold_offs = 0;
|
||||
|
|
@ -4701,6 +4702,7 @@ void LLMeshRepository::notifyLoadedMeshes()
|
|||
|
||||
if (mPendingRequests.size() > push_count)
|
||||
{
|
||||
LL_PROFILE_ZONE_NAMED("Mesh score_map");
|
||||
// More requests than the high-water limit allows so
|
||||
// sort and forward the most important.
|
||||
|
||||
|
|
@ -4751,8 +4753,6 @@ void LLMeshRepository::notifyLoadedMeshes()
|
|||
std::partial_sort(mPendingRequests.begin(), mPendingRequests.begin() + push_count,
|
||||
mPendingRequests.end(), PendingRequestBase::CompareScoreGreater());
|
||||
}
|
||||
LLMutexTrylock lock3(mThread->mHeaderMutex);
|
||||
LLMutexTrylock lock4(mThread->mPendingMutex);
|
||||
while (!mPendingRequests.empty() && push_count > 0)
|
||||
{
|
||||
std::unique_ptr<PendingRequestBase>& req_p = mPendingRequests.front();
|
||||
|
|
|
|||
|
|
@ -4185,10 +4185,7 @@ LLJoint* LLModelPreview::lookupJointByName(const std::string& str, void* opaque)
|
|||
LLModelPreview* pPreview = static_cast< LLModelPreview* >(opaque);
|
||||
if (pPreview)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// return pPreview->getPreviewAvatar()->getJoint(str);
|
||||
return pPreview->getPreviewAvatar()->getJoint( JointKey::construct( str ) );
|
||||
// <FS:ND>
|
||||
return pPreview->getPreviewAvatar()->getJoint(str);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,10 +131,7 @@ void LLMorphView::updateCamera()
|
|||
{
|
||||
if (!mCameraTargetJoint)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// setCameraTargetJoint( gAgentAvatarp->getJoint( "mHead" ) );
|
||||
setCameraTargetJoint( gAgentAvatarp->getJoint( JointKey::construct( "mHead" ) ) );
|
||||
// </FS:ND>
|
||||
setCameraTargetJoint( gAgentAvatarp->getJoint( "mHead" ) );
|
||||
}
|
||||
if (!isAgentAvatarValid()) return;
|
||||
|
||||
|
|
|
|||
|
|
@ -1316,15 +1316,11 @@ void LLPanelEditWearable::showWearable(LLViewerWearable* wearable, bool show, bo
|
|||
value_map_t sorted_params;
|
||||
getSortedParams(sorted_params, edit_group);
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//LLJoint* jointp = gAgentAvatarp->getJoint( subpart_entry->mTargetJoint );
|
||||
LLJoint* jointp = gAgentAvatarp->getJoint( JointKey::construct( subpart_entry->mTargetJoint ) );
|
||||
LLJoint* jointp = gAgentAvatarp->getJoint( subpart_entry->mTargetJoint );
|
||||
if (!jointp)
|
||||
{
|
||||
//jointp = gAgentAvatarp->getJoint( "mHead" );
|
||||
jointp = gAgentAvatarp->getJoint( JointKey::construct( "mHead" ) );
|
||||
jointp = gAgentAvatarp->getJoint( "mHead" );
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
buildParamList(panel_list, sorted_params, tab, jointp);
|
||||
|
||||
|
|
@ -1440,11 +1436,7 @@ void LLPanelEditWearable::changeCamera(U8 subpart)
|
|||
}
|
||||
|
||||
// Update the camera
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( subpart_entry->mTargetJoint ) );
|
||||
gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( JointKey::construct( subpart_entry->mTargetJoint ) ) );
|
||||
// </FS>ND>
|
||||
|
||||
gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( subpart_entry->mTargetJoint ) );
|
||||
gMorphView->setCameraTargetOffset( subpart_entry->mTargetOffset );
|
||||
gMorphView->setCameraOffset( subpart_entry->mCameraOffset );
|
||||
if (gSavedSettings.getBOOL("AppearanceCameraMovement"))
|
||||
|
|
|
|||
|
|
@ -538,6 +538,11 @@ void LLPresetsManager::loadPreset(const std::string& subdirectory, std::string n
|
|||
{
|
||||
gSavedSettings.setString("PresetGraphicActive", name);
|
||||
|
||||
// <FS> [FIRE-35390] Old viewer presets have these as true and 0.7, whereas the equivalent on modern viewers is false and 1.0
|
||||
gSavedSettings.setBOOL("RenderSkyAutoAdjustLegacy", false);
|
||||
gSavedSettings.setF32("RenderSkyAmbientScale", 1.0);
|
||||
// </FS>
|
||||
|
||||
// <FS:Ansariel> Update indirect controls
|
||||
LLAvatarComplexityControls::setIndirectControls();
|
||||
|
||||
|
|
|
|||
|
|
@ -54,10 +54,7 @@ void dump_avatar_and_skin_state(const std::string& reason, LLVOAvatar *avatar, c
|
|||
{
|
||||
LL_WARNS("Avatar") << "skin joint idx " << j << " name [" << skin->mJointNames[j]
|
||||
<< "] num " << skin->mJointNums[j] << LL_ENDL;
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//const std::string& name = skin->mJointNames[j];
|
||||
const std::string& name = skin->mJointNames[j].mName;
|
||||
// </FS:ND>
|
||||
const std::string& name = skin->mJointNames[j];
|
||||
S32 joint_num = skin->mJointNums[j];
|
||||
|
||||
LLJoint *name_joint = avatar->getJoint(name);
|
||||
|
|
@ -119,14 +116,9 @@ void LLSkinningUtil::scrubInvalidJoints(LLVOAvatar *avatar, LLMeshSkinInfo* skin
|
|||
// needed for handling of any legacy bad data.
|
||||
if (!avatar->getJoint(skin->mJointNames[j]))
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//LL_DEBUGS("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint " << skin->mJointNames[j] << LL_ENDL;
|
||||
//LL_WARNS_ONCE("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint" << skin->mJointNames[j] << LL_ENDL;
|
||||
//skin->mJointNames[j] = "mPelvis";
|
||||
LL_DEBUGS("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint " << skin->mJointNames[j].mName << LL_ENDL;
|
||||
LL_WARNS_ONCE("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint" << skin->mJointNames[j].mName << LL_ENDL;
|
||||
skin->mJointNames[j] = JointKey::construct("mPelvis");
|
||||
//</FS:ND>
|
||||
LL_DEBUGS("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint " << skin->mJointNames[j] << LL_ENDL;
|
||||
LL_WARNS_ONCE("Avatar") << avatar->getFullname() << " mesh rigged to invalid joint" << skin->mJointNames[j] << LL_ENDL;
|
||||
skin->mJointNames[j] = "mPelvis";
|
||||
skin->mJointNumsInitialized = false; // force update after names change.
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
||||
|
|
|
|||
|
|
@ -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,12 +385,13 @@ 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)
|
||||
std::array<S32, 12 * 12> size_counts{0}; // Track the 12 possible sizes (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048)
|
||||
std::array<S32, (MAX_DISCARD_LEVEL * 2 + 2) * 12> discard_counts{0}; // Also need to an 1 additional as -1 is a valid discard level (not loaded by reported as a 1x1 texture)
|
||||
std::array<S32, (MAX_DISCARD_LEVEL * 2 + 2) * 12> fullsize_discard_counts{0}; // Also need to an 1 additional as -1 is a valid discard level (not loaded by reported as a 1x1 texture)
|
||||
std::array<S32, LLViewerTexture::BOOST_MAX_LEVEL * 12> boost_counts{0}; // Track the # of textures at boost levels by 12 possible sizes
|
||||
// Don't Init the buffers with 0's like it's the the 1980's...
|
||||
|
||||
|
|
@ -398,36 +399,30 @@ void LLViewerTextureList::dump()
|
|||
for (image_list_t::iterator it = mImageList.begin(); it != mImageList.end(); ++it)
|
||||
{
|
||||
LLViewerFetchedTexture* image = *it;
|
||||
// <FS:minerjr> [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer
|
||||
std::string face_counts = "";
|
||||
std::string volume_counts = "";
|
||||
for (S32 index = 0; index < LLRender::NUM_TEXTURE_CHANNELS; index++)
|
||||
{
|
||||
face_counts += std::to_string(image->getNumFaces(index)) + " ";
|
||||
}
|
||||
|
||||
for (S32 index = 0; index < LLRender::NUM_VOLUME_TEXTURE_CHANNELS; index++)
|
||||
{
|
||||
volume_counts += std::to_string(image->getNumVolumes(index)) + " ";
|
||||
}
|
||||
// </FS:minerjr> [FIRE-35081]
|
||||
|
||||
LL_INFOS() << "priority " << image->getMaxVirtualSize()
|
||||
<< " boost " << image->getBoostLevel()
|
||||
<< " 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)
|
||||
<< " Sculpted " << (image->forSculpt() ? "Y" : "N")
|
||||
<< " # of Faces " << face_counts
|
||||
<< " # of Volumes " << volume_counts
|
||||
<< " # of Faces ";
|
||||
for (S32 index = 0; index < LLRender::NUM_TEXTURE_CHANNELS; index++)
|
||||
{
|
||||
LL_CONT << image->getNumFaces(index) << " ";
|
||||
}
|
||||
LL_CONT << " # of Volumes ";
|
||||
for (S32 index = 0; index < LLRender::NUM_VOLUME_TEXTURE_CHANNELS; index++)
|
||||
{
|
||||
LL_CONT << image->getNumVolumes(index) << " ";
|
||||
}
|
||||
// </FS:minerjr> [FIRE-35081]
|
||||
<< " http://asset.siva.lindenlab.com/" << image->getID() << ".texture"
|
||||
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...)
|
||||
|
|
@ -436,11 +431,15 @@ void LLViewerTextureList::dump()
|
|||
S32 max_dimension = (y_index > x_index ? y_index : x_index);
|
||||
discard_counts[(image->getDiscardLevel() + 1) + max_dimension * (MAX_DISCARD_LEVEL * 2 + 2)] += 1;
|
||||
boost_counts[image->getBoostLevel() + max_dimension * (LLViewerTexture::BOOST_MAX_LEVEL)] += 1;
|
||||
S32 full_x_index = (S32)log2(image->getFullWidth());
|
||||
S32 full_y_index = (S32)log2(image->getFullHeight());
|
||||
S32 full_max_dimension = (full_y_index > full_x_index ? full_y_index : full_x_index);
|
||||
fullsize_discard_counts[(image->getDiscardLevel() + 1) + full_max_dimension * (MAX_DISCARD_LEVEL * 2 + 2)] += 1;
|
||||
texture_count++;
|
||||
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;
|
||||
|
||||
|
|
@ -450,150 +449,108 @@ void LLViewerTextureList::dump()
|
|||
LL_INFOS() << " Discard Level: " << (index - 1) << " Number of Textures: " << image_counts[index] << LL_ENDL;
|
||||
}
|
||||
|
||||
// Create a header that for the Sizes
|
||||
std::string header = "Size ";
|
||||
for (S32 x = 0; x < 12; x++)
|
||||
{
|
||||
std::string newValue = std::to_string((S32)pow(2, x));
|
||||
header += newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
header += " ";
|
||||
}
|
||||
}
|
||||
|
||||
// Create a line to break up the header from the content of the table
|
||||
std::string header_break = "";
|
||||
for (S32 x = 0; x < header.length(); x++)
|
||||
{
|
||||
header_break += "-";
|
||||
}
|
||||
std::string header_break(13 * 8, '-');
|
||||
|
||||
LL_INFOS() << "Size vs Size" << LL_ENDL;
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << header << LL_ENDL; // Size vs Size counts header
|
||||
// Create a header that for the Sizes
|
||||
LL_INFOS() << std::setw(8) << "Size";
|
||||
for (S32 x = 1; x <= 2048; x <<= 1)
|
||||
{
|
||||
LL_CONT << std::setw(8) << x;
|
||||
}
|
||||
LL_CONT << LL_ENDL;
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
|
||||
// Y Axis is the size of the height of the texture
|
||||
for (S32 y = 0; y < 12; y++)
|
||||
{
|
||||
std::string newValue = std::to_string((S32)pow(2, y));
|
||||
std::string size_count_string = "" + newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
size_count_string += " ";
|
||||
}
|
||||
|
||||
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++)
|
||||
{
|
||||
newValue = std::to_string(size_counts[x + y * 12]);
|
||||
size_count_string += newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
size_count_string += " ";
|
||||
}
|
||||
}
|
||||
LL_INFOS() << size_count_string << LL_ENDL;
|
||||
}
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << header << LL_ENDL; // Size vs Size counts footer
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_CONT << std::setw(8) << size_counts[x + y * 12];
|
||||
|
||||
LL_INFOS() << "" << LL_ENDL;
|
||||
}
|
||||
LL_CONT << LL_ENDL;
|
||||
}
|
||||
LL_INFOS() << LL_ENDL;
|
||||
|
||||
// This is the Discard Level Vs Size counts table
|
||||
header = "Discard: ";
|
||||
LL_INFOS() << "Discard Level Vs Size" << LL_ENDL;
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << std::setw(8) << "Discard";
|
||||
for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++)
|
||||
{
|
||||
std::string newValue = std::to_string(x - 1);
|
||||
header += newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
header += " ";
|
||||
}
|
||||
LL_CONT << std::setw(8) << (x - 1);
|
||||
}
|
||||
|
||||
header_break = "";
|
||||
for (S32 x = 0; x < header.length(); x++)
|
||||
{
|
||||
header_break += "-";
|
||||
}
|
||||
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << header << LL_ENDL; // Discard Level Vs Size counts header
|
||||
LL_CONT << LL_ENDL;
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
|
||||
// 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++)
|
||||
{
|
||||
std::string newValue = std::to_string((S32)pow(2, y));
|
||||
std::string discard_count_string = "" + newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
discard_count_string += " ";
|
||||
}
|
||||
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++)
|
||||
{
|
||||
std::string newValue = std::to_string(discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)]);
|
||||
discard_count_string += newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
discard_count_string += " ";
|
||||
}
|
||||
LL_CONT << std::setw(8) << discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)];
|
||||
}
|
||||
LL_INFOS() << discard_count_string << LL_ENDL;
|
||||
LL_CONT << LL_ENDL;
|
||||
}
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << header << LL_ENDL; // Discard Level Vs Size counts footer
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << LL_ENDL;
|
||||
|
||||
|
||||
// This is the Boost Level Vs Size counts table
|
||||
header = "Boost: ";
|
||||
for (S32 x = 0; x < LLViewerTexture::BOOST_MAX_LEVEL; x++)
|
||||
// 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::setw(8) << "Discard";
|
||||
for (S32 x = 0; x < MAX_DISCARD_LEVEL * 2 + 2; x++)
|
||||
{
|
||||
std::string newValue = std::to_string(x);
|
||||
header += newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
header += " ";
|
||||
}
|
||||
LL_CONT << std::setw(8) << (x - 1);
|
||||
}
|
||||
|
||||
header_break = "";
|
||||
for (S32 x = 0; x < header.length(); x++)
|
||||
{
|
||||
header_break += "-";
|
||||
}
|
||||
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << header << LL_ENDL; // Boost Level Vs Size counts header
|
||||
LL_CONT << LL_ENDL;
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
|
||||
// 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++)
|
||||
{
|
||||
std::string newValue = std::to_string((S32)pow(2, y));
|
||||
std::string boost_count_string = "" + newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
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++)
|
||||
{
|
||||
boost_count_string += " ";
|
||||
LL_CONT << std::setw(8) << fullsize_discard_counts[x + y * (MAX_DISCARD_LEVEL * 2 + 2)];
|
||||
}
|
||||
LL_CONT << LL_ENDL;
|
||||
}
|
||||
LL_INFOS() << LL_ENDL;
|
||||
|
||||
|
||||
// This is the Boost Level Vs Size counts table
|
||||
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::setw(8) << "Discard";
|
||||
for (S32 x = 0; x < LLViewerTexture::BOOST_MAX_LEVEL; x++)
|
||||
{
|
||||
LL_CONT << std::setw(8) << x;
|
||||
}
|
||||
LL_CONT << LL_ENDL;
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
|
||||
// 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::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++)
|
||||
{
|
||||
std::string newValue = std::to_string(boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)]);
|
||||
boost_count_string += newValue;
|
||||
for (S32 tab = 0; tab <= 8 - newValue.length(); tab++)
|
||||
{
|
||||
boost_count_string += " ";
|
||||
}
|
||||
LL_CONT << std::setw(8) << boost_counts[x + y * (LLViewerTexture::BOOST_MAX_LEVEL)];
|
||||
}
|
||||
LL_INFOS() << boost_count_string << LL_ENDL;
|
||||
LL_CONT << LL_ENDL;
|
||||
}
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << header << LL_ENDL; // Boost Level Vs Size counts footer
|
||||
LL_INFOS() << header_break << LL_ENDL;
|
||||
LL_INFOS() << LL_ENDL;
|
||||
|
||||
// </FS:minerjr> [FIRE-35081]
|
||||
}
|
||||
|
|
@ -851,6 +808,14 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
|
|||
imagep->setExplicitFormat(internal_format, primary_format);
|
||||
}
|
||||
|
||||
// <FS:minerjr> [FIRE-35428] - Mega prim issue - fix compressed sculpted textures
|
||||
// Sculpted textures use the RGBA data for coodinates, so any compression can cause artifacts.
|
||||
if (boost_priority == LLViewerFetchedTexture::BOOST_SCULPTED)
|
||||
{
|
||||
// Disable the compression of BOOST_SCULPTED textures
|
||||
if (imagep->getGLTexture())imagep->getGLTexture()->setAllowCompression(false);
|
||||
}
|
||||
// </FS:minerjr> [FIRE-35428]
|
||||
addImage(imagep, get_element_type(boost_priority));
|
||||
|
||||
if (boost_priority != 0)
|
||||
|
|
@ -878,7 +843,11 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
|
|||
}
|
||||
|
||||
// <FS:Ansariel> Keep Fast Cache option
|
||||
if(fast_cache_fetching_enabled)
|
||||
// <FS:minerjr> [FIRE-35428] - Mega prim issue - fix compressed sculpted textures
|
||||
//if(fast_cache_fetching_enabled)
|
||||
// If the texture is Sculpted, don't allow it to be added to fast cache as it can affect the texture.
|
||||
if(fast_cache_fetching_enabled && boost_priority != LLViewerFetchedTexture::BOOST_SCULPTED)
|
||||
// </FS:minerjr> [FIRE-35428]
|
||||
{
|
||||
mFastCacheList.insert(imagep);
|
||||
imagep->setInFastCacheList(true);
|
||||
|
|
@ -1138,7 +1107,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));
|
||||
|
|
@ -1180,7 +1149,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;
|
||||
|
|
@ -1199,7 +1168,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;
|
||||
|
|
@ -1214,7 +1183,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
|
||||
//
|
||||
|
|
@ -1275,7 +1244,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))
|
||||
//{
|
||||
|
|
@ -1284,7 +1253,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);
|
||||
|
|
@ -1312,7 +1281,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.
|
||||
|
|
@ -1439,7 +1408,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())
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
||||
|
|
|
|||
|
|
@ -5430,6 +5430,14 @@ LLPickInfo LLViewerWindow::pickImmediate(S32 x, S32 y_from_bot, bool pick_transp
|
|||
pick_transparent = true;
|
||||
}
|
||||
|
||||
// <FS:Sek> Pick from center of screen in mouselook
|
||||
if (gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK)
|
||||
{
|
||||
x = gViewerWindow->getWorldViewRectScaled().getWidth() / 2;
|
||||
y_from_bot = gViewerWindow->getWorldViewRectScaled().getHeight() / 2;
|
||||
}
|
||||
// </FS:Sek>
|
||||
|
||||
// shortcut queueing in mPicks and just update mLastPick in place
|
||||
MASK key_mask = gKeyboard->currentMask(true);
|
||||
mLastPick = LLPickInfo(LLCoordGL(x, y_from_bot), key_mask, pick_transparent, pick_rigged, pick_particle, pick_reflection_probe, true, false, NULL);
|
||||
|
|
@ -5928,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;
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
@ -7267,69 +7267,44 @@ const LLUUID& LLVOAvatar::getID() const
|
|||
// getJoint()
|
||||
//-----------------------------------------------------------------------------
|
||||
// RN: avatar joints are multi-rooted to include screen-based attachments
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//LLJoint *LLVOAvatar::getJoint( const std::string &name )
|
||||
LLJoint *LLVOAvatar::getJoint( const JointKey &name )
|
||||
// </FS:ND>
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//LLJoint *LLVOAvatar::getJoint(const std::string &name)
|
||||
LLJoint *LLVOAvatar::getJoint(std::string_view name)
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//joint_map_t::iterator iter = mJointMap.find( name );
|
||||
|
||||
//LLJoint* jointp = NULL;
|
||||
|
||||
//if( iter == mJointMap.end() || iter->second == NULL )
|
||||
//{ //search for joint and cache found joint in lookup table
|
||||
// if (mJointAliasMap.empty())
|
||||
// {
|
||||
// getJointAliases();
|
||||
// }
|
||||
// joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(name);
|
||||
// std::string canonical_name;
|
||||
// if (alias_iter != mJointAliasMap.end())
|
||||
// {
|
||||
// canonical_name = alias_iter->second;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// canonical_name = name;
|
||||
// }
|
||||
// jointp = mRoot->findJoint(canonical_name);
|
||||
// mJointMap[name] = jointp;
|
||||
//}
|
||||
//else
|
||||
//{ //return cached pointer
|
||||
// jointp = iter->second;
|
||||
//}
|
||||
|
||||
joint_map_t::iterator iter = mJointMap.find( name.mKey );
|
||||
joint_map_t::iterator iter = mJointMap.find(name.data());
|
||||
|
||||
LLJoint* jointp = NULL;
|
||||
|
||||
if (iter == mJointMap.end() || iter->second == NULL)
|
||||
{ //search for joint and cache found joint in lookup table
|
||||
if (mJointAliasMap.empty())
|
||||
{
|
||||
getJointAliases();
|
||||
}
|
||||
joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(name.mName);
|
||||
std::string canonical_name;
|
||||
if (alias_iter != mJointAliasMap.end())
|
||||
{
|
||||
canonical_name = alias_iter->second;
|
||||
}
|
||||
else
|
||||
{
|
||||
canonical_name = name.mName;
|
||||
}
|
||||
jointp = mRoot->findJoint(canonical_name);
|
||||
mJointMap[name.mKey] = jointp;
|
||||
if( iter == mJointMap.end() || iter->second == NULL )
|
||||
{ //search for joint and cache found joint in lookup table
|
||||
if (mJointAliasMap.empty())
|
||||
{
|
||||
getJointAliases();
|
||||
}
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(name);
|
||||
joint_alias_map_t::const_iterator alias_iter = mJointAliasMap.find(std::string(name));
|
||||
std::string canonical_name;
|
||||
if (alias_iter != mJointAliasMap.end())
|
||||
{
|
||||
canonical_name = alias_iter->second;
|
||||
}
|
||||
else
|
||||
{
|
||||
canonical_name = name;
|
||||
}
|
||||
jointp = mRoot->findJoint(canonical_name);
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//mJointMap[name] = jointp;
|
||||
mJointMap[std::string(name)] = jointp;
|
||||
}
|
||||
else
|
||||
{ //return cached pointer
|
||||
jointp = iter->second;
|
||||
{ //return cached pointer
|
||||
jointp = iter->second;
|
||||
}
|
||||
// </FS:ND>
|
||||
|
||||
#ifndef LL_RELEASE_FOR_DOWNLOAD
|
||||
if (jointp && jointp->getName()!="mScreen" && jointp->getName()!="mRoot")
|
||||
|
|
@ -7370,6 +7345,16 @@ LLJoint *LLVOAvatar::getJoint( S32 joint_num )
|
|||
return pJoint;
|
||||
}
|
||||
|
||||
void LLVOAvatar::initAllJoints()
|
||||
{
|
||||
getJointAliases();
|
||||
for (auto& alias : mJointAliasMap)
|
||||
{
|
||||
mJointMap[alias.first] = mRoot->findJoint(alias.second);
|
||||
}
|
||||
// ignore mScreen and mRoot
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// getRiggedMeshID
|
||||
//
|
||||
|
|
@ -7695,11 +7680,7 @@ void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo, std::set<LL
|
|||
{
|
||||
for (unsigned int i = 0; i < jointCnt; ++i)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// std::string lookingForJoint = pSkinData->mJointNames[ i ].c_str();
|
||||
JointKey lookingForJoint = pSkinData->mJointNames[ i ];
|
||||
// </FS:ND>
|
||||
|
||||
std::string lookingForJoint = pSkinData->mJointNames[i].c_str();
|
||||
LLJoint* pJoint = getJoint( lookingForJoint );
|
||||
if (pJoint)
|
||||
{
|
||||
|
|
@ -7712,10 +7693,7 @@ void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo, std::set<LL
|
|||
if (override_changed)
|
||||
{
|
||||
//If joint is a pelvis then handle old/new pelvis to foot values
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// if( lookingForJoint == "mPelvis" )
|
||||
if( lookingForJoint.mName == "mPelvis" )
|
||||
// </FS:ND>
|
||||
if( lookingForJoint == "mPelvis" )
|
||||
{
|
||||
pelvisGotSet = true;
|
||||
}
|
||||
|
|
@ -7906,10 +7884,7 @@ void LLVOAvatar::removeAttachmentOverridesForObject(LLViewerObject *vo)
|
|||
//-----------------------------------------------------------------------------
|
||||
void LLVOAvatar::removeAttachmentOverridesForObject(const LLUUID& mesh_id)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// LLJoint* pJointPelvis = getJoint( "mPelvis" );
|
||||
LLJoint* pJointPelvis = getJoint( JointKey::construct( "mPelvis" ) );
|
||||
// </FS:ND>
|
||||
LLJoint* pJointPelvis = getJoint( "mPelvis" );
|
||||
|
||||
const std::string av_string = avString();
|
||||
for (S32 joint_num = 0; joint_num < LL_CHARACTER_MAX_ANIMATED_JOINTS; joint_num++)
|
||||
|
|
@ -8097,10 +8072,7 @@ void LLVOAvatar::initAttachmentPoints(bool ignore_hud_joints)
|
|||
|
||||
attachment->setName(info->mName);
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// LLJoint *parent_joint = getJoint(info->mJointName);
|
||||
LLJoint *parent_joint = getJoint( JointKey::construct( info->mJointName ) );
|
||||
// </FS:ND>
|
||||
LLJoint *parent_joint = getJoint(info->mJointName);
|
||||
|
||||
if (!parent_joint)
|
||||
{
|
||||
|
|
@ -10995,7 +10967,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));
|
||||
|
|
|
|||
|
|
@ -204,12 +204,11 @@ public:
|
|||
void startDefaultMotions();
|
||||
void dumpAnimationState();
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//virtual LLJoint* getJoint( const std::string &name );
|
||||
virtual LLJoint* getJoint( const JointKey &name );
|
||||
LLJoint* getJoint( const std::string &name ) { return getJoint( JointKey::construct( name ) ); }
|
||||
// </FS:ND>
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//virtual LLJoint* getJoint(const std::string &name);
|
||||
virtual LLJoint* getJoint(std::string_view name);
|
||||
LLJoint* getJoint(S32 num);
|
||||
void initAllJoints();
|
||||
|
||||
//if you KNOW joint_num is a valid animated joint index, use getSkeletonJoint for efficiency
|
||||
inline LLJoint* getSkeletonJoint(S32 joint_num) { return mSkeleton[joint_num]; }
|
||||
|
|
|
|||
|
|
@ -272,6 +272,8 @@ void LLVOAvatarSelf::initInstance()
|
|||
doPeriodically(check_for_unsupported_baked_appearance, 120.0);
|
||||
doPeriodically(boost::bind(&LLVOAvatarSelf::checkStuckAppearance, this), 30.0);
|
||||
|
||||
initAllJoints(); // mesh thread uses LLVOAvatarSelf as a joint source
|
||||
|
||||
mInitFlags |= 1<<2;
|
||||
}
|
||||
|
||||
|
|
@ -1027,27 +1029,22 @@ void LLVOAvatarSelf::idleUpdate(LLAgent &agent, const F64 &time)
|
|||
}
|
||||
|
||||
// virtual
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//LLJoint *LLVOAvatarSelf::getJoint( const std::string &name )
|
||||
LLJoint *LLVOAvatarSelf::getJoint( const JointKey &name )
|
||||
// </FS:ND>
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//LLJoint *LLVOAvatarSelf::getJoint(const std::string &name)
|
||||
LLJoint* LLVOAvatarSelf::getJoint(std::string_view name)
|
||||
{
|
||||
std::lock_guard lock(mJointMapMutex);
|
||||
LLJoint *jointp = NULL;
|
||||
jointp = LLVOAvatar::getJoint(name);
|
||||
if (!jointp && mScreenp)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//jointp = mScreenp->findJoint(name);
|
||||
jointp = mScreenp->findJoint(name.mName);
|
||||
// </FS:ND>
|
||||
jointp = mScreenp->findJoint(name);
|
||||
if (jointp)
|
||||
{
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
//mJointMap[name] = jointp;
|
||||
mJointMap[name.mKey] = jointp;
|
||||
// </FS:ND>
|
||||
}
|
||||
mJointMap[std::string(name)] = jointp;
|
||||
}
|
||||
}
|
||||
if (jointp && jointp != mScreenp && jointp != mRoot)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -91,10 +91,9 @@ public:
|
|||
/*virtual*/ void stopMotionFromSource(const LLUUID& source_id);
|
||||
/*virtual*/ void requestStopMotion(LLMotion* motion);
|
||||
|
||||
//<FS:ND> Query by JointKey rather than just a string, the key can be a U32 index for faster lookup
|
||||
// /*virtual*/ LLJoint* getJoint( const std::string &name );
|
||||
/*virtual*/ LLJoint* getJoint( const JointKey &name );
|
||||
// </FS:ND>
|
||||
//<FS:Ansariel> Joint-lookup improvements
|
||||
// /*virtual*/ LLJoint* getJoint(const std::string &name);
|
||||
/*virtual*/ LLJoint* getJoint(std::string_view name);
|
||||
|
||||
/*virtual*/ void renderJoints();
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="camera_floater" title="カメラ操作">
|
||||
<floater.string name="rotate_tooltip">
|
||||
焦点を中心にカメラを回転します。
|
||||
</floater.string>
|
||||
<floater.string name="zoom_tooltip">
|
||||
焦点に向けてカメラをズームします。
|
||||
</floater.string>
|
||||
<floater.string name="move_tooltip">
|
||||
カメラを上下左右に移動させます。
|
||||
</floater.string>
|
||||
<floater.string name="free_mode_title">
|
||||
オブジェクトを見る
|
||||
</floater.string>
|
||||
<string name="inactive_combo_text">プリセットを使用</string>
|
||||
<panel name="controls">
|
||||
<!--TODO: replace + - images -->
|
||||
<panel name="zoom">
|
||||
<joystick_rotate name="cam_rotate_stick" tool_tip="焦点を中心にカメラを回転させます。"/>
|
||||
<!-- <FS:Chanayane> Camera roll (from Alchemy) -->
|
||||
<button name="roll_left" tool_tip="カメラを左に傾けます。"/>
|
||||
<button name="roll_right" tool_tip="カメラを右に傾けます。"/>
|
||||
<!-- </FS:Chanayane> -->
|
||||
<slider_bar name="zoom_slider" tool_tip="カメラを焦点に向けてズームします。"/>
|
||||
<joystick_track name="cam_track_stick" tool_tip="カメラを上下左右に動かします。"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<panel name="buttons_panel">
|
||||
<panel_camera_item name="front_view" tool_tip="前面ビューにします。"/>
|
||||
<panel_camera_item name="group_view" tool_tip="サイドビューにします。"/>
|
||||
<panel_camera_item name="rear_view" tool_tip="後方ビューにします。"/>
|
||||
<panel_camera_item name="object_view" tool_tip="オブジェクトビューにします。"/>
|
||||
<panel_camera_item name="mouselook_view" tool_tip="マウスルックビューにします。"/>
|
||||
<panel_camera_item name="reset_view" tool_tip="視野をリセットします。"/>
|
||||
</panel>
|
||||
<combo_box name="preset_combo">
|
||||
<combo_box.item label="プリセットを使用" name="Use preset"/>
|
||||
</combo_box>
|
||||
<button name="gear_btn" tool_tip="カメラのプリセット"/>
|
||||
<button label="位置…" name="camera_position_btn"/>
|
||||
<button label="保存" name="save_btn"/>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="preview_texture">
|
||||
<floater.string name="Title">
|
||||
テクスチャ:[NAME]
|
||||
</floater.string>
|
||||
<floater.string name="Copy">
|
||||
インベントリにコピー
|
||||
</floater.string>
|
||||
<floater.string name="DateTime">
|
||||
[year,datetime,slt]年[month,datetime,slt]月[day,datetime,slt]日([weekday,datetime,slt]) [ampm,datetime,slt] [hour12,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [timezone,datetime,slt]
|
||||
</floater.string>
|
||||
<text name="desc txt">
|
||||
説明:
|
||||
</text>
|
||||
<text name="uploader_label">
|
||||
アップロード者:
|
||||
</text>
|
||||
<button label="プロフィール" name="openprofile"/>
|
||||
<text name="upload_time_label">
|
||||
日付:
|
||||
</text>
|
||||
<text name="uuid_label">
|
||||
UUID:
|
||||
</text>
|
||||
<button label="コピー" name="copyuuid"/>
|
||||
<panel name="dimensions_panel">
|
||||
<text name="dimensions">
|
||||
[WIDTH]px×[HEIGHT]px
|
||||
</text>
|
||||
<text name="aspect_ratio">
|
||||
縦横比のプレビュー
|
||||
</text>
|
||||
<combo_box name="combo_aspect_ratio" tool_tip="固定した縦横比でプレビューします。">
|
||||
<combo_item name="Unconstrained">
|
||||
制約なし
|
||||
</combo_item>
|
||||
<combo_item name="1:1" tool_tip="グループ憲章か、追加のプロフィール情報">
|
||||
1:1
|
||||
</combo_item>
|
||||
<combo_item name="4:3" tool_tip="[CURRENT_GRID]のプロフィール">
|
||||
4:3
|
||||
</combo_item>
|
||||
<combo_item name="10:7" tool_tip="クラシファイドや検索リスト、ランドマーク">
|
||||
10:7
|
||||
</combo_item>
|
||||
<combo_item name="3:2" tool_tip="土地について">
|
||||
3:2
|
||||
</combo_item>
|
||||
<combo_item name="16:10">
|
||||
16:10
|
||||
</combo_item>
|
||||
<combo_item name="16:9" tool_tip="プロフィールのピック">
|
||||
16:9
|
||||
</combo_item>
|
||||
<combo_item name="2:1">
|
||||
2:1
|
||||
</combo_item>
|
||||
</combo_box>
|
||||
</panel>
|
||||
<panel name="button_panel">
|
||||
<button name="btn_refresh"/>
|
||||
<button label="OK" name="Keep"/>
|
||||
<button label="破棄" name="Discard"/>
|
||||
<flyout_button label="保存…" name="save_tex_btn">
|
||||
<flyout_button.item label="TGAで保存" name="save_item_tga"/>
|
||||
<flyout_button.item label="PNGで保存" name="save_item_png"/>
|
||||
</flyout_button>
|
||||
</panel>
|
||||
</floater>
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel name="edit_eyes_panel">
|
||||
<panel name="avatar_eye_color_panel">
|
||||
<texture_picker label="瞳" name="Iris" tool_tip="クリックで画像を選択します。"/>
|
||||
</panel>
|
||||
<!-- Begin Eyes Panel -->
|
||||
<panel name="eyes_main_tab_holder" title="目">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="eyes_main_accordion">
|
||||
<accordion_tab name="eyes_main_tab" title="目"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Eyes Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_gloves_panel">
|
||||
<panel name="avatar_gloves_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Gloves Panel -->
|
||||
<panel name="gloves_main_tab_holder" title="手袋">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="gloves_main_accordion">
|
||||
<accordion_tab name="gloves_main_tab" title="手袋"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Gloves Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_hair_panel">
|
||||
<panel name="avatar_hair_color_panel">
|
||||
<texture_picker label="テクスチャ" name="Texture" tool_tip="クリックで画像を選択します。"/>
|
||||
</panel>
|
||||
<tab_container name="wearable_accordion">
|
||||
<!-- Begin Color Panel -->
|
||||
<panel name="hair_color_tab_holder" title="色">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="hair_color_accordion">
|
||||
<accordion_tab name="hair_color_tab" title="色">
|
||||
<!-- Viewer will replace things here with tiled editing views -->
|
||||
<scrolling_panel_list name="hair_color_param_list"/>
|
||||
</accordion_tab>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Color Panel -->
|
||||
<!-- Begin Style Panel -->
|
||||
<panel name="hair_style_tab_holder" title="スタイル">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="hair_style_accordion">
|
||||
<accordion_tab name="hair_style_tab" title="スタイル">
|
||||
<!-- Viewer will replace things here with tiled editing views -->
|
||||
<scrolling_panel_list name="hair_style_param_list"/>
|
||||
</accordion_tab>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Style Panel -->
|
||||
<!-- Begin Eyebrows Panel -->
|
||||
<panel name="hair_eyebrows_tab_holder" title="眉毛">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="hair_eyebrows_accordion">
|
||||
<accordion_tab name="hair_eyebrows_tab" title="眉毛"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Eyebrows Panel -->
|
||||
<!-- Begin Facial Panel -->
|
||||
<panel name="hair_facial_tab_holder" title="顔面">
|
||||
<text name="hair_facial_not_available">
|
||||
顔のオプションは男性アバターに
|
||||
のみ利用可能です。
|
||||
</text>
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="hair_facial_accordion">
|
||||
<accordion_tab name="hair_facial_tab" title="顔面"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Facial Panel -->
|
||||
</tab_container>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_jacket_panel">
|
||||
<panel name="avatar_jacket_color_panel">
|
||||
<texture_picker label="上部の生地" name="Upper Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<texture_picker label="下部の生地" name="Lower Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Jacket Panel -->
|
||||
<panel name="jacket_main_tab_holder" title="ジャケット">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="jacket_main_accordion">
|
||||
<accordion_tab name="jacket_main_tab" title="ジャケット"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Jacket Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_pants_panel">
|
||||
<panel name="avatar_pants_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Pants Panel -->
|
||||
<panel name="pants_main_tab_holder" title="ズボン">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="pants_main_accordion">
|
||||
<accordion_tab name="pants_main_tab" title="ズボン"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Pants Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_physics_panel">
|
||||
<tab_container name="wearable_accordion">
|
||||
<panel name="physics_breast_updown_tab_holder" title="胸の弾み">
|
||||
<text name="physics_breast_updown_not_available">
|
||||
胸の弾みは女性アバターのみで
|
||||
利用可能です。
|
||||
</text>
|
||||
<accordion name="physics_breast_updown_accordion">
|
||||
<accordion_tab name="physics_breasts_updown_tab" title="胸の弾み"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<panel name="physics_breast_inout_tab_holder" title="胸の谷間">
|
||||
<text name="physics_breast_inout_not_available">
|
||||
胸の谷間は女性アバターのみで
|
||||
利用可能です。
|
||||
</text>
|
||||
<accordion name="physics_breast_inout_accordion">
|
||||
<accordion_tab name="physics_breasts_inout_tab" title="胸の谷間"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<panel name="physics_breast_leftright_tab_holder" title="胸の揺れ">
|
||||
<text name="physics_breast_leftright_not_available">
|
||||
胸の揺れは女性アバターのみで
|
||||
利用可能です。
|
||||
</text>
|
||||
<accordion name="physics_breast_leftright_accordion">
|
||||
<accordion_tab name="physics_breasts_leftright_tab" title="胸の揺れ"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<panel name="physics_belly_tab_holder" title="腹部の弾み">
|
||||
<accordion name="physics_belly_accordion">
|
||||
<accordion_tab name="physics_belly_tab" title="腹部の弾み"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<panel name="physics_butt_tab_holder" title="尻の弾み">
|
||||
<accordion name="physics_butt_accordion">
|
||||
<accordion_tab name="physics_butt_tab" title="尻の弾み"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<panel name="physics_butt_leftright_tab_holder" title="尻の揺れ">
|
||||
<accordion name="physics_butt_leftright_accordion">
|
||||
<accordion_tab name="physics_butt_leftright_tab" title="尻の揺れ"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<panel name="physics_advanced_tab_holder" title="高度なパラメータ">
|
||||
<accordion name="physics_advanced_accordion">
|
||||
<accordion_tab name="physics_advanced_tab" title="高度なパラメータ"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
</tab_container>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_shape_panel">
|
||||
<string name="meters">
|
||||
メートル
|
||||
</string>
|
||||
<string name="feet">
|
||||
フィート
|
||||
</string>
|
||||
<string name="height">
|
||||
身長:
|
||||
</string>
|
||||
<tab_container name="wearable_accordion">
|
||||
<!-- Begin Body Panel -->
|
||||
<panel name="shape_body_tab_holder" title="身体">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_body_accordion">
|
||||
<accordion_tab name="shape_body_tab" title="身体"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Body Panel -->
|
||||
<!-- Begin Head Panel -->
|
||||
<panel name="shape_head_tab_holder" title="頭">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_head_accordion">
|
||||
<accordion_tab name="shape_head_tab" title="頭"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Head Panel -->
|
||||
<!-- Begin Eyes Panel -->
|
||||
<panel name="shape_eyes_tab_holder" title="目">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_eyes_accordion">
|
||||
<accordion_tab name="shape_eyes_tab" title="目"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Eyes Panel -->
|
||||
<!-- Begin Ears Panel -->
|
||||
<panel name="shape_ears_tab_holder" title="耳">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_ears_accordion">
|
||||
<accordion_tab name="shape_ears_tab" title="耳"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Ears Panel -->
|
||||
<!-- Begin Nose Panel -->
|
||||
<panel name="shape_nose_tab_holder" title="鼻">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_nose_accordion">
|
||||
<accordion_tab name="shape_nose_tab" title="鼻"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Nose Panel -->
|
||||
<!-- Begin Mouth Panel -->
|
||||
<panel name="shape_mouth_tab_holder" title="口">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_mouth_accordion">
|
||||
<accordion_tab name="shape_mouth_tab" title="口"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Mouth Panel -->
|
||||
<!-- Begin Chin Panel -->
|
||||
<panel name="shape_chin_tab_holder" title="顎">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_chin_accordion">
|
||||
<accordion_tab name="shape_chin_tab" title="顎"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Chin Panel -->
|
||||
<!-- Begin Torso Panel -->
|
||||
<panel name="shape_torso_tab_holder" title="上半身">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_torso_accordion">
|
||||
<accordion_tab name="shape_torso_tab" title="上半身"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Torso Panel -->
|
||||
<!-- Begin Legs Panel -->
|
||||
<panel name="shape_legs_tab_holder" title="脚">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shape_legs_accordion">
|
||||
<accordion_tab name="shape_legs_tab" title="脚"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Legs Panel -->
|
||||
</tab_container>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_shirt_panel">
|
||||
<panel name="avatar_shirt_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Shirt Panel -->
|
||||
<panel name="shirt_main_tab_holder" title="シャツ">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shirt_main_accordion">
|
||||
<accordion_tab name="shirt_main_tab" title="シャツ"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Shirt Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_shoes_panel">
|
||||
<panel name="avatar_shoes_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Shoes Panel -->
|
||||
<panel name="shoes_main_tab_holder" title="靴">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="shoes_main_accordion">
|
||||
<accordion_tab name="shoes_main_tab" title="靴"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Shoes Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_skin_panel">
|
||||
<panel name="avatar_skin_color_panel">
|
||||
<texture_picker label="頭" name="Head" tool_tip="クリックで画像を選択します。"/>
|
||||
<texture_picker label="上半身" name="Upper Body" tool_tip="クリックで画像を選択します。"/>
|
||||
<texture_picker label="下半身" name="Lower Body" tool_tip="クリックで画像を選択します。"/>
|
||||
</panel>
|
||||
<tab_container name="wearable_accordion">
|
||||
<!-- Begin Skin Color Panel -->
|
||||
<panel name="skin_color_tab_holder" title="肌の色">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="skin_color_accordion">
|
||||
<accordion_tab name="skin_color_tab" title="肌の色"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Skin Color Panel -->
|
||||
<!-- Begin Face Detail Panel -->
|
||||
<panel name="skin_face_tab_holder" title="顔の詳細">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="skin_face_accordion">
|
||||
<accordion_tab name="skin_face_tab" title="顔の詳細"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Face Detail Panel -->
|
||||
<!-- Begin Makeup Panel -->
|
||||
<panel name="skin_makeup_holder" title="メイクアップ">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="skin_makeup_accordion">
|
||||
<accordion_tab name="skin_makeup_tab" title="メイクアップ"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Makeup Panel -->
|
||||
<!-- Begin Body Detail Panel -->
|
||||
<panel name="skin_body_holder" title="身体の詳細">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="skin_body_accordion">
|
||||
<accordion_tab name="skin_body_tab" title="身体の詳細"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Body Detail Panel -->
|
||||
</tab_container>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_skirt_panel">
|
||||
<panel name="avatar_skirt_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Skirt Panel -->
|
||||
<panel name="skirt_main_tab_holder" title="スカート">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="skirt_main_accordion">
|
||||
<accordion_tab name="skirt_main_tab" title="スカート"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Skirt Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_socks_panel">
|
||||
<panel name="avatar_socks_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Socks Panel -->
|
||||
<panel name="socks_main_tab_holder" title="靴下">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="socks_main_accordion">
|
||||
<accordion_tab name="socks_main_tab" title="靴下"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Socks Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel name="edit_underpants_panel">
|
||||
<panel name="avatar_underpants_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Underpants Panel -->
|
||||
<panel name="underpants_main_tab_holder" title="下着(下半身)">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="underpants_main_accordion">
|
||||
<accordion_tab name="underpants_main_tab" title="下着(下半身)"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Underpants Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="edit_undershirt_panel">
|
||||
<panel name="avatar_undershirt_color_panel">
|
||||
<texture_picker label="生地" name="Fabric" tool_tip="クリックで画像を選択します。"/>
|
||||
<color_swatch label="色/色彩" name="Color/Tint" tool_tip="クリックでカラーピッカーを開きます。"/>
|
||||
</panel>
|
||||
<!-- Begin Undershirt Panel -->
|
||||
<panel name="undershirt_main_tab_holder" title="下着(上半身)">
|
||||
<!-- Viewer demands an accordion here, so we provide one -->
|
||||
<accordion name="undershirt_main_accordion">
|
||||
<accordion_tab name="undershirt_main_tab" title="下着(上半身)"/>
|
||||
</accordion>
|
||||
</panel>
|
||||
<!-- End Undershirt Panel -->
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,133 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel label="衣装" name="panel_edit_wearable">
|
||||
<string name="edit_shape_title">
|
||||
シェイプの編集中
|
||||
</string>
|
||||
<string name="edit_skin_title">
|
||||
スキンの編集中
|
||||
</string>
|
||||
<string name="edit_hair_title">
|
||||
髪の編集中
|
||||
</string>
|
||||
<string name="edit_eyes_title">
|
||||
目の編集中
|
||||
</string>
|
||||
<string name="edit_shirt_title">
|
||||
スカートの編集中
|
||||
</string>
|
||||
<string name="edit_pants_title">
|
||||
ズボンの編集中
|
||||
</string>
|
||||
<string name="edit_shoes_title">
|
||||
靴の編集中
|
||||
</string>
|
||||
<string name="edit_socks_title">
|
||||
靴下の編集中
|
||||
</string>
|
||||
<string name="edit_jacket_title">
|
||||
ジャケットの編集中
|
||||
</string>
|
||||
<string name="edit_skirt_title">
|
||||
スカートの編集中
|
||||
</string>
|
||||
<string name="edit_gloves_title">
|
||||
手袋の編集中
|
||||
</string>
|
||||
<string name="edit_undershirt_title">
|
||||
下着(上半身)の編集中
|
||||
</string>
|
||||
<string name="edit_underpants_title">
|
||||
下着(下半身)の編集中
|
||||
</string>
|
||||
<string name="edit_alpha_title">
|
||||
アルファマスクの編集中
|
||||
</string>
|
||||
<string name="edit_tattoo_title">
|
||||
タトゥの編集中
|
||||
</string>
|
||||
<string name="edit_universal_title">
|
||||
ユニバーサルの編集中
|
||||
</string>
|
||||
<string name="edit_physics_title">
|
||||
物理作用の編集中
|
||||
</string>
|
||||
<string name="shape_desc_text">
|
||||
シェイプ:
|
||||
</string>
|
||||
<string name="skin_desc_text">
|
||||
スキン:
|
||||
</string>
|
||||
<string name="hair_desc_text">
|
||||
髪:
|
||||
</string>
|
||||
<string name="eyes_desc_text">
|
||||
目:
|
||||
</string>
|
||||
<string name="shirt_desc_text">
|
||||
スカート:
|
||||
</string>
|
||||
<string name="pants_desc_text">
|
||||
ズボン:
|
||||
</string>
|
||||
<string name="shoes_desc_text">
|
||||
靴:
|
||||
</string>
|
||||
<string name="socks_desc_text">
|
||||
靴下:
|
||||
</string>
|
||||
<string name="jacket_desc_text">
|
||||
ジャケット:
|
||||
</string>
|
||||
<string name="skirt_desc_text">
|
||||
スカート:
|
||||
</string>
|
||||
<string name="gloves_desc_text">
|
||||
手袋:
|
||||
</string>
|
||||
<string name="undershirt_desc_text">
|
||||
下着(上半身):
|
||||
</string>
|
||||
<string name="underpants_desc_text">
|
||||
下着(下半身):
|
||||
</string>
|
||||
<string name="alpha_desc_text">
|
||||
アルファマスク:
|
||||
</string>
|
||||
<string name="tattoo_desc_text">
|
||||
タトゥ:
|
||||
</string>
|
||||
<string name="universal_desc_text">
|
||||
ユニバーサル:
|
||||
</string>
|
||||
<string name="physics_desc_text">
|
||||
物理作用:
|
||||
</string>
|
||||
<!-- Default width of the button should be to show it without label.
|
||||
Button will be extedned in code to show whole label when wearable is being changed.
|
||||
-->
|
||||
<labeled_back_button label="保存" name="back_btn" tool_tip="アウトフィットの編集に戻ります。"/>
|
||||
<text name="edit_wearable_title" value="シェイプの編集"/>
|
||||
<panel label="シャツ" name="wearable_type_panel">
|
||||
<text name="description_text" value="シェイプ:"/>
|
||||
<radio_group name="sex_radio">
|
||||
<radio_item name="sex_male" tool_tip="男性"/>
|
||||
<radio_item name="sex_female" tool_tip="女性"/>
|
||||
</radio_group>
|
||||
<!-- graphical labels for the radio buttons above -->
|
||||
<icon name="male_icon" tool_tip="男性"/>
|
||||
<icon name="female_icon" tool_tip="女性"/>
|
||||
</panel>
|
||||
<panel name="button_panel">
|
||||
<layout_stack name="button_panel_ls">
|
||||
<layout_panel name="save_as_btn_lp">
|
||||
<button label="名前をつけて保存" name="save_as_button"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="revert_btn_lp">
|
||||
<button label="変更の取り消し" name="revert_button"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="import_btn_lp">
|
||||
<button label="インポート" name="import_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel label="もの" name="main inventory panel">
|
||||
<panel.string name="ItemcountFetching">
|
||||
[ITEM_COUNT]個のアイテムを取得しています…。[FILTER]
|
||||
</panel.string>
|
||||
<panel.string name="ItemcountCompleted">
|
||||
[ITEM_COUNT]個のアイテムの取得が完了しました。[FILTER]
|
||||
</panel.string>
|
||||
<panel.string name="ItemcountUnknown">
|
||||
[ITEM_COUNT]個のアイテムを取得しました。[FILTER]
|
||||
</panel.string>
|
||||
<panel.string name="inventory_title">インベントリ</panel.string>
|
||||
<panel.string name="default_mode_btn">Multi_Folder_Mode</panel.string>
|
||||
<panel.string name="single_folder_mode_btn">Single_Folder_Mode</panel.string>
|
||||
<menu_bar name="inventory_menu_bar">
|
||||
<menu label="インベントリ" tear_off="true" name="inventory_inventory_menu">
|
||||
<menu_item_call name="inventory_open" label="開く"/>
|
||||
<menu_item_call name="inventory_share" label="共有"/>
|
||||
<menu_item_call name="replace_links" label="リンクの置き換え"/>
|
||||
<menu_item_call name="inventory_new_window" label="新しいウィンドウ"/>
|
||||
<menu_item_check label="保護フォルダ" name="Protected Folders"/>
|
||||
<menu_item_check label="インベントリ設定…" name="inv_settings"/>
|
||||
<menu_item_check label="一覧表示" name="list_view"/>
|
||||
<menu_item_check label="ギャラリー表示" name="gallery_view"/>
|
||||
<menu_item_check label="複合表示" name="combination_view"/>
|
||||
<menu_item_check label="ダブルクリックでオブジェクトを追加" name="add_inv_toggle"/>
|
||||
<menu_item_check label="ダブルクリックで衣装を追加" name="add_invclothing_toggle"/>
|
||||
<menu_item_call name="inventory_show_filters" label="フィルタを表示"/>
|
||||
<menu_item_call name="inventory_reset_filters" label="フィルタをリセット"/>
|
||||
<menu_item_call name="inventory_close_all_folders" label="全てのフォルダを折り畳む"/>
|
||||
<menu_item_call name="inventory_empty_trash" label="ゴミ箱を空に"/>
|
||||
</menu>
|
||||
<menu label="作成" name="inventory_create_menu">
|
||||
<menu_item_call name="inventory_new_folder" label="新しいフォルダ"/>
|
||||
<menu_item_call name="inventory_new_script" label="新しいスクリプト"/>
|
||||
<menu_item_call name="inventory_new_note" label="新しいノートカード"/>
|
||||
<menu_item_call name="inventory_new_gesture" label="新しいジェスチャー"/>
|
||||
<menu_item_call name="inventory_new_material" label="新しいマテリアル"/>
|
||||
<menu name="inventory_new_clothes" label="新しい衣装">
|
||||
<menu_item_call name="inventory_new_shirt" label="新しいシャツ"/>
|
||||
<menu_item_call name="inventory_new_pants" label="新しいズボン"/>
|
||||
<menu_item_call name="inventory_new_shoes" label="新しい靴"/>
|
||||
<menu_item_call name="inventory_new_socks" label="新しい靴下"/>
|
||||
<menu_item_call name="inventory_new_jacket" label="新しいジャケット"/>
|
||||
<menu_item_call name="inventory_new_skirt" label="新しいスカート"/>
|
||||
<menu_item_call name="inventory_new_gloves" label="新しい手袋"/>
|
||||
<menu_item_call name="inventory_new_undershirt" label="新しい下着(上半身)"/>
|
||||
<menu_item_call name="inventory_new_underpants" label="新しい下着(下半身)"/>
|
||||
<menu_item_call name="inventory_new_tattoo" label="新しいタトゥ"/>
|
||||
<menu_item_call name="inventory_new_universal" label="新しいユニバーサル"/>
|
||||
<menu_item_call name="inventory_new_alpha" label="新しいアルファ"/>
|
||||
<menu_item_call name="inventory_new_physics" label="新しい物理作用"/>
|
||||
</menu>
|
||||
<menu name="inventory_new_body_parts" label="新しい身体部位">
|
||||
<menu_item_call name="inventory_new_shape" label="新しいシェイプ"/>
|
||||
<menu_item_call name="inventory_new_skin" label="新しいスキン"/>
|
||||
<menu_item_call name="inventory_new_hair" label="新しい髪型"/>
|
||||
<menu_item_call name="inventory_new_eyes" label="新しい目"/>
|
||||
</menu>
|
||||
<menu label="新しい自然環境の設定" name="New Settings">
|
||||
<menu_item_call label="新しい空" name="New Sky"/>
|
||||
<menu_item_call label="新しい水面" name="New Water"/>
|
||||
<menu_item_call label="新しいデイサイクル" name="New Day Cycle"/>
|
||||
</menu>
|
||||
</menu>
|
||||
<!-- TODO: try to make these check items that actually reflect their state -Zi -->
|
||||
<menu label="並べ替え" name="inventory_sort_menu">
|
||||
<menu_item_check name="inventory_sort_by_name" label="名前で"/>
|
||||
<menu_item_check name="inventory_sort_by_date" label="日付で"/>
|
||||
<menu_item_check name="inventory_sort_folders_by_name" label="フォルダは常に名前順に"/>
|
||||
<menu_item_check name="inventory_sort_system_on_top" label="システムフォルダを上に"/>
|
||||
</menu>
|
||||
<menu label="検索" name="inventory_search_menu">
|
||||
<menu_item_check name="inventory_search_by_name" label="名前で"/>
|
||||
<menu_item_check name="inventory_search_by_creator" label="制作者で"/>
|
||||
<menu_item_check name="inventory_search_by_description" label="説明で"/>
|
||||
<menu_item_check name="inventory_search_by_uuid" label="UUIDで"/>
|
||||
<menu_item_check name="inventory_search_by_all" label="すべてで"/>
|
||||
<menu_item_check name="inventory_filter_show_links" label="リンクを表示"/>
|
||||
<menu_item_check name="inventory_filter_only_links" label="リンクのみ表示"/>
|
||||
<menu_item_check name="inventory_filter_hide_links" label="リンクを隠す"/>
|
||||
<menu_item_check name="inventory_filter_only_modify" label="修正可能のみ"/>
|
||||
<menu_item_check name="inventory_filter_only_copy" label="コピー可能のみ"/>
|
||||
<menu_item_check name="inventory_filter_only_transfer" label="譲渡可能のみ"/>
|
||||
<menu_item_check name="inventory_filter_coalesced_objects_only" label="複合のみ"/>
|
||||
</menu>
|
||||
</menu_bar>
|
||||
<layout_stack name="top_stack">
|
||||
<layout_panel name="nav_buttons">
|
||||
<button name="back_btn" tool_tip="戻ります。"/>
|
||||
<button name="forward_btn" tool_tip="進みます。"/>
|
||||
<button name="up_btn" tool_tip="上の階層に移動します。"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="filter_panel">
|
||||
<filter_editor label="インベントリをフィルタ" name="inventory search editor" tool_tip="検索する単語を1つ以上入力し、「+」で区切ってください。"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<layout_stack name="ctrl_stack">
|
||||
<layout_panel name="filter_ctrls">
|
||||
<text name="filter_label" width="50" value="フィルタ:"/>
|
||||
<combo_box name="filter_combo_box">
|
||||
<combo_box.item value="filter_type_all" label="すべての種類"/>
|
||||
<combo_box.item value="filter_separator" label="──────"/>
|
||||
<combo_box.item value="filter_type_animations" label="アニメーション"/>
|
||||
<combo_box.item value="filter_type_calling_cards" label="コーリングカード"/>
|
||||
<combo_box.item value="filter_type_clothing" label="衣装/身体部位"/>
|
||||
<combo_box.item value="filter_type_gestures" label="ジェスチャー"/>
|
||||
<combo_box.item value="filter_type_landmarks" label="ランドマーク"/>
|
||||
<combo_box.item value="filter_type_notecards" label="ノートカード"/>
|
||||
<combo_box.item value="filter_type_objects" label="オブジェクト"/>
|
||||
<combo_box.item value="filter_type_scripts" label="スクリプト"/>
|
||||
<combo_box.item value="filter_type_sounds" label="サウンド"/>
|
||||
<combo_box.item value="filter_type_textures" label="テクスチャ"/>
|
||||
<combo_box.item value="filter_type_snapshots" label="スナップショット"/>
|
||||
<combo_box.item value="filter_type_materials" label="マテリアル"/>
|
||||
<combo_box.item value="filter_type_settings" label="自然環境の設定"/>
|
||||
<!-- [AS:Chanayane] Search folders only -->
|
||||
<combo_box.item value="filter_type_folders" label="フォルダ"/>
|
||||
<!-- [/AS:Chanayane] -->
|
||||
<combo_box.item value="filter_type_coalesced" label="複合のみ"/>
|
||||
<combo_box.item value="filter_type_custom" label="カスタム…"/>
|
||||
</combo_box>
|
||||
<menu_button tool_tip="検索表示のオプションを表示します。" name="options_visibility_btn"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
<panel name="default_inventory_panel">
|
||||
<tab_container name="inventory filter tabs">
|
||||
<inventory_panel label="インベントリ" name="All Items"/>
|
||||
<recent_inventory_panel label="新着アイテム" name="Recent Items"/>
|
||||
<worn_inventory_panel label="着用中" name="Worn Items"/>
|
||||
</tab_container>
|
||||
</panel>
|
||||
<panel name="bottom_panel">
|
||||
<panel name="options_gear_btn_panel">
|
||||
<menu_button tool_tip="追加のオプションを表示します。" name="options_gear_btn"/>
|
||||
</panel>
|
||||
<panel name="add_btn_panel">
|
||||
<button name="add_btn" tool_tip="新しいアイテムを作成します。"/>
|
||||
</panel>
|
||||
<panel name="new_inventory_panel">
|
||||
<button name="new_inv_btn" tool_tip="新しいインベントリウィンドウを表示します。"/>
|
||||
</panel>
|
||||
<panel name="view_mode_panel">
|
||||
<button name="view_mode_btn" tool_tip="表示モードを切り替えます。"/>
|
||||
</panel>
|
||||
<panel name="dummy_panel">
|
||||
<text tool_tip="[ITEMS]個のアイテム、[CATEGORIES]個のフォルダがあります。" name="ItemcountText">
|
||||
要素
|
||||
</text>
|
||||
</panel>
|
||||
<panel name="trash_btn_panel">
|
||||
<dnd_button name="trash_btn" tool_tip="選択されたアイテムを削除します。"/>
|
||||
</panel>
|
||||
</panel>
|
||||
</panel>
|
||||
|
|
@ -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">
|
||||
"[REGION]" üçün
|
||||
|
|
|
|||
|
|
@ -202,9 +202,16 @@
|
|||
<color_swatch name="console_background" tool_tip="Konsol rəngini seçin"/>
|
||||
<slider label="Şəffaflıq:" name="console_background_opacity" tool_tip="Konsol fonunun şəffaflığını seçin"/>
|
||||
<text name="preferences_search_label">
|
||||
Seçim axtarışının rəngi:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_color" tool_tip="Seçim axtarışının rəngini seçin"/>
|
||||
Seçim axtarışının rəngləri:
|
||||
</text>
|
||||
<text name="preferences_search_bg_label" width="35">
|
||||
Fon:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_bg_color" tool_tip="Seçim axtarışının fon rəngini seçin"/>
|
||||
<text name="preferences_search_font_label">
|
||||
Şrift:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_front_color" tool_tip="Seçim axtarışının şrift rəngini seçin"/>
|
||||
<text name="area_search_beacon_color_label">
|
||||
Axtarış zonasının işarənin rəngi:
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -145,7 +145,10 @@
|
|||
<string name="title_LEFT_PEC">Linke Brustmuskeln</string>
|
||||
<string name="title_RIGHT_PEC">Rechte Brustmuskeln</string>
|
||||
<string name="LoadPoseLabel">Pose laden</string>
|
||||
<string name="SavePoseLabel">Pose speichern</string>
|
||||
<string name="LoadDiffLabel">Diff. laden</string>
|
||||
<string name="SaveDiffLabel">Diff. speichern</string>
|
||||
<string name="OverWriteLabel">Überschreiben?</string>
|
||||
|
||||
<!-- The layout is a vertical stack of 3 rows, and each row a horizontal stack of panels -->
|
||||
<layout_stack name="poser_stack">
|
||||
|
|
@ -192,8 +195,8 @@
|
|||
<scroll_list name="hand_presets_scroll">
|
||||
<scroll_list.columns label="Name Vorauswahl" name="name"/>
|
||||
</scroll_list>
|
||||
<button label="Links setzen" name="button_loadHandPoseLeft" tool_tip="Doppelklicken um linke Hand auf ausgewählte Vorauswahl zu setzen"/>
|
||||
<button label="Rechts setzen" name="button_loadHandPoseRight" tool_tip="Doppelklicken um rechte Hand auf ausgewählte Vorauswahl zu setzen"/>
|
||||
<button label="Links setzen" name="button_loadHandPoseLeft" tool_tip="Klicken um linke Hand auf ausgewählte Vorauswahl zu setzen"/>
|
||||
<button label="Rechts setzen" name="button_loadHandPoseRight" tool_tip="Klicken um rechte Hand auf ausgewählte Vorauswahl zu setzen"/>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<panel title="Sonst." name="misc_joints_panel">
|
||||
|
|
@ -212,7 +215,7 @@
|
|||
</scroll_list>
|
||||
<button name="refresh_avatars" tool_tip="Liste der Avatar und Animeshe aktualisieren"/>
|
||||
<button label="Posieren starten" label_selected="Posieren stoppen" tool_tip="Posieren des ausgewählten Avatar oder Animesh starten sofern berechtigt" name="start_stop_posing_button"/>
|
||||
<button label="Auf T-Pose setzen" tool_tip="Doppelklicken, um den ausgewählten Avatar auf eine T-Pose zu setzen" name="set_t_pose_button"/>
|
||||
<button label="Auf T-Pose setzen" tool_tip="Klicken, um den ausgewählten Avatar auf eine T-Pose zu setzen" name="set_t_pose_button"/>
|
||||
</panel>
|
||||
<panel title="Einst." name="settings_panel">
|
||||
<text name="trackpad_sensitivity_label">
|
||||
|
|
@ -223,6 +226,7 @@
|
|||
<check_box name="stop_posing_on_close_checkbox" label="Beim Schließen stoppen" tool_tip="Die Pose beim Schließen nicht zu stoppen kann hilfreich sein, um die bisher getätigte Arbeit nicht zu verlieren."/>
|
||||
<check_box name="reset_base_rotation_on_edit_checkbox" label="Basis-Rot. beim Edit. zurück." tool_tip="Wenn das erste Mal eine Pose bearbeitet wird, diese auf Null zurücksetzen. Hierdurch eine eine komplette Pose und nicht nur die Differenz gespeichert werden. Ein grüner Haken erscheint neben jedem Gelenk, dass auf Null-basierend exportiert wurde."/>
|
||||
<check_box name="also_save_bvh_checkbox" label="BHV beim Speichern erst." tool_tip="Wenn die Pose gespeichert wird, wird ebenfalls eine BHV-Datei erstellt, die via Bauen > Hochladen > Animation hochgeladen und zum Posieren vom eigenen Avatar oder anderen Avataren verwendet werden kann. Hierzu muss die Basis der Gelenke auf Null gesetzt werden, da BHV nicht von anderen Posen abgeleitet wird."/>
|
||||
<check_box name="confirm_overwrite_on_save_checkbox" label="Überschreiben bestätigen" tool_tip="Wenn die Pose gespeichert wird und die Datei bereits existiert, muss der Speichern-Button erneut geklickt werden um zu bestätigen, dass Sie die Datei überschreiben möchten."/>
|
||||
</panel>
|
||||
</tab_container>
|
||||
<button name="toggleVisualManipulators" tool_tip="Visuelle Manipulatoren an-/ausschalten" />
|
||||
|
|
@ -265,12 +269,12 @@
|
|||
<panel name="trackball_button_panel">
|
||||
<button name="undo_change" tool_tip="Letzte Änderung rückgängig machen"/>
|
||||
<button name="button_redo_change" tool_tip="Letzte Rotationsänderung wiederherstellen"/>
|
||||
<button name="poser_joint_reset" tool_tip="Doppelklicken, um alle ausgewählten Körperteile auf die Ursprungswerte zurückzusetzen."/>
|
||||
<button name="poser_joint_reset" tool_tip="Klicken, um alle ausgewählten Körperteile auf die Ursprungswerte zurückzusetzen."/>
|
||||
<button name="delta_mode_toggle" tool_tip="Falls mehrere Gelenke geändert werden, diese um denselben Wert ändern anstatt in dieselbe Rotation zu versetzen. Wird auch zur Verhinderung von Gimbal Lock verwendet."/>
|
||||
<button label="Spieg." name="button_toggleMirrorRotation" tool_tip="Änderungen an gegenüberliegendem Gelenk spiegeln."/>
|
||||
<button label="Sym." name="button_toggleSympatheticRotation" tool_tip="Gegenüberliegendes Gelenk gleichermaßen anpassen."/>
|
||||
<button label="Kopie L > P" name="button_symmetrize_left_to_right" tool_tip="Doppelklicken, um Änderung von linker Seite zur rechten Seite zu kopieren." />
|
||||
<button label="Kopie P > L" name="button_symmetrize_right_to_left" tool_tip="Doppelklicken, um Änderung von rechter Seite zur linken Seite zu kopieren." />
|
||||
<button label="Kopie L > P" name="button_symmetrize_left_to_right" tool_tip="Klicken, um Änderung von linker Seite zur rechten Seite zu kopieren." />
|
||||
<button label="Kopie P > L" name="button_symmetrize_right_to_left" tool_tip="Klicken, um Änderung von rechter Seite zur linken Seite zu kopieren." />
|
||||
</panel>
|
||||
</panel>
|
||||
<panel name="poses_loadSave">
|
||||
|
|
|
|||
|
|
@ -5134,17 +5134,9 @@ Möchten Sie fortfahren?
|
|||
<usetemplate name="okbutton" yestext="OK"/>
|
||||
</notification>
|
||||
<notification name="WaterExclusionSurfacesWarning">
|
||||
Aktivieren von „Wasser versecken“ überschreibt die Auswahl für Textur, Holprigkeit und Glänzen.
|
||||
Aktivieren von „Wasser verstecken“ überschreibt die Auswahl für Textur, Holprigkeit und Glänzen.
|
||||
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Fortsetzen"/>
|
||||
</notification>
|
||||
<notification name="TextureDiscardBackgrounded">
|
||||
Um die Systemleistung zu verbessern hat [APP_NAME] die Nutzung von Textur-Speicher nach [DELAY] Sekunden im Hintergrund reduziert. Es kann einen Moment dauern, bis die Textur-Qualität wieder den normalen Standard erreicht.
|
||||
<usetemplate ignoretext="Über Nutzung von Textur-Speicher im Hintergrund hinweisen" name="okcancelignore" yestext="OK" notext="Deaktivieren"/>
|
||||
</notification>
|
||||
<notification name="TextureDiscardMinimized">
|
||||
Um die Systemleistung zu verbessern hat [APP_NAME] die Nutzung von Textur-Speicher nach [DELAY] Sekunden im minimierten Zustand reduziert. Es kann einen Moment dauern, bis die Textur-Qualität wieder den normalen Standard erreicht.
|
||||
<usetemplate ignoretext="Über Nutzung von Textur-Speicher im minimierten Zustand hinweisen" name="okcancelignore" yestext="OK" notext="Deaktivieren"/>
|
||||
</notification>
|
||||
|
||||
<notification name="NoValidEnvSettingFound">
|
||||
Keine gültige Einstellung für die Umgebung ausgewählt.
|
||||
|
|
@ -5782,7 +5774,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">
|
||||
|
|
|
|||
|
|
@ -201,10 +201,17 @@
|
|||
<slider name="console_background_opacity" label="Deckkraft:" tool_tip="Deckkraft für Konsole auswählen"/>
|
||||
<slider label="Deckkraft für Schwebe-Text:" name="FSHudTextBackgroundOpacity" tool_tip="Deckkraft für Hintergrund von Schwebe-Text festlegen"/>
|
||||
<text name="preferences_search_label">
|
||||
Farbe für Einstellungssuche:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_color" tool_tip="Farbe für die Hervorhebung der Einstellungssuche"/>
|
||||
<text name="area_search_beacon_color_label">
|
||||
Farben für Einstellungssuche:
|
||||
</text>
|
||||
<text name="preferences_search_bg_label" width ="75">
|
||||
Hintergrund:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_bg_color" tool_tip="Hintergrundfarbe für die Hervorhebung der Einstellungssuche"/>
|
||||
<text name="preferences_search_font_label" width="60">
|
||||
Schriftart:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_font_color" tool_tip="Schriftfarbe für die Hervorhebung der Einstellungssuche"/>
|
||||
<text name="area_search_beacon_color_label" left="300">
|
||||
Farbe für Markierung der Umgebungssuche:
|
||||
</text>
|
||||
|
||||
|
|
|
|||
|
|
@ -24,9 +24,8 @@
|
|||
<combo_box.item label="BMP (verlustfrei)" name="BMP"/>
|
||||
</combo_box>
|
||||
<slider label="Qualität:" name="image_quality_slider"/>
|
||||
<text name="local_remember_location_sessions_text">
|
||||
Ort und Dateiname zwischen Sitzungen speichern
|
||||
</text>
|
||||
<check_box name="local_remember_location_sessions" label="Ort und Dateiname merken"/>
|
||||
<check_box name="local_use_timestamp" label="Datum/Zeit in Dateiname verw."/>
|
||||
<button label="▶ Auswahl" name="cancel_btn"/>
|
||||
<flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern">
|
||||
<flyout_button.item label="Speichern" name="save_item"/>
|
||||
|
|
|
|||
|
|
@ -165,7 +165,7 @@ Additional code generously contributed to Firestorm by:
|
|||
top_pad="4"
|
||||
width="450"
|
||||
wrap="true">
|
||||
Aira Yumi, Albatroz Hird, Alexie Birman, Andromeda Rage, Angus Boyd, Animats, Armin Weatherwax, Ayane Lyla, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Dax Dupont, Denver Maksim, Dragonborn Forzane, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hecklezz, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, minerjr, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, rafak360, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, 小滢 Zi Ying, Zwagoth Klaar and others.
|
||||
Aira Yumi, Albatroz Hird, Alexie Birman, Andromeda Rage, Angus Boyd, Animats, Armin Weatherwax, Ayane Lyla, Casper Warden, Chalice Yao, Chaser Zaks, Chorazin Allen, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Dax Dupont, Denver Maksim, Dragonborn Forzane, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hecklezz, Hitomi Tiponi, humbletim, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Laurent Bechir, Logue Takacs, Magne Metaverse LLC, Magus Freston, Makidoll, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, minerjr, Mister Acacia, MorganMegan, Morgan Pennent, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Oren Hurvitz, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, rafak360, Rebecca Ashbourne, Revolution Smythe, Romka Swallowtail, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sekkmer, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Tapple Gao, Testicular Slingshot, Thickbrick Sleaford, Ubit Umarov, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, 小滢 Zi Ying, Zwagoth Klaar and others.
|
||||
</text>
|
||||
<text
|
||||
follows="top|left"
|
||||
|
|
|
|||
|
|
@ -13969,7 +13969,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 -->
|
||||
|
||||
|
|
|
|||
|
|
@ -1823,8 +1823,19 @@
|
|||
height="12"
|
||||
name="preferences_search_label"
|
||||
top_pad="10"
|
||||
width="220">
|
||||
Preferences Search Highlight Color:
|
||||
width="400">
|
||||
Preferences Search Highlight Colors:
|
||||
</text>
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="40"
|
||||
height="12"
|
||||
name="preferences_search_bg_label"
|
||||
top_pad="15"
|
||||
width="80">
|
||||
Background:
|
||||
</text>
|
||||
<color_swatch
|
||||
can_apply_immediately="true"
|
||||
|
|
@ -1832,27 +1843,56 @@
|
|||
height="24"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left="40"
|
||||
top_pad="5"
|
||||
name="preferences_search_color"
|
||||
tool_tip="Choose preferences search highlight Color"
|
||||
left_pad="10"
|
||||
top_delta="-6"
|
||||
name="preferences_search_bg_color"
|
||||
tool_tip="Choose preferences search highlight Background Color"
|
||||
width="44">
|
||||
<color_swatch.init_callback
|
||||
function="Pref.getUIColor"
|
||||
parameter="SearchableControlHighlightColor" />
|
||||
parameter="SearchableControlHighlightBgColor" />
|
||||
<color_swatch.commit_callback
|
||||
function="Pref.applyUIColor"
|
||||
parameter="SearchableControlHighlightColor" />
|
||||
parameter="SearchableControlHighlightBgColor" />
|
||||
</color_swatch>
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="250"
|
||||
left_pad="20"
|
||||
height="12"
|
||||
name="preferences_search_font_label"
|
||||
top_delta="6"
|
||||
width="40">
|
||||
Font:
|
||||
</text>
|
||||
<color_swatch
|
||||
can_apply_immediately="true"
|
||||
follows="left|top"
|
||||
height="24"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
top_delta="-6"
|
||||
name="preferences_search_font_color"
|
||||
tool_tip="Choose preferences search highlight Font Color"
|
||||
width="44">
|
||||
<color_swatch.init_callback
|
||||
function="Pref.getUIColor"
|
||||
parameter="SearchableControlHighlightFontColor" />
|
||||
<color_swatch.commit_callback
|
||||
function="Pref.applyUIColor"
|
||||
parameter="SearchableControlHighlightFontColor" />
|
||||
</color_swatch>
|
||||
|
||||
<text
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
left="340"
|
||||
height="12"
|
||||
name="area_search_beacon_color_label"
|
||||
top_delta="-17"
|
||||
width="400">
|
||||
top_delta="-21"
|
||||
width="310">
|
||||
Area search beacon Color:
|
||||
</text>
|
||||
<color_swatch
|
||||
|
|
@ -1861,7 +1901,7 @@
|
|||
height="24"
|
||||
label_height="0"
|
||||
layout="topleft"
|
||||
left="260"
|
||||
left="350"
|
||||
top_pad="5"
|
||||
name="area_search_beacon_color"
|
||||
tool_tip="Choose area search beacon color"
|
||||
|
|
|
|||
|
|
@ -169,22 +169,22 @@
|
|||
top_pad="8"
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
label_width="200"
|
||||
label="Persist location and filename"
|
||||
left="10"
|
||||
width="20"
|
||||
width="220"
|
||||
name="local_remember_location_sessions"
|
||||
control_name="FSRememberSnapshotPathSessions"/>
|
||||
<text
|
||||
<check_box
|
||||
top_pad="6"
|
||||
follows="left|top"
|
||||
layout="topleft"
|
||||
follows="top|left"
|
||||
height="140"
|
||||
length="1"
|
||||
name="local_remember_location_sessions_text"
|
||||
top_delta="-6"
|
||||
left_delta="20"
|
||||
width="200"
|
||||
wrap="true">
|
||||
Save location and filename between sessions
|
||||
</text>
|
||||
label_width="200"
|
||||
label="Include date/time in filename"
|
||||
left="10"
|
||||
width="220"
|
||||
name="local_use_timestamp"
|
||||
control_name="FSSnapshotLocalNamesWithTimestamps"/>
|
||||
<button
|
||||
follows="right|bottom"
|
||||
height="23"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -181,6 +181,17 @@
|
|||
</text>
|
||||
<color_swatch name="console_background" tool_tip="Elige el color de la consola"/>
|
||||
<slider label="Opacidad:" name="console_background_opacity" tool_tip="Configura la opacidad del fondo de la consola"/>
|
||||
<text name="preferences_search_label">
|
||||
Colores de resaltado de búsqueda de preferencias:
|
||||
</text>
|
||||
<text name="preferences_search_bg_label">
|
||||
Fondo:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_bg_color" tool_tip="Seleccione el color de fondo de resaltado de búsqueda de preferencias"/>
|
||||
<text name="preferences_search_font_label" width="60">
|
||||
Fuente:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_font_color" tool_tip="Seleccione el color de fuente de resaltado de búsqueda de preferencias"/>
|
||||
<check_box name="FSScriptDialogNoTransparency" label="Mostrar los diálogos de script siempre sobre fondo opaco"/>
|
||||
<check_box name="FSGroupNotifyNoTransparency" label="Mostrar los avisos de grupo siempre sobre fondo opaco"/>
|
||||
<check_box name="override_pie_color_checkbox" label="Modificar el color y la opacidad del fondo de los manús circulares:"/>
|
||||
|
|
|
|||
|
|
@ -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 > 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 > 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 > 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 > 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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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'UUID (identifiant universel unique)" name="Copy Asset UUID"/>
|
||||
<menu_item_call label="Copier l'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"/>
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -947,6 +947,21 @@ Assurez-vous que le fichier a l'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'é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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -101,8 +101,11 @@
|
|||
<slider label="Opacité :" name="console_background_opacity" tool_tip="Ajustez l'opacité du fond de la console"/>
|
||||
<slider label="Opacité du fond du texte flottant :" name="FSHudTextBackgroundOpacity" tool_tip="Ajustez l'opacité de l'arrière-plan du texte flottant"/>
|
||||
<text name="preferences_search_label">Surlignage des préférences recherchées :</text>
|
||||
<color_swatch name="preferences_search_color" tool_tip="Sélectionnez la couleur des préférences surlignées par les résultats de recherche"/>
|
||||
<text name="area_search_beacon_color_label">Couleur de la balise de recherche zonière : </text>
|
||||
<text name="preferences_search_bg_label" width="75">Arrière-plan :</text>
|
||||
<color_swatch name="preferences_search_bg_color" tool_tip="Sélectionnez la couleur d'arrière-plan des préférences surlignées par les résultats de recherche"/>
|
||||
<text name="preferences_search_font_label" width="45">Police :</text>
|
||||
<color_swatch name="preferences_search_font_color" tool_tip="Sélectionnez la couleur de police des préférences surlignées par les résultats de recherche"/>
|
||||
<text name="area_search_beacon_color_label" left="300">Couleur de la balise de recherche zonière : </text>
|
||||
<color_swatch name="area_search_beacon_color" tool_tip="Choix de la couleur de la balise de recherche zonière"/>
|
||||
<text name="notecard_editor_color_label">
|
||||
Couleurs des notices :
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -15,10 +15,9 @@
|
|||
<combo_box.item label="BMP (Sans pertes)" name="BMP"/>
|
||||
</combo_box>
|
||||
<slider label="Qualité :" name="image_quality_slider"/>
|
||||
<check_box name="local_remember_location_sessions" label="Cons. emplacement/nom du fichier"/>
|
||||
<check_box label="Incl. date/heure au nom de fichier" name="local_use_timestamp"/>
|
||||
<button label="▶ Sélection" name="cancel_btn"/>
|
||||
<text name="local_remember_location_sessions_text">
|
||||
Enregistrer L'emplacement et le nom du fichier entre les sessions
|
||||
</text>
|
||||
<flyout_button label="Enregistrer" name="save_btn" tool_tip="Enregistrer l'image en tant que fichier">
|
||||
<flyout_button.item label="Enregistrer" name="save_item"/>
|
||||
<flyout_button.item label="Enregistrer sous..." name="saveas_item"/>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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'etichetta che si vuole usare
|
||||
|
|
|
|||
|
|
@ -200,10 +200,17 @@
|
|||
<slider label="Opacità:" name="console_background_opacity" tool_tip="Scegli l'opacità dello sfondo della console"/>
|
||||
<slider label="Opacità sfondo testo fluttuante:" name="FSHudTextBackgroundOpacity" tool_tip="Scegli l'opacità dello sfondo del testo fluttuante" />
|
||||
<text name="preferences_search_label">
|
||||
Risultati di ricerca nelle preferenze:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_color" tool_tip="Scegli il colore"/>
|
||||
<text name="area_search_beacon_color_label">
|
||||
Risultati di ricerca nelle preferenze:
|
||||
</text>
|
||||
<text name="preferences_search_bg_label" width="45">
|
||||
Sfondo:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_bg_color" tool_tip="Scegli il colore di sfondo"/>
|
||||
<text name="preferences_search_font_label" width="60">
|
||||
Carattere:
|
||||
</text>
|
||||
<color_swatch name="preferences_search_font_color" tool_tip="Scegli il colore del carattere"/>
|
||||
<text name="area_search_beacon_color_label" left="260">
|
||||
Raggio di tracciamento (ad es. per Cerca Oggetti):
|
||||
</text>
|
||||
<color_swatch name="area_search_beacon_color" tool_tip="Scegli il colore" />
|
||||
|
|
|
|||
|
|
@ -17,9 +17,7 @@
|
|||
<combo_box.item label="BMP (senza perdite)" name="BMP"/>
|
||||
</combo_box>
|
||||
<slider label="Qualità:" name="image_quality_slider"/>
|
||||
<text name="local_remember_location_sessions_text">
|
||||
Ricorda luogo e nome file tra le sessioni
|
||||
</text>
|
||||
<check_box name="local_remember_location_sessions" label="Ricorda luogo e nome file tra le sessioni"/>
|
||||
<button label="▶ Seleziona" name="cancel_btn"/>
|
||||
<flyout_button label="Salva" name="save_btn" tool_tip="Salva immagine come file">
|
||||
<flyout_button.item label="Salva" name="save_item"/>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue