Merge Firestorm LGPL

master
Ansariel 2019-07-12 20:13:35 +02:00
commit d82f98180c
68 changed files with 676 additions and 172 deletions

View File

@ -1,4 +1,4 @@
First, make sure gcc-4.7 and g++-4.7 are installed.
First, make sure gcc-4.9 and g++-4.9 are installed.
Ensure you can build a stock viewer-development try as described in the SL wiki. Before asking for any help
compiling Firestorm, make sure you can build viewer-development first. If you try and skip this step, you may
@ -15,16 +15,16 @@ mailing list. We've created a non-KDU build target to make this easier. Everywhe
"ReleaseFS_open" instead. This will perform the same build, using openjpeg instead of KDU.
Available premade firestorm-specific build targets:
ReleaseFS (includes KDU, FMODEX)
ReleaseFS_open (no KDU, no FMODEX)
RelWithDebInfoFS_open (no KDU, no FMODEX)
ReleaseFS (includes KDU, FMODSTUDIO)
ReleaseFS_open (no KDU, no FMODSTUDIO)
RelWithDebInfoFS_open (no KDU, no FMODSTUDIO)
To build firestorm:
autobuild build -A64 -c ReleaseFS
Other examples:
autobuild configure -A64 -c ReleaseFS # basic configuration step, don't build, just configure
autobuild configure -A64 -c ReleaseFS -- --clean # clean the output area first, then configure
autobuild configure -A64 -c ReleaseFS # basic configuration step, don't build, just configure
autobuild configure -A64 -c ReleaseFS -- --clean # clean the output area first, then configure
autobuild configure -A64 -c ReleaseFS -- --chan Private-Yourname # configure with a custom channel
autobuild build -A64 -c ReleaseFS --no-configure # default quick rebuild

View File

@ -44,6 +44,7 @@
#include "llvertexbuffer.h"
#include "llviewervisualparam.h"
#include "llfasttimer.h"
#include "llrendertarget.h" // <FS:ND/> For copyContents
//#include "../tools/imdebug/imdebug.h"
@ -1577,14 +1578,19 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
}
alpha_data = new U8[width * height];
mAlphaCache[cache_index] = alpha_data;
// nSight doesn't support use of glReadPixels
if (!LLRender::sNsightDebugSupport)
{
// <FS:Ansariel> Format GL_ALPHA is invalid for glReadPixels
//glReadPixels(x, y, width, height, GL_ALPHA, GL_UNSIGNED_BYTE, alpha_data);
U8* alpha_buffer = new U8[width * height * 4];
glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, alpha_buffer);
if (!LLRenderTarget::getCurrentBoundTarget())
glReadPixels(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, alpha_buffer);
else
LLRenderTarget::getCurrentBoundTarget()->copyContents(x, y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, alpha_buffer);
for (S32 i = 0; i < width * height; ++i)
{
alpha_data[i] = alpha_buffer[i * 4 + 3];

View File

@ -75,14 +75,16 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid)
for (int i = 0; i < drivercount; ++i)
{
system->getDriverInfo(i, NULL, 0, &guid);
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
if (driver_guid == device_uuid)
if (!Check_FMOD_Error(system->getDriverInfo(i, NULL, 0, &guid), "FMOD::System::getDriverInfo"))
{
LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL;
Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver");
return;
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
if (driver_guid == device_uuid)
{
LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL;
Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver");
return;
}
}
}
@ -423,12 +425,14 @@ LLAudioEngine_FMODEX::output_device_map_t LLAudioEngine_FMODEX::getDevices()
{
for (int i = 0; i < drivercount; ++i)
{
memset(r_name, 0, 512);
mSystem->getDriverInfo(i, r_name, 511, &guid);
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
driver_map.insert(std::make_pair(driver_guid, r_name));
memset(r_name, 0, sizeof(r_name));
if (!Check_FMOD_Error(mSystem->getDriverInfo(i, r_name, 511, &guid), "FMOD::System::getDriverInfo"))
{
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
driver_map.insert(std::make_pair(driver_guid, r_name));
LL_INFOS("AppInit") << "LLAudioEngine_FMODEX::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL;
LL_INFOS("AppInit") << "LLAudioEngine_FMODEX::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL;
}
}
}

View File

@ -95,14 +95,16 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid)
for (int i = 0; i < drivercount; ++i)
{
system->getDriverInfo(i, NULL, 0, &guid, &r_samplerate, NULL, &r_channels);
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
if (driver_guid == device_uuid)
if (!Check_FMOD_Error(system->getDriverInfo(i, NULL, 0, &guid, &r_samplerate, NULL, &r_channels), "FMOD::System::getDriverInfo"))
{
LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL;
Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver");
return;
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
if (driver_guid == device_uuid)
{
LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL;
Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver");
return;
}
}
}
@ -353,12 +355,14 @@ LLAudioEngine_FMODSTUDIO::output_device_map_t LLAudioEngine_FMODSTUDIO::getDevic
{
for (int i = 0; i < drivercount; ++i)
{
memset(r_name, 0, 512);
mSystem->getDriverInfo(i, r_name, 511, &guid, &r_samplerate, NULL, &r_channels);
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
driver_map.insert(std::make_pair(driver_guid, r_name));
memset(r_name, 0, sizeof(r_name));
if (!Check_FMOD_Error(mSystem->getDriverInfo(i, r_name, 511, &guid, &r_samplerate, NULL, &r_channels), "FMOD::System::getDriverInfo"))
{
LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid);
driver_map.insert(std::make_pair(driver_guid, r_name));
LL_INFOS("AppInit") << "LLAudioEngine_FMODSTUDIO::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL;
LL_INFOS("AppInit") << "LLAudioEngine_FMODSTUDIO::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL;
}
}
}

View File

@ -656,5 +656,133 @@ void LLRenderTarget::getViewport(S32* viewport)
viewport[3] = mResY;
}
// <FS:ND> Determine version of intel driver. We know anything >= 24 is problematic with glReadPixels
#if LL_WINDOWS && ADDRESS_SIZE == 64
U32 getIntelDriverVersionMajor()
{
if (!gGLManager.mIsIntel)
return 0;
std::string strVersion = gGLManager.mDriverVersionVendorString;
auto i = strVersion.find("Build ");
if (i != std::string::npos)
{
i += sizeof("Build");
while (isspace(strVersion[i]) && strVersion[i])
++i;
auto start = i;
while (strVersion[i] != '.' && strVersion[i])
i++;
if( strVersion[i] )
{
std::string strMajor(strVersion.begin() + start, strVersion.begin() + i);
U32 version = 0;
if (LLStringUtil::convertToU32(strMajor, version))
return version;
}
}
return 0;
}
#endif
//</FD>ND>
// <FS:ND> Copy the contents of this FBO into memory
void LLRenderTarget::copyContents(S32 x, S32 y, S32 w, S32 h, U32 format, U32 type, U8 *buffer)
{
#if LL_WINDOWS && ADDRESS_SIZE == 64
// <FS:ND> If not Intel or driver < 24.*, be done with it
if (!gGLManager.mIsIntel || getIntelDriverVersionMajor() < 24)
{
glReadPixels(x, y, w, h, (GLenum)format, (GLenum)type, buffer);
return;
}
std::vector< GLenum > vErrors;
// BUG-225655/FIRE-24049 some drivers (Intel 64 bit >= 24.* are behaving buggy when glReadPixels is called
if (mFBO)
{
// When a FBO is bound unbind/rebind it.
vErrors.push_back(glGetError());
glBindFramebuffer(GL_FRAMEBUFFER, 0);
vErrors.push_back(glGetError());
glBindFramebuffer(GL_FRAMEBUFFER, mFBO);
vErrors.push_back(glGetError());
glReadPixels(x, y, w, h, (GLenum)format, (GLenum)type, buffer);
vErrors.push_back(glGetError());
}
else
{
llassert_always(type == GL_UNSIGNED_BYTE);
llassert_always(format == GL_RGBA || format == GL_ALPHA);
if (mUsage != LLTexUnit::TT_TEXTURE && mUsage != LLTexUnit::TT_RECT_TEXTURE )
{
LL_WARNS() << "Expected type TT_TEXTURE or TT_RECT_TEXTURE got 0x" << std::setw(8) << std::setfill('0') << std::hex << LLTexUnit::getInternalType(mUsage) <<
" internal type 0x" << std::setw(8) << std::setfill('0') << std::hex << mUsage << LL_ENDL;
}
// When using no FBO and avoid glReadPixels altogether, instead bind the texture and call glGetTexImage
vErrors.push_back(glGetError());
flush();
vErrors.push_back(glGetError());
gGL.getTexUnit(0)->bind(this);
vErrors.push_back(glGetError());
std::string sBuffer(mResX*mResY * 4, 0);
// Would be nice if GL_ALPHA would be allowed for glGetTexImage
glGetTexImage(LLTexUnit::getInternalType(mUsage), 0, GL_RGBA, GL_UNSIGNED_BYTE, &sBuffer[0]);
vErrors.push_back(glGetError());
// Now copy out the data.
// n.b. in case of:
// format == GL_RGBA && x == 0 ** y == 0 and w == mResX && h == mResY
// would could safe all this and glGetTexImage right into buffer
U8 const *pBuffer = reinterpret_cast<U8 const*>(sBuffer.c_str());
pBuffer += (y * mResX * 4); // Adjust to skip to requested y coord
pBuffer += x * 4; // Skip to requested x coord
if (format == GL_RGBA)
{
for (S32 i = y; i < h; ++i)
{
std::memcpy(buffer, pBuffer, w * 4);
pBuffer += mResX * 4; // Skip one full row, row is already x adjusted
buffer += w * 4;
}
}
else if (format == GL_ALPHA)
{
for (S32 i = y; i < h; ++i)
{
for (S32 j = 0; j < w; ++j)
{
*buffer = pBuffer[3];
++buffer;
pBuffer += 4;
}
pBuffer += (mResX - w) * 4; // Skip to end of row
pBuffer += x * 4; // Skip to requested x coordinate again
}
}
gGL.getTexUnit(0)->disable();
vErrors.push_back(glGetError());
}
std::stringstream strm;
for (GLenum err : vErrors )
strm << "0x" << std::hex << (U32)err << " ";
if (vErrors.end() != std::find_if(vErrors.begin(), vErrors.end(), [](GLenum err){return err != GL_NO_ERROR; }))
{
LL_WARNS() << "GL error occured: " << strm.str() << LL_ENDL;
}
#else
// <FS:ND> Every other OS just gets glReadPixels
glReadPixels(x, y, w, h, (GLenum)format, (GLenum)type, buffer);
#endif
}
// </FS:ND>

View File

@ -160,6 +160,10 @@ protected:
LLTexUnit::eTextureType mUsage;
static LLRenderTarget* sBoundTarget;
// <FS:ND> Copy the contents of this FBO into memory
public:
void copyContents(S32 x, S32 y, S32 w, S32 h, U32 format, U32 type, U8 *buffer);
// </FS:ND>
};
#endif

View File

@ -524,9 +524,9 @@ std::string LLUrlEntrySLURL::getLocation(const std::string &url) const
//
LLUrlEntrySecondlifeURL::LLUrlEntrySecondlifeURL()
{
mPattern = boost::regex("((http://([-\\w\\.]*\\.)?(secondlife|lindenlab)\\.com)"
mPattern = boost::regex("((http://([-\\w\\.]*\\.)?(secondlife|lindenlab|tilia-inc)\\.com)"
"|"
"(https://([-\\w\\.]*\\.)?(secondlife|lindenlab)\\.com(:\\d{1,5})?))"
"(https://([-\\w\\.]*\\.)?(secondlife|lindenlab|tilia-inc)\\.com(:\\d{1,5})?))"
"\\/\\S*",
boost::regex::perl|boost::regex::icase);
@ -568,7 +568,7 @@ std::string LLUrlEntrySecondlifeURL::getTooltip(const std::string &url) const
//
LLUrlEntrySimpleSecondlifeURL::LLUrlEntrySimpleSecondlifeURL()
{
mPattern = boost::regex("https?://([-\\w\\.]*\\.)?(secondlife|lindenlab)\\.com(?!\\S)",
mPattern = boost::regex("https?://([-\\w\\.]*\\.)?(secondlife|lindenlab|tilia-inc)\\.com(?!\\S)",
boost::regex::perl|boost::regex::icase);
mIcon = "Hand";

View File

@ -1732,7 +1732,11 @@ if (LINUX)
set_source_files_properties(
llappviewerlinux.cpp
PROPERTIES
COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}"
# <FS:TS> The next line causes a full rebuild of the entire newview
# directory every time the Mercurial revision number changes.
# Instead of doing that, we use the configure tool to build
# fsversionstrings.h with the right numbers in it.
# COMPILE_DEFINITIONS "${VIEWER_CHANNEL_VERSION_DEFINES}"
)
LIST(APPEND viewer_SOURCE_FILES llappviewerlinux_api_dbus.cpp)
# [FS] Growl support

View File

@ -1 +1 @@
6.4.0
6.2.5

View File

@ -81,6 +81,7 @@ AOEngine::~AOEngine()
void AOEngine::init()
{
BOOL do_enable = gSavedPerAccountSettings.getBOOL("UseAO");
BOOL do_enable_stands = gSavedPerAccountSettings.getBOOL("UseAOStands");
if (do_enable)
{
// enable_stands() calls enable(), but we need to set the
@ -91,6 +92,7 @@ void AOEngine::init()
}
else
{
enable_stands(do_enable_stands);
enable(FALSE);
}
}
@ -189,15 +191,37 @@ void AOEngine::setLastOverriddenMotion(const LLUUID& motion)
BOOL AOEngine::foreignAnimations(const LLUUID& seat)
{
LL_DEBUGS("AOEngine") << "Checking for foreign animation on seat " << seat << LL_ENDL;
for (LLVOAvatar::AnimSourceIterator sourceIterator = gAgentAvatarp->mAnimationSources.begin();
sourceIterator != gAgentAvatarp->mAnimationSources.end(); ++sourceIterator)
{
LL_DEBUGS("AOEngine") << "Source " << sourceIterator->first << " runs animation " << sourceIterator->second << LL_ENDL;
if (sourceIterator->first != gAgentID)
{
if (seat.isNull() || sourceIterator->first == seat)
// special case when the AO gets disabled while sitting
if (seat.isNull())
{
return TRUE;
}
// find the source object where the animation came from
LLViewerObject* source=gObjectList.findObject(sourceIterator->first);
// proceed if it's not an attachment
if(!source->isAttachment())
{
// get the source's root prim
LLViewerObject* sourceRoot=dynamic_cast<LLViewerObject*>(source->getRoot());
// if the root prim is the same as the animation source, report back as TRUE
if (sourceRoot && source->getID() == seat)
{
LL_DEBUGS("AOEngine") << "foreign animation " << sourceIterator->second << " found on seat." << LL_ENDL;
return TRUE;
}
}
}
}
return FALSE;
@ -598,10 +622,6 @@ const LLUUID AOEngine::override(const LLUUID& pMotion, BOOL start)
{
stopAllSitVariants();
}
LL_DEBUGS("AOEngine") << "stopping cycle timer for motion " << gAnimLibrary.animationName(motion) <<
" using animation " << animation <<
" in state " << state->mName << LL_ENDL;
}
return animation;
@ -1626,6 +1646,17 @@ void AOEngine::setSmart(AOSet* set, BOOL yes)
{
set->setSmart(yes);
set->setDirty(TRUE);
if (yes)
{
// make sure to restart the sit cancel timer to fix sit overrides when the object we are
// sitting on is playing its own animation
const LLViewerObject* agentRoot = dynamic_cast<LLViewerObject*>(gAgentAvatarp->getRoot());
if (agentRoot && agentRoot->getID() != gAgentID)
{
mSitCancelTimer.oneShot();
}
}
}
void AOEngine::setDisableStands(AOSet* set, BOOL yes)

View File

@ -625,6 +625,14 @@
is_running_function="Floater.IsOpen"
is_running_parameters="beacons"
/>
<command name="stop_animations"
available_in_toybox="true"
icon="Stop_Animations_Icon"
label_ref="Command_Stop_Animations_Label"
tooltip_ref="Command_Stop_Animations_Tooltip"
execute_function="Tools.StopAllAnimations"
execute_parameters="stop"
/>
<command name="myenvironments"
available_in_toybox="true"
is_flashing_allowed="true"

View File

@ -1016,7 +1016,7 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>FSSupportGroupChatPrefix2</key>
<key>FSSupportGroupChatPrefix3</key>
<map>
<key>Comment</key>
<string>Adds (FS 1.2.3) to support group chat</string>
@ -15400,7 +15400,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<integer>0</integer>
</array>
<key>SanityComment</key>
<string>This might cause textures to look blurry and sculpties might fail to load properly. Please see &quot;Prefrences -&gt; Graphics -&gt; Rendering -&gt; Max Texture Quality Level&quot; to change.</string>
<string>This might cause textures to look blurry and sculpties might fail to load properly. Please see &quot;Preferences -&gt; Graphics -&gt; Rendering -&gt; Max Texture Quality Level&quot; to change.</string>
<key>Backup</key>
<integer>0</integer>
</map>

View File

@ -386,7 +386,7 @@ void FSFloaterIM::sendMsgFromInputEditor(EChatType type)
utf8_text = FSCommon::applyMuPose(utf8_text);
// <FS:Techwolf Lupindo> Support group chat prefix
static LLCachedControl<bool> chat_prefix_support(gSavedSettings, "FSSupportGroupChatPrefix2");
static LLCachedControl<bool> chat_prefix_support(gSavedSettings, "FSSupportGroupChatPrefix3");
static LLCachedControl<bool> chat_prefix_testing(gSavedSettings, "FSSupportGroupChatPrefixTesting");
if ((chat_prefix_support || chat_prefix_testing) && FSData::getInstance()->isFirestormGroup(mSessionID))
{
@ -427,9 +427,8 @@ void FSFloaterIM::sendMsgFromInputEditor(EChatType type)
#endif
//RLV check
static LLCachedControl<bool> chat_prefix_rlv(gSavedSettings, "RestrainedLove");
std::string str_rlv_enabled = "";
if(chat_prefix_rlv)
if(RlvHandler::isEnabled())
str_rlv_enabled = "*";
@ -917,20 +916,23 @@ BOOL FSFloaterIM::postBuild()
getChild<LLButton>("send_chat")->setCommitCallback(boost::bind(&FSFloaterIM::sendMsgFromInputEditor, this, CHAT_TYPE_NORMAL));
bool isFSSupportGroup = FSData::getInstance()->isFirestormGroup(mSessionID);
childSetVisible("testing_panel", FSData::getInstance()->isTestingGroup(mSessionID));
childSetVisible("support_panel", isFSSupportGroup);
bool isFSTestingGroup = FSData::getInstance()->isTestingGroup(mSessionID);
//We can show the testing group button simply by checking testing group
childSetVisible("testing_panel", isFSTestingGroup);
//But we cannot with the support group button, because testing groups are also support groups
childSetVisible("support_panel", isFSSupportGroup && !isFSTestingGroup);
// <FS:Zi> Viewer version popup
if (isFSSupportGroup)
if (isFSSupportGroup || isFSTestingGroup)
{
// check if the dialog was set to ignore
LLNotificationTemplatePtr templatep = LLNotifications::instance().getTemplate("FirstJoinSupportGroup");
LLNotificationTemplatePtr templatep = LLNotifications::instance().getTemplate("FirstJoinSupportGroup2");
if (!templatep.get()->mForm->getIgnored())
{
// if not, give the user a choice, whether to enable the version prefix or not
LLSD args;
LLNotificationsUtil::add("FirstJoinSupportGroup", args, LLSD(),boost::bind(&FSFloaterIM::enableViewerVersionCallback, this, _1, _2));
LLNotificationsUtil::add("FirstJoinSupportGroup2", args, LLSD(),boost::bind(&FSFloaterIM::enableViewerVersionCallback, this, _1, _2));
}
}
// </FS:Zi> Viewer version popup
@ -2181,7 +2183,8 @@ BOOL FSFloaterIM::enableViewerVersionCallback(const LLSD& notification,const LLS
result=TRUE;
}
gSavedSettings.setBOOL("FSSupportGroupChatPrefix2",result);
gSavedSettings.setBOOL("FSSupportGroupChatPrefix3",result);
gSavedSettings.setBOOL("FSSupportGroupChatPrefixTesting",result);
return result;
}
// </FS:Zi>

View File

@ -476,6 +476,12 @@ void FSPanelProfileSecondLife::fillCommonData(const LLAvatarData* avatar_data)
mDescriptionEdit->setValue(avatar_data->about_text);
mSecondLifePic->setValue(avatar_data->image_id);
LLViewerFetchedTexture* imagep = LLViewerTextureManager::getFetchedTexture(avatar_data->image_id);
if (!imagep->getFullHeight())
{
imagep->forceToRefetchTexture();
}
if (getSelfProfile())
{
mShowInSearchCheckbox->setValue((BOOL)(avatar_data->flags & AVATAR_ALLOW_PUBLISH));

View File

@ -78,14 +78,17 @@ fi
export SDL_VIDEO_X11_DGAMOUSE=0
## - Works around a problem with misconfigured 64-bit systems not finding GL
exportMutliArchDRIPath "i386"
exportMutliArchDRIPath "amd64"
if [ -z ${LIBGL_DRIVERS_PATH} ]
then
export LIBGL_DRIVERS_PATH="/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri:/usr/lib/i386-linux-gnu/dri:/usr/lib/x86_64-linux-gnu/dri"
export LIBGL_DRIVERS_PATH="/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri"
else
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/dri:/usr/lib32/dri:/usr/lib/dri:/usr/lib/i386-linux-gnu/dri:/usr/lib/x86_64-linux-gnu/dri"
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/dri:/usr/lib/dri:/usr/lib/x86_64-linux-gnu/dri"
fi
export LIBGL_DRIVERS_PATH="${LIBGL_DRIVERS_PATH}:/usr/lib64/xorg/modules/dri"
echo "LIBGL_DRIVERS_PATH is ${LIBGL_DRIVERS_PATH}"
## - The 'scim' GTK IM module widely crashes the viewer. Avoid it.

View File

@ -2992,13 +2992,26 @@ bool LLAgentCamera::isfollowCamLocked()
BOOL LLAgentCamera::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position)
{
// Ansariel: Remember the current object point pointed at - we might need it later
// <FS:Ansariel> Remember the current object point pointed at - we might need it later
mPointAtObject = object;
// <FS:Ansariel> Private point at
static LLCachedControl<bool> private_pointat(gSavedSettings, "PrivatePointAtTarget", false);
if (private_pointat)
{
if (mPointAt && !mPointAt->isDead())
{
mPointAt->clearPointAtTarget();
mPointAt->markDead();
}
return FALSE;
}
// </FS:Ansariel>
// disallow pointing at attachments and avatars
//this is the editing arm motion
static LLCachedControl<bool> private_pointat(gSavedSettings, "PrivatePointAtTarget", false);
if (object && (object->isAttachment() || object->isAvatar() || private_pointat))
if (object && (object->isAttachment() || object->isAvatar()))
{
return FALSE;
}

View File

@ -125,11 +125,16 @@ BOOL LLViewerDynamicTexture::render()
//-----------------------------------------------------------------------------
void LLViewerDynamicTexture::preRender(BOOL clear_depth)
{
// <FS:Beq> changes to support higher resolution rendering in the preview
////only images up to 512x512 are supported
//llassert(mFullHeight <= 512);
//llassert(mFullWidth <= 512);
gPipeline.allocatePhysicsBuffer();
llassert(mFullWidth <= static_cast<S32>(gPipeline.mPhysicsDisplay.getWidth()));
llassert(mFullHeight <= static_cast<S32>(gPipeline.mPhysicsDisplay.getHeight()));
if (gGLManager.mHasFramebufferObject && gPipeline.mPhysicsDisplay.isComplete() && !gGLManager.mIsATI)
// </FS:Beq>
{ //using offscreen render target, just use the bottom left corner
mOrigin.set(0, 0);
}
@ -216,9 +221,12 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
return TRUE;
}
// <FS:Beq> changes to support higher resolution rendering in the preview
// bool use_fbo = gGLManager.mHasFramebufferObject && gPipeline.mWaterDis.isComplete() && !gGLManager.mIsATI;
bool use_fbo = gGLManager.mHasFramebufferObject && gPipeline.mPhysicsDisplay.isComplete() && !gGLManager.mIsATI;
if (use_fbo)
{
// gPipeline.mWaterDis.bindTarget();
gPipeline.mPhysicsDisplay.bindTarget();
}
// </FS:Beq>
@ -257,7 +265,10 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
if (use_fbo)
{
// <FS:Beq> changes to support higher resolution rendering in the preview
// gPipeline.mWaterDis.flush();
gPipeline.mPhysicsDisplay.flush();
// </FS:Beq>
}
return ret;

View File

@ -60,7 +60,7 @@ LLFloaterSettingsDebug::LLFloaterSettingsDebug(const LLSD& key)
mCommitCallbackRegistrar.add("ClickDefault", boost::bind(&LLFloaterSettingsDebug::onClickDefault, this));
mCommitCallbackRegistrar.add("UpdateFilter", boost::bind(&LLFloaterSettingsDebug::onUpdateFilter, this));
mCommitCallbackRegistrar.add("ClickCopy", boost::bind(&LLFloaterSettingsDebug::onCopyToClipboard, this));
mCommitCallbackRegistrar.add("ClickSanityIcon", boost::bind(&LLFloaterSettingsDebug::onSanityCheck, this));
mCommitCallbackRegistrar.add("ClickSanityIcon", boost::bind(&LLFloaterSettingsDebug::onClickSanityWarning, this));
// make sure that the first filter update succeeds
mOldSearchTerm = std::string("---");
@ -249,6 +249,13 @@ void LLFloaterSettingsDebug::onSanityCheck()
SanityCheck::instance().onSanity(mCurrentControlVariable);
}
void LLFloaterSettingsDebug::onClickSanityWarning()
{
// pass "true" to tell the sanity checker to pop up the warning, even when
// it was shown before and would be suppressed otherwise
SanityCheck::instance().onSanity(mCurrentControlVariable, true);
}
void LLFloaterSettingsDebug::onCommitSettings()
{
if (!mCurrentControlVariable)

View File

@ -60,6 +60,7 @@ public:
void onClickDefault();
void onCopyToClipboard();
void onSanityCheck();
void onClickSanityWarning();
static void showControl(const std::string& control);
private:

View File

@ -514,6 +514,9 @@ BOOL LLHUDEffectLookAt::setLookAt(ELookAtType target_type, LLViewerObject *objec
bool lookAtShouldClamp = s_EnableLimiter &&
(*mAttentions)[mTargetType].mName != "None" &&
(*mAttentions)[mTargetType].mName != "Idle" &&
(*mAttentions)[mTargetType].mName != "Respond" &&
(*mAttentions)[mTargetType].mName != "Conversation" &&
(*mAttentions)[mTargetType].mName != "FreeLook" &&
(*mAttentions)[mTargetType].mName != "AutoListen";
if (!lookAtShouldClamp) //We do a similar but seperate calculation if we are doing limited distances

View File

@ -6821,6 +6821,37 @@ void handle_attachment_touch(const LLUUID& idItem)
}
// </FS:Ansariel>
// <FS:Zi> Texture Refresh on worn attachments
void handle_attachment_texture_refresh(const LLUUID& idItem)
{
// get the associated worn attachment's UUID
const LLInventoryItem* pItem = gInventory.getItem(idItem);
if ( (!isAgentAvatarValid()) || (!pItem) )
{
return;
}
LLViewerObject* pAttachObj = gAgentAvatarp->getWornAttachment(pItem->getLinkedUUID());
if (!pAttachObj)
return;
// iterate through the list of child prims, call texture refresh on each one of them
LLViewerObject::const_child_list_t& children = pAttachObj->getChildren();
for (LLViewerObject::child_list_t::const_iterator iter = children.begin();
iter != children.end(); iter++)
{
LLViewerObject* child = *iter;
// NULL means, we don't have individual texture faces selected,
// so refresh them all
handle_object_tex_refresh(child, NULL);
}
// texture refresh the root prim, too
handle_object_tex_refresh(pAttachObj, NULL);
}
// </FS:Zi>
// virtual
void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
{
@ -6867,6 +6898,12 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
handle_attachment_touch(mUUID);
}
// </FS:Ansariel>
// <FS:Zi> Texture Refresh on worn attachments
else if ("texture_refresh_attachment" == action)
{
handle_attachment_texture_refresh(mUUID);
}
// </FS:Zi>
else if (isRemoveAction(action))
{
LLAppearanceMgr::instance().removeItemFromAvatar(mUUID);
@ -7057,6 +7094,13 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if ( ((flags & FIRST_SELECTED_ITEM) == 0) || (!enable_attachment_touch(mUUID)) )
disabled_items.push_back(std::string("Touch Attachment"));
// <FS:Zi> Texture Refresh on worn attachments
if (item->getType() == LLAssetType::AT_OBJECT)
{
items.push_back(std::string("Texture Refresh Attachment"));
}
// </FS:Zi>
items.push_back(std::string("Detach From Yourself"));
// [RLVa:KB] - Checked: 2010-02-27 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a
if ( (rlv_handler_t::isEnabled()) && (!gRlvAttachmentLocks.canDetach(item)) )

View File

@ -149,16 +149,44 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id, bool set_selecti
if (item_id.isNull())
{
mInventoryPanel->getRootFolder()->clearSelection();
//<FS:Chaser> Clear out the UUID instead of keeping the last value
getChild<LLLineEditor>("TextureKey")->setText(LLUUID::null.asString());
//</FS:Chaser>
}
else
{
LLInventoryItem* itemp = gInventory.getItem(image_id);
if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID()))
//<FS:Chaser> Texture UUID picker
//if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID()))
if (itemp)
{
// no copy texture
getChild<LLUICtrl>("apply_immediate_check")->setValue(FALSE);
mNoCopyTextureSelected = TRUE;
BOOL copy = itemp->getPermissions().allowCopyBy(gAgent.getID());
BOOL mod = itemp->getPermissions().allowModifyBy(gAgent.getID());
BOOL xfer = itemp->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID());
if(!copy)
{
// no copy texture
getChild<LLUICtrl>("apply_immediate_check")->setValue(FALSE);
mNoCopyTextureSelected = TRUE;
}
//Verify permissions before revealing UUID.
//Replicates behaviour of "Copy UUID" on inventory. If you can't copy it there, you can't copy it here.
if(copy&&mod&&xfer)
{
getChild<LLLineEditor>("TextureKey")->setText(image_id.asString());
}
else
{
getChild<LLLineEditor>("TextureKey")->setText(LLUUID::null.asString());
}
}
else
{
getChild<LLLineEditor>("TextureKey")->setText(LLUUID::null.asString());
}
// </FS:Chaser>
}
if (set_selection)
@ -416,6 +444,9 @@ BOOL LLFloaterTexturePicker::postBuild()
}
getChild<LLUICtrl>("Pipette")->setCommitCallback( boost::bind(&LLFloaterTexturePicker::onBtnPipette, this));
//<FS:Chaser> UUID picker
childSetAction("TextureKeyApply", LLFloaterTexturePicker::onBtnApplyTexture,this);
//</FS:Chaser>
childSetAction("Cancel", LLFloaterTexturePicker::onBtnCancel,this);
childSetAction("Select", LLFloaterTexturePicker::onBtnSelect,this);
@ -655,6 +686,17 @@ void LLFloaterTexturePicker::onBtnRevert(void* userdata)
self->mViewModel->resetDirty();
}*/
//<FS:Chaser> UUID texture picker
// static
void LLFloaterTexturePicker::onBtnApplyTexture(void* userdata)
{
LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata;
self->setCanApply(true, true);
self->setImageID(LLUUID(self->getChild<LLLineEditor>("TextureKey")->getText()));
self->commitIfImmediateSet();
}
//</FS:Chaser>
// static
void LLFloaterTexturePicker::onBtnCancel(void* userdata)
{
@ -715,16 +757,39 @@ void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem
{
mTextureSelectedCallback(itemp);
}
if (!itemp->getPermissions().allowCopyBy(gAgent.getID()))
// <FS:Chaser> UUID texture picker uses extra permissions, so we do all the fancy stuff here
BOOL copy = itemp->getPermissions().allowCopyBy(gAgent.getID());
BOOL mod = itemp->getPermissions().allowModifyBy(gAgent.getID());
BOOL xfer = itemp->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID());
//if (!itemp->getPermissions().allowCopyBy(gAgent.getID()))
if (!copy)
{
mNoCopyTextureSelected = TRUE;
}
// </FS:Chaser>
// <FS:Ansariel> FIRE-8298: Apply now checkbox has no effect
setCanApply(true, true);
// </FS:Ansariel>
setImageID(itemp->getAssetUUID(),false);
// <FS:Chaser> UUID texture picker permissions continued
//We also have to set this here because above passes the asset ID, not the inventory ID.
//Verify permissions before revealing UUID.
//Replicates behaviour of "Copy UUID" on inventory. If you can't copy it there, you can't copy it here.
if(copy&&mod&&xfer)
{
getChild<LLLineEditor>("TextureKey")->setText(itemp->getAssetUUID().asString());
}
else
{
getChild<LLLineEditor>("TextureKey")->setText(LLUUID::null.asString());
}
// </FS:Chaser>
mViewModel->setDirty(); // *TODO: shouldn't we be using setValue() here?
if(!mPreviewSettingChanged)
{
mCanPreview = gSavedSettings.getBOOL("TextureLivePreview");
@ -740,6 +805,12 @@ void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem
commitIfImmediateSet();
}
}
// <FS:Chaser> Clear texture key when item cant be found
else
{
getChild<LLLineEditor>("TextureKey")->setText(LLUUID::null.asString());
}
// </FS:Chaser>
}
}

View File

@ -319,6 +319,9 @@ public:
const LLUUID& getBlankImageAssetID() { return mBlankImageAssetID; }
static void onBtnSetToDefault(void* userdata);
//<FS:Chaser> UUID texture picker
static void onBtnApplyTexture(void* userdata);
//</FS:Chaser>
static void onBtnSelect(void* userdata);
static void onBtnCancel(void* userdata);
void onBtnPipette();

View File

@ -3117,6 +3117,67 @@ void destroy_texture(const LLUUID& id) // will be used by the texture refresh f
LLAppViewer::getTextureCache()->removeFromCache(id);
}
void handle_object_tex_refresh(LLViewerObject* object, LLSelectNode* node)
{
U8 te_count = object->getNumTEs();
// map from texture ID to list of faces using it
typedef std::map< LLUUID, std::vector<U8> > map_t;
map_t faces_per_texture;
for (U8 i = 0; i < te_count; ++i)
{
// "node" will be NULL when invoked from inventory menu,
// otherwise it will hold the root node of the selection and we
// need to make sure only to refresh the selected faces
if (node && !node->isTESelected(i)) continue;
LLViewerTexture* img = object->getTEImage(i);
faces_per_texture[img->getID()].push_back(i);
if (object->getTE(i)->getMaterialParams().notNull())
{
LLViewerTexture* norm_img = object->getTENormalMap(i);
faces_per_texture[norm_img->getID()].push_back(i);
LLViewerTexture* spec_img = object->getTESpecularMap(i);
faces_per_texture[spec_img->getID()].push_back(i);
}
}
map_t::iterator it;
for (it = faces_per_texture.begin(); it != faces_per_texture.end(); ++it)
{
destroy_texture(it->first);
}
// Refresh sculpt texture
if (object->isSculpted())
{
LLSculptParams *sculpt_params = (LLSculptParams *)object->getParameterEntry(LLNetworkData::PARAMS_SCULPT);
if (sculpt_params)
{
LLUUID sculpt_uuid = sculpt_params->getSculptTexture();
LLViewerFetchedTexture* tx = LLViewerTextureManager::getFetchedTexture(sculpt_uuid);
if (tx)
{
S32 num_volumes = tx->getNumVolumes(LLRender::SCULPT_TEX);
const LLViewerTexture::ll_volume_list_t* pVolumeList = tx->getVolumeList(LLRender::SCULPT_TEX);
destroy_texture(sculpt_uuid);
for (S32 idxVolume = 0; idxVolume < num_volumes; ++idxVolume)
{
LLVOVolume* pVolume = pVolumeList->at(idxVolume);
if (pVolume)
{
pVolume->notifyMeshLoaded();
}
}
}
}
}
}
class LLObjectTexRefresh : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@ -3126,61 +3187,7 @@ class LLObjectTexRefresh : public view_listener_t
iter != LLSelectMgr::getInstance()->getSelection()->valid_end(); iter++)
{
LLSelectNode* node = *iter;
U8 te_count = node->getObject()->getNumTEs();
// map from texture ID to list of faces using it
typedef std::map< LLUUID, std::vector<U8> > map_t;
map_t faces_per_texture;
for (U8 i = 0; i < te_count; ++i)
{
if (!node->isTESelected(i)) continue;
LLViewerTexture* img = node->getObject()->getTEImage(i);
faces_per_texture[img->getID()].push_back(i);
if (node->getObject()->getTE(i)->getMaterialParams().notNull())
{
LLViewerTexture* norm_img = node->getObject()->getTENormalMap(i);
faces_per_texture[norm_img->getID()].push_back(i);
LLViewerTexture* spec_img = node->getObject()->getTESpecularMap(i);
faces_per_texture[spec_img->getID()].push_back(i);
}
}
map_t::iterator it;
for (it = faces_per_texture.begin(); it != faces_per_texture.end(); ++it)
{
destroy_texture(it->first);
}
// Refresh sculpt texture
if (node->getObject()->isSculpted())
{
LLSculptParams *sculpt_params = (LLSculptParams *)node->getObject()->getParameterEntry(LLNetworkData::PARAMS_SCULPT);
if (sculpt_params)
{
LLUUID sculpt_uuid = sculpt_params->getSculptTexture();
LLViewerFetchedTexture* tx = LLViewerTextureManager::getFetchedTexture(sculpt_uuid);
if (tx)
{
S32 num_volumes = tx->getNumVolumes(LLRender::SCULPT_TEX);
const LLViewerTexture::ll_volume_list_t* pVolumeList = tx->getVolumeList(LLRender::SCULPT_TEX);
destroy_texture(sculpt_uuid);
for (S32 idxVolume = 0; idxVolume < num_volumes; ++idxVolume)
{
LLVOVolume* pVolume = pVolumeList->at(idxVolume);
if (pVolume)
{
pVolume->notifyMeshLoaded();
}
}
}
}
}
handle_object_tex_refresh(node->getObject(),node);
}
return true;

View File

@ -38,6 +38,7 @@ class LLView;
class LLParcelSelection;
class LLObjectSelection;
class LLSelectNode;
class LLViewerObject;
// [RLVa:KB] - Checked: RLVa-2.0.0
void set_use_wireframe(bool useWireframe);
@ -103,6 +104,7 @@ void handle_object_build(void*);
void handle_object_touch();
bool enable_object_open();
void handle_object_open();
void handle_object_tex_refresh(LLViewerObject* object, LLSelectNode* node);
bool visible_take_object();
bool tools_visible_take_object();

View File

@ -1325,8 +1325,14 @@ void LLVOAvatarSelf::idleUpdateTractorBeam()
{
LLColor4U rgb = gLggBeamMaps.getCurrentColor(LLColor4U(gAgent.getEffectColor()));
// <FS:Ansariel> Private point at
static LLCachedControl<bool> private_pointat(gSavedSettings, "PrivatePointAtTarget", false);
// This is only done for yourself (maybe it should be in the agent?)
if (!needsRenderBeam() || !isBuilt())
// <FS:Ansariel> Private point at
//if (!needsRenderBeam() || !isBuilt())
if (!needsRenderBeam() || !isBuilt() || private_pointat)
// </FS:Ansariel>
{
mBeam = NULL;
gLggBeamMaps.stopBeamChat();

View File

@ -22,11 +22,14 @@
#include "llviewerprecompiledheaders.h"
#include "llcontrol.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
#include "lltrans.h"
#include "llviewercontrol.h"
#include "sanitycheck.h"
#define SANITY_CHECK "SanityCheck" // name of the notification we display
void SanityCheck::init()
{
struct f : public LLControlGroup::ApplyFunctor
@ -37,7 +40,7 @@ void SanityCheck::init()
{
if (control->getSanityType() != SANITY_TYPE_NONE)
{
control->getSanitySignal()->connect(boost::bind(&SanityCheck::onSanity, _1));
control->getSanitySignal()->connect(boost::bind(&SanityCheck::onSanity, _1, false));
SanityCheck::instance().onSanity(control);
}
}
@ -48,19 +51,28 @@ void SanityCheck::init()
}
// static
void SanityCheck::onSanity(LLControlVariable* controlp)
void SanityCheck::onSanity(LLControlVariable* controlp, bool disregardLastControl /*= false*/)
{
static LLControlVariable* lastControl = NULL;
static LLControlVariable* lastControl = nullptr;
if (controlp->isSane())
{
return;
}
if (controlp == lastControl)
if (disregardLastControl)
{
// clear "ignored" status for this control, so it can actually show up
LLNotifications::instance().setIgnored(SANITY_CHECK, false);
}
else if (controlp == lastControl)
{
return;
}
lastControl = controlp;
std::string checkType = "SanityCheck" + LLControlGroup::sanityTypeEnumToString(controlp->getSanityType());
std::string checkType = SANITY_CHECK + LLControlGroup::sanityTypeEnumToString(controlp->getSanityType());
std::vector<LLSD> sanityValues = controlp->getSanityValues();
LLSD args;
@ -71,7 +83,7 @@ void SanityCheck::onSanity(LLControlVariable* controlp)
args["SANITY_MESSAGE"] = LLTrans::getString(checkType, map);
args["SANITY_COMMENT"] = controlp->getSanityComment();
args["CURRENT_VALUE"] = controlp->getValue().asString();
LLNotificationsUtil::add("SanityCheck", args, LLSD(), boost::bind(SanityCheck::onFixIt, _1, _2, controlp));
LLNotificationsUtil::add(SANITY_CHECK, args, LLSD(), boost::bind(SanityCheck::onFixIt, _1, _2, controlp));
}
void SanityCheck::onFixIt(const LLSD& notification, const LLSD& response, LLControlVariable* controlp)

View File

@ -34,7 +34,7 @@ class SanityCheck : public LLSingleton<SanityCheck>
public:
void init();
static void onSanity(LLControlVariable* controlp);
static void onSanity(LLControlVariable* controlp, bool disregardLastControl = false);
static void onFixIt(const LLSD& notification, const LLSD& response, LLControlVariable* controlp);
};

View File

@ -804,6 +804,7 @@ with the same filename but different name
<texture name="Group_Titles_Icon" file_name="toolbar_icons/group_titles.png" preload="true" />
<texture name="Wearable_Favorites_Icon" file_name="toolbar_icons/wearable_favorites.png" preload="true" />
<texture name="beacons" file_name="toolbar_icons/beacons.png" preload="true" />
<texture name="Stop_Animations_Icon" file_name="toolbar_icons/stop_animations.png" preload="true" />
<texture name="skin ansastorm blood" file_name="skinspreview/ansa_blood.jpg" preload="true" />
<texture name="skin ansastorm bright blue" file_name="skinspreview/ansa_blue.jpg" preload="true" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 B

View File

@ -46,10 +46,10 @@
<button name="chat_options_btn" tool_tip="Chat-Optionen"/>
</layout_panel>
<layout_panel name="support_panel">
<check_box label="Version senden" name="FSSupportGroupChatPrefix_toggle" tool_tip="Fügt die aktuelle Viewer-Version und Oberfläche am Anfang jeder Nachricht hinzu, die an diese Gruppe gesendet werden, um die Support-Mitarbeiter dabei zu unterstützen, ein mögliches Problem besser zu diagnostizieren und die Genauigkeit der Antworten auf deine Fragen zu verbessern."/>
<check_box label="Version senden" name="FSSupportGroupChatPrefix_toggle" tool_tip="Fügt die aktuelle Viewer-Version, Viewer-Skin, das Betriebssystem und den RLVa-Status am Anfang jeder Nachricht hinzu, die an diese Gruppe gesendet werden, um die Support-Mitarbeiter dabei zu unterstützen, ein mögliches Problem besser zu diagnostizieren und die Genauigkeit der Antworten auf Ihre Fragen zu verbessern."/>
</layout_panel>
<layout_panel name="testing_panel">
<check_box label="Build senden" name="FSSupportGroupChatPrefixTesting_toggle" tool_tip="Fügt den aktuellen Viewer-Build und die aktuelle Oberfläche am Anfang jeder Nachricht hinzu, die an diese Gruppe gesendet werden, um die Support-Mitarbeiter dabei zu unterstützen, ein mögliches Problem besser zu diagnostizieren und die Genauigkeit der Antworten auf deine Fragen zu verbessern. (Diese Einstellung ist unabhängig von den Support-Gruppen.)"/>
<check_box label="Build senden" name="FSSupportGroupChatPrefixTesting_toggle" tool_tip="Fügt die aktuelle Viewer-Version, Viewer-Skin, das Betriebssystem und den RLVa-Status am Anfang jeder Nachricht hinzu, die an diese Gruppe gesendet werden, um die Support-Mitarbeiter dabei zu unterstützen, ein mögliches Problem besser zu diagnostizieren und die Genauigkeit der Antworten auf Ihre Fragen zu verbessern. (Diese Einstellung ist unabhängig von den Support-Gruppen.)"/>
</layout_panel>
</layout_stack>
<layout_stack name="chat_stack">

View File

@ -15,7 +15,8 @@
<spinner label="x" name="val_spinner_2"/>
<spinner label="x" name="val_spinner_3"/>
<spinner label="x" name="val_spinner_4"/>
<button name="sanity_warning_btn" tool_tip="Diese Einstellung hat die Plausibilitätsprüfung nicht bestanden - der Wert liegt außerhalb des empfohlenen Bereichs."/>
<button label="Kopieren" name="copy_btn" tool_tip="Kopiert den Namen der Einstellung in die Zwischenablage." width="60"/>
<button label="Standardwert" name="default_btn" width="85"/>
<button label="Standardwert" name="default_btn" tool_tip="Setzt den Wert dieser Einstellung auf den Standardwert zurück." width="85"/>
</panel>
</floater>

View File

@ -35,7 +35,8 @@
<column name="unit_name" label="Name"/>
<column name="unit_id_HIDDEN" label="ID"/>
</scroll_list>
<column label="ID" name="unit_id_HIDDEN"/>
<line_editor name="TextureKey" tool_tip="Textur-UUID"/>
<button name="TextureKeyApply" label="UUID anwenden" tool_tip="Textur mit dieser UUID anwenden"/>
<button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
<button label="OK" label_selected="OK" name="Select" left="135"/>
</floater>

View File

@ -114,6 +114,7 @@
<menu_item_call label="Berühren" name="Touch Attachment"/>
<menu_item_call label="In Gesamtansicht anzeigen" name="Show in Main Panel"/>
<menu_item_call label="Hinzufügen" name="Wearable Add"/>
<menu_item_call label="Texturen aktualisieren" name="Texture Refresh Attachment"/>
<menu_item_call label="Ausziehen" name="Take Off"/>
<menu_item_call label="Nur auf mich anwenden" name="Settings Apply Local"/>
<menu_item_call label="Auf Parzelle anwenden" name="Settings Apply Parcel"/>

View File

@ -4990,14 +4990,15 @@ URL: [AUDIOURL]
</form>
</notification>
<notification name="FirstJoinSupportGroup">
<notification name="FirstJoinSupportGroup2">
Willkommen in der Phoenix/Firestorm Viewer Support-Gruppe!
Um den Support zu vereinfachen wird empfohlen, die aktuelle Version deines Viewers der Gruppe mitzuteilen. Du kannst daher entscheiden, ob du die Version deines Viewers jeder Nachrichtig in diesem Gruppenchat voranstellen möchtest. Unser Support-Team kann dir eine sinnvollere Hilfestellung geben, wenn es direkt weiß, welche Viewer-Version du benutzt.
Um den Support zu vereinfachen wird empfohlen, die aktuelle Version Ihres Viewers der Gruppe mitzuteilen. Diese Information beinhaltet Viewer-Version, Viewer-Skin, Betriebssystem und RLVa-Status. Sie können daher entscheiden, ob Sie die Version Ihres Viewers jeder Nachricht in diesem Gruppenchat voranstellen möchten. Unser Support-Team kann Ihnen eine sinnvollere Hilfestellung geben, wenn es direkt weiß, welche Viewer-Version Sie benutzen.
Diese Funktion kann jederzeit über die Checkbox innerhalb des Gruppenchat-Fensters aktiviert bzw. deaktiviert werden.
Soll die automatische Anzeige der Viewer-Version aktiviert werden?
<form name="form">
<button name="OK_okcancelignore" text="Ja"/>
<button name="Cancel_okcancelignore" text="Nein"/>

View File

@ -108,7 +108,7 @@
<button name="BeamColor_new" label="Erstellen" tool_tip="Eine neue Farbeinstellung erstellen."/>
<button name="BeamColor_refresh" label="Aktualisieren" tool_tip="Aktualisiert die Liste mit Farbeinstellungen."/>
<slider name="FSMaxBeamsPerSecond" label="Updates/Sek:" tool_tip="Definiert wie viele Updates pro Sekunden gesendet werden sollen. [Standard: 40]"/>
<check_box label="Auswahlstrahl aktivieren" name="SLPartBeam"/>
<check_box label="Auswahlstrahl aktivieren" name="SLPartBeam" tool_tip="Das Deaktivieren dieser Einstellung verhindert die lokale Darstellung von Auswahlstrahlen. Das Senden der Auswahlinformationen an andere Avatare wird hierdurch nicht verhinden. Um keine Auswahlinformationen zu übertragen, können Sie diese unter Einstellungen -&gt; Privatsphäre -&gt; Kamerafokus -&gt; Eigene Bearbeitungsauswahl nicht an andere senden deaktivieren"/>
<check_box label="Auswahlinformationen an Chat senden" name="FSParticleChat" tool_tip="Sendet Informationen über die Auswahl (Start/Stop sowie globale Position) an Chat-Kanal 9000."/>
<combo_box name="FSBeamShape_combo" tool_tip="Erlaubt die Auswahl der Form für den Auswahlstrahl."/>

View File

@ -5994,6 +5994,12 @@ Setzen Sie den Editorpfad in Anführungszeichen
<string name="Command_Fly_Tooltip">
Flugmodus ein-/ausschalten (Pos1)
</string>
<string name="Command_Stop_Animations_Label">
Avatar-Animationen stoppen
</string>
<string name="Command_Stop_Animations_Tooltip">
Avatar-Animationen stoppen
</string>
<string name="Command_Groundsit_Tooltip">
Aktiviert/Deaktiviert erzwungenes Sitzen auf dem Boden (Strg+Alt+S)
</string>

View File

@ -165,7 +165,7 @@ Additional code generously contributed to Firestorm by:
top_pad="4"
width="450"
wrap="true">
Albatroz Hird, Alexie Birman, Andromeda Rage, Animats, Armin Weatherwax, Beq Janus, Casper Warden, Chalice Yao, Chaser Zaks, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Magne Metaverse LLC, Magus Freston, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, mygoditsfullofstars, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Revolution Smythe, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Thickbrick Sleaford, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others.
Albatroz Hird, Alexie Birman, Andromeda Rage, Angeldark Raymaker, Animats, Armin Weatherwax, Beq Janus, Casper Warden, Chalice Yao, Chaser Zaks, Cron Stardust, Damian Zhaoying, Dan Threebeards, Dawa Gurbux, Denver Maksim, Drake Arconis, Felyza Wishbringer, f0rbidden, Fractured Crystal, Geenz Spad, Gibson Firehawk, Hitomi Tiponi, Inusaito Sayori, Jean Severine, Katharine Berry, Kittin Ninetails, Kool Koolhoven, Lance Corrimal, Lassie, Latif Khalifa, Magne Metaverse LLC, Magus Freston, Manami Hokkigai, MartinRJ Fayray, McCabe Maxstead, Melancholy Lemon, Melysmile, Mimika Oh, Mister Acacia, mygoditsfullofstars, Mysty Saunders, Nagi Michinaga, Name Short, nhede Core, NiranV Dean, Nogardrevlis Lectar, Paladin Forzane, paperwork, Penny Patton, Peyton Menges, programmtest, Qwerty Venom, Revolution Smythe, Sahkolihaa Contepomi, sal Kaligawa, Samm Florian, Satomi Ahn, Sei Lisa, Sempervirens Oddfellow, Shin Wasp, Shyotl Kuhr, Sione Lomu, Skills Hak, StarlightShining, Sunset Faulkes, Thickbrick Sleaford, Vaalith Jinn, Vincent Sylvester, Whirly Fizzle, Xenhat Liamano, Zwagoth Klaar and others.
</text>
<text
follows="top|left"

View File

@ -442,7 +442,7 @@
height="20"
width="113"/>
<check_box
control_name="FSSupportGroupChatPrefix2"
control_name="FSSupportGroupChatPrefix3"
follows="left|top"
height="19"
label="Specify version"
@ -450,7 +450,7 @@
top="0"
left_delta="5"
name="FSSupportGroupChatPrefix_toggle"
tool_tip="Adds your current viewer version and skin information to the front of messages sent by you to this group which will assist support staff in correctly diagnosing your issues and improve accuracy in answering your questions"
tool_tip="Adds current viewer version, viewer skin, operating system and RLVa status to the front of messages sent by you to this group which will assist support staff in correctly diagnosing your issues and improve accuracy in answering your questions"
width="110" />
</layout_panel>
<layout_panel
@ -479,7 +479,7 @@
top="0"
left_delta="5"
name="FSSupportGroupChatPrefixTesting_toggle"
tool_tip="Adds your current viewer build and skin information to the front of messages sent by you to this group which will assist support staff in correctly diagnosing your issues and improve accuracy in answering your questions. (This is seperate from the support groups)"
tool_tip="Adds current viewer version, viewer skin, operating system and RLVa status to the front of messages sent by you to this group which will assist support staff in correctly diagnosing your issues and improve accuracy in answering your questions. (This is seperate from the support groups)"
width="100" />
</layout_panel>
<!-- END: FS Prefix -->

View File

@ -204,6 +204,7 @@
image_selected="PushButton_Selected_Press"
name="sanity_warning_btn"
right="-160"
tool_tip="This debug setting failed the sanity check; its value lies outside the recommended range."
top_pad="10"
visible="true"
width="22">

View File

@ -3,7 +3,7 @@
legacy_header_height="18"
can_minimize="false"
can_resize="true"
height="330"
height="360"
layout="topleft"
min_height="330"
min_width="410"
@ -240,6 +240,26 @@
</scroll_list>
<!-- bottom static -->
<line_editor
follows="bottom"
height="20"
left="7"
top="-55"
max_length_chars="256"
name="TextureKey"
layout="topleft"
label="00000000-0000-0000-0000-000000000000"
tool_tip="Texture Key"
width="290"/>
<button
follows="bottom"
name="TextureKeyApply"
height="20"
label="Apply UUID"
layout="topleft"
left_pad="5"
width="100"
tool_tip="Apply this UUID"/>
<button
follows="bottom"
height="20"
@ -266,7 +286,7 @@
initial_value="true"
label="Apply now"
layout="topleft"
left="4"
left="5"
name="apply_immediate_check"
top_delta="0"
width="120" />

View File

@ -890,6 +890,14 @@
function="Inventory.DoToSelected"
parameter="touch" />
</menu_item_call>
<menu_item_call
label="Texture Refresh"
layout="topleft"
name="Texture Refresh Attachment">
<menu_item_call.on_click
function="Inventory.DoToSelected"
parameter="texture_refresh_attachment" />
</menu_item_call>
<menu_item_call
label="Take Off"
layout="topleft"

View File

@ -10499,11 +10499,11 @@ Your viewer cache is currently empty. Please be aware that you may experience sl
<!-- <FS:Zi> Viewer version popup -->
<notification
icon="alertmodal.tga"
name="FirstJoinSupportGroup"
name="FirstJoinSupportGroup2"
type="alertmodal">
Welcome to the Phoenix/Firestorm Viewer Support Group!
To make support easier, it is recommended to announce your viewer's version to the group. You can choose to display your viewer's version in front of any chat you send to the group. Our support members can give you more meaningful advice right away if they know the viewer version you are on.
To make support easier, it is recommended to announce your viewer's version to the group. This information includes current viewer version, viewer skin, operating system and RLVa status. You can choose to display your viewer's version in front of any chat you send to the group. Our support members can give you more meaningful advice right away if they know the viewer version you are on.
You can enable and disable this function at any time using the checkbox in the group chat floater.

View File

@ -685,6 +685,7 @@
left="15"
name="SLPartBeam"
width="250"
tool_tip="Disabling this setting will prevent selection beams from being rendered locally. It does not prevent selection beams being sent to other avatars. If you do not wish to show your selection, you can disable that via Preferences -&gt; Privacy -&gt; LookAt -&gt; Don't send my selection target hints."
control_name="ShowSelectionBeam" />
<check_box

View File

@ -479,7 +479,7 @@
initial_value="160"
layout="topleft"
max_val="32"
min_val="1"
min_val="4"
name="LimitLookAtDistance"
width="150" />
<text

View File

@ -2751,6 +2751,8 @@ Try enclosing path to the editor with double quotes.
<string name="Toolbar_Right_Tooltip" >currently in your right toolbar</string>
<string name="Command_Fly_Tooltip">Toggle flying mode on/off (HOME)</string>
<string name="Command_Stop_Animations_Label">Stop Animations</string>
<string name="Command_Stop_Animations_Tooltip">Stop Animating my Avatar</string>
<!-- Mesh UI terms -->
<string name="Retain%">Retain%</string>

View File

@ -42,7 +42,11 @@
</layout_panel>
<layout_panel name="support_panel" width="120">
<icon name="dummy_icon_support_group" width="118"/>
<check_box label="Especificar visor" name="FSSupportGroupChatPrefix_toggle" width="115" tool_tip="Añade tu versión actual de visor y la información de skin al principio de tus mensajes para ayudar al equipo de soporte a diagnosticar tus problemas correctamente y a mejorar la precisión en las respuestas a tus preguntas"/>
<check_box label="Especificar versión" name="FSSupportGroupChatPrefix_toggle" width="115" tool_tip="Añade la versión actual del visor, el skin del visor, el sistema operativo y el estatus del RLVa al principio de los mensajes enviados por usted a este grupo, lo cual asistirá al personal de apoyo a correctamente diagnosticar su problema, y a mejorar la precisión de las respuestas a sus preguntas"/>
</layout_panel>
<layout_panel name="testing_panel" width="120">
<icon name="dummy_icon_support_group" width="118"/>
<check_box label="Especificar compilación" name="FSSupportGroupChatPrefixTesting_toggle" width="115" tool_tip="Añade la compilación actual del visor, el skin del visor, el sistema operativo y el estatus del RLVa al principio de los mensajes enviados por usted a este grupo, lo cual asistirá al personal de apoyo a correctamente diagnosticar su problema, y a mejorar la precisión de las respuestas a sus preguntas"/>
</layout_panel>
</layout_stack>
</floater>

View File

@ -5463,9 +5463,9 @@ Configuración actual: [CURRENT_VALUE]
<notification name="CacheEmpty">
La cache del visor está vacía. Por favor, ten en cuenta que puedes sufrir de lentitud de movimiento y de inventario mientras se carga el nuevo contenido.
</notification>
<notification name="FirstJoinSupportGroup">
<notification name="FirstJoinSupportGroup2">
¡Bienvenido al Grupo de Soporte de Phoenix/Firestorm Viewer!
Para facilitar el soporte, se recomienda que publiques la versión de tu visor en el grupo. Puedes mostrar la versión de tu visor delante de cada mensaje que envías al grupo. Nuestros miembros de soporte pueden darte respuestas más adecuadas si saben qué visor estás usando.
Para facilitar el soporte, se recomienda que publiques la versión de tu visor en el grupo. Esta información incluye la versión actual del visor, el skin del visor, el sistema operativo y el estatus del RLVa. Puedes mostrar la versión de tu visor delante de cada mensaje que envías al grupo. Nuestros miembros de soporte pueden darte respuestas más adecuadas si saben qué visor estás usando.
Puedes activar y desactivar esta función en cualquier momento usando la casilla existente en la ventana del chat del grupo.

View File

@ -5785,6 +5785,12 @@ Inténtalo incluyendo la ruta de acceso al editor entre comillas
actualmente en tu barra de herramientas derecha
</string>
<string name="Command_Fly_Tooltip">Activar/desactivar el modo de vuelo</string>
<string name="Command_Stop_Animations_Label">
Detener mis animaciones
</string>
<string name="Command_Stop_Animations_Tooltip">
Detener mis animaciones
</string>
<string name="Retain%">
% retención
</string>

View File

@ -5487,6 +5487,12 @@ Essayez avec le chemin d&apos;accès à l&apos;éditeur entre guillemets doubles
<string name="Toolbar_Right_Tooltip">
actuellement dans la barre d&apos;outils de droite
</string>
<string name="Command_Stop_Animations_Label">
Arrêter mon animation
</string>
<string name="Command_Stop_Animations_Tooltip">
Arrêter mon animation
</string>
<string name="Retain%">
Garder%
</string>

View File

@ -3933,7 +3933,8 @@ Valore attuale: [CURRENT_VALUE]
<notification name="CacheEmpty">
La cache del viewer è vuota. Sono possibili rallentamenti nel framerate e nel caricamento dell&apos;inventario per un breve tempo, mentre vengono caricati i nuovi contenuti.
</notification>
<notification name="FirstJoinSupportGroup">
<!-- Commented out because without an update it would show false information!
<notification name="FirstJoinSupportGroup2">
Benvenuti al gruppo di supporto di Phoenix/Firestorm!
Per rendere il supporto più efficace, raccomandiamo di annunciare la versione del programma al gruppo. Il numero di versione può essere allegato ad ogni chat inviata al gruppo. I membri del gruppo di supporto possono dare suggerimenti più efficaci se conoscono la versione usata.
@ -3947,6 +3948,7 @@ Abilitare l&apos;invio automatico della versione?
<ignore name="ignore" text="Iscrizione al gruppo di supporto Phoenix/Firestorm" save_option="true" />
</form>
</notification>
-->
<notification name="ConfirmScriptModify">
Modificare gli script negli oggetti selezionati?
<usetemplate ignoretext="Conferma prima di modificare script nella selezione" name="okcancelignore" notext="Annulla" />

View File

@ -5613,6 +5613,12 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
<string name="Command_Fly_Tooltip">
Attiva/disattiva il volo (Home)
</string>
<string name="Command_Stop_Animations_Label">
Ferma animazioni
</string>
<string name="Command_Stop_Animations_Tooltip">
Ferma animazioni
</string>
<string name="Retain%">
Mantieni%
</string>

View File

@ -4317,7 +4317,8 @@ AO セット "[AO_SET_NAME]" の名前を変更できません。
</notification>
<!-- <FS:Zi> Viewer version popup -->
<notification name="FirstJoinSupportGroup">
<!-- Commented out because without an update it would show false information!
<notification name="FirstJoinSupportGroup2">
Phoenix/Firestorm ビューワのサポート・グループへようこそ!
よりスムーズにサポートが得られるように、ご使用になられているビューワのバージョンをグループに伝えることをお勧めします。このグループに送信するチャットの先頭にビューワのバージョンを自動的に表示することもできます。ご使用になられているビューワのバージョンが分かれば、グループのサポート・メンバーがすぐに有意義なアドバイスをすることができるようになります。
@ -4332,6 +4333,7 @@ Phoenix/Firestorm ビューワのサポート・グループへようこそ!
<ignore name="ignore" text="Phoenix/Firestorm サポート・グループに参加した時" />
</form>
</notification>
--!
<!-- <FS:Zi> Viewer version popup -->
<notification name="ConfirmScriptModify">

View File

@ -5719,6 +5719,12 @@ www.secondlife.com から最新バージョンをダウンロードしてくだ
飛行モードを開始、または停止する
</string>
<!-- added Jun.30, 2013 -->
<string name="Command_Stop_Animations_Label">
自分のアニメーションを停止する
</string>
<string name="Command_Stop_Animations_Tooltip">
自分のアニメーションを停止する
</string>
<!-- Mesh UI terms -->
<string name="Retain%">

View File

@ -43,7 +43,10 @@
<menu_button tool_tip="Opcje czatu" name="chat_options_btn"/>
</layout_panel>
<layout_panel name="support_panel">
<check_box label="Dodawaj wersję" name="FSSupportGroupChatPrefix_toggle" tool_tip="Dodaje aktualną wersję przeglądarki oraz informację o skórce przed wiadomościami wysyłanymi przez Ciebie w tej grupie, co będzie pomagać członkom załogi wsparcia w prawidłowym diagnozowaniu Twoich problemów i poprawi dokładność odpowiedzi na Twoje pytania"/>
<check_box label="Dodawaj wersję" name="FSSupportGroupChatPrefix_toggle" tool_tip="Dodaje aktualną wersję przeglądarki, informację o skórce, system operacyjny i status RLVa przed wiadomościami wysyłanymi przez Ciebie w tej grupie, co będzie pomagać członkom załogi wsparcia w prawidłowym diagnozowaniu Twoich problemów i poprawi dokładność odpowiedzi na Twoje pytania"/>
</layout_panel>
<layout_panel name="testing_panel">
<check_box label="Dodawaj kompilację" name="FSSupportGroupChatPrefixTesting_toggle" tool_tip="Dodaje aktualną wersję przeglądarki, informację o skórce, system operacyjny i status RLVa przed wiadomościami wysyłanymi przez Ciebie w tej grupie, co będzie pomagać członkom załogi wsparcia w prawidłowym diagnozowaniu Twoich problemów i poprawi dokładność odpowiedzi na Twoje pytania (to oddzielne od grup wsparcia)" />
</layout_panel>
</layout_stack>
<layout_stack name="chat_stack">

View File

@ -10,6 +10,7 @@
<radio_item label="FAŁSZ" name="FALSE" />
</radio_group>
<color_swatch label="Kolor" name="val_color_swatch"/>
<button name="sanity_warning_btn" tool_tip="To ustawienie debugowania nie wydaje się być poprawne; jego wartość leży poza zalecanym zakresem." />
<button label="Kopiuj" name="copy_btn" tool_tip="Skopiuj nazwę ustawienia do schowka."/>
<button label="Domyślnie" name="default_btn" tool_tip="Resetuj to ustawienie do wartości domyślnej."/>
</panel>

View File

@ -31,6 +31,8 @@
<scroll_list name="l_name_list">
<column name="unit_name" label="Nazwa"/>
</scroll_list>
<line_editor name="TextureKey" tool_tip="Klucz UUID tekstury" />
<button name="TextureKeyApply" label="Ustaw UUID" tool_tip="Ustaw ten UUID" />
<button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
<check_box label="Podgląd" name="apply_immediate_check"/>
</floater>

View File

@ -108,6 +108,7 @@
<menu label="Dołącz do HUD-a" name="Attach To HUD"/>
<menu_item_call label="Edytuj" name="Wearable Edit"/>
<menu_item_call label="Dotknij" name="Touch Attachment"/>
<menu_item_call label="Odśwież tekstury" name="Texture Refresh Attachment" />
<menu_item_call label="Zdejmij" name="Take Off"/>
<menu_item_call label="Odłącz od siebie" name="Detach From Yourself"/>
<menu_item_call label="Kopiuj do rzeczy Marketplace" name="Marketplace Copy"/>

View File

@ -3900,6 +3900,8 @@ Powód: [SANITY_COMMENT]
Obecne ustawienie: [CURRENT_VALUE]
<form name="form">
<button name="OK" text="Napraw"/>
<button name="Cancel" text="Zostaw"/>
<ignore name="ignore" text="Jakieś ustawienie nie przeszło kontroli spójności."/>
</form>
</notification>
@ -3915,10 +3917,10 @@ Obecne ustawienie: [CURRENT_VALUE]
<notification name="CacheEmpty">
Pamięć podręczna (bufor danych) Twojej Przeglądarki jest pusta. Miej na uwadze, że możesz przez jakiś czas odczuwać obniżoną wydajność i spowolnione doczytywanie obiektów z Szafy.
</notification>
<notification name="FirstJoinSupportGroup">
<notification name="FirstJoinSupportGroup2">
Witaj w grupie wsparcia Phoenix/Firestorm!
Abyśmy mogli pomóc Ci lepiej zalecamy, aby Twoja Przeglądarka automatycznie prezentowała swoją wersję - będzie ona wyświetlana przed każdą Twoją wypowiedzią na tym czacie grupowym. Osoby z naszej załogi wsparcia będą mogły dać Ci bardziej sensowne porady, jeśli będą znać wersję Twojej Przeglądarki od razu.
Abyśmy mogli pomóc Ci lepiej zalecamy, aby Twoja Przeglądarka automatycznie prezentowała swoją wersję - będzie ona wyświetlana przed każdą Twoją wypowiedzią na tym czacie grupowym. Informacja te obejmuje aktualną wersję, skórkę, system operacyjny i status RLVa. Osoby z naszej załogi wsparcia będą mogły dać Ci bardziej sensowne porady, jeśli będą znać wersję Twojej Przeglądarki od razu.
Możesz włączyć lub wyłączyć tą funkcję w każdej chwili w górnej części okna czatu.

View File

@ -96,7 +96,7 @@
<button name="BeamColor_new" label="Utwórz nowe" tool_tip="Utwórz nowe Ustawienie" />
<button name="BeamColor_refresh" label="Odśwież listę" tool_tip="Odśwież listę Ustawień" />
<slider name="FSMaxBeamsPerSecond" label="Aktualizacje/sek:" tool_tip="Ile aktualizacji wiązki wysyłać w ciągu sekundy. Domyślnie 40" />
<check_box label="Włącz wiązkę wyboru" name="SLPartBeam" />
<check_box label="Włącz wiązkę wyboru" name="SLPartBeam" tool_tip="Wyłączenie tego ustawienia spowoduje, że wiązki wyboru nie będą renderowane lokalnie. Nie zapobiega to wysyłaniu wiązek wyboru do innych awatarów. Jeśli nie chcesz pokazywać swojego wyboru, to możesz temu zapobiec w Ustawienia -&gt; Prywatność -&gt; Śledzenie spojrzeń -&gt; Nie pokazuj innym celów moich wskazań." />
<check_box label="Wysyłaj dane selekcji na czat" name="FSParticleChat" tool_tip="Wysyła dane selekcji (rozpoczęcie jej lub zakończenie plus pozycję globalną) na kanał czatu 9000" />
<combo_box name="FSBeamShape_combo" tool_tip="Wybierz kształt wiązki cząsteczek" />
<button name="delete_beam" label="Usuń" tool_tip="Usuń tą wiązkę" />

View File

@ -5440,6 +5440,12 @@ Spróbuj załączyć ścieżkę do edytora w cytowaniu.
<string name="Command_Fly_Tooltip">
Włącz/wyłącz tryb latania (HOME)
</string>
<string name="Command_Stop_Animations_Label">
Zatrzymaj animacje
</string>
<string name="Command_Stop_Animations_Tooltip">
Zatrzymaj animacje
</string>
<string name="Retain%">
%Zachowania
</string>

View File

@ -5433,6 +5433,12 @@ Tente colocar o caminho do editor entre aspas.
<string name="Toolbar_Right_Tooltip">
atualmente na sua barra de ferramentas direita
</string>
<string name="Command_Stop_Animations_Label">
Parar minha animação
</string>
<string name="Command_Stop_Animations_Tooltip">
Parar minha animação
</string>
<string name="Retain%">
Reter%
</string>

View File

@ -4034,7 +4034,8 @@ URL: [MEDIAURL]
<notification name="CacheEmpty">
Кэш вашего клиента очищен. Пожалуйста, помните, что вы можете испытать замедление работы клиента и высокую нагрузку в течение короткого времени, пока загружается контент.
</notification>
<notification name="FirstJoinSupportGroup">
<!-- Commented out because without an update it would show false information!
<notification name="FirstJoinSupportGroup2">
Добро пожаловать в группу технической поддержки Firestorm!
Для того, чтобы команде технической поддержки было проще, рекомендуется сообщить версию Вашего клиента в группе. Вы можете выбрать для отображения версии вашего клиента находясь непосредственно в группе. Наша команда технической поддержки может дать вам более корректную информацию, если они знают версию вашего клиента.
@ -4048,8 +4049,8 @@ URL: [MEDIAURL]
<button name="Cancel_okcancelignore" text="Нет"/>
<ignore name="ignore" text="Присоединение к группе технической поддержки The Phoenix/Firestorm"/>
</form>
</notification>
-->
<notification name="ConfirmScriptModify">
Вы уверены, что хотите изменить скрипты в выбранных объектах?
<usetemplate ignoretext="Подтвердить прежде чем изменить скрипты в выбранных объектах" name="okcancelignore" notext="Отмена" yestext="OK"/>

View File

@ -5989,6 +5989,12 @@ support@secondlife.com.
<string name="Command_Fly_Tooltip">
Переключение режима полета Включено/Выключено (Дом)
</string>
<string name="Command_Stop_Animations_Label">
Остановить анимации аватара
</string>
<string name="Command_Stop_Animations_Tooltip">
Остановить анимации аватара
</string>
<string name="Retain%">
Остаток%
</string>

View File

@ -5601,6 +5601,12 @@ Düzenleyici yolunu çift tırnakla çevrelemeyi deneyin.
<string name="Toolbar_Right_Tooltip">
şu anda sağ araç çubuğunuzda
</string>
<string name="Command_Stop_Animations_Label">
Beni Anime Etmeyi Durdur
</string>
<string name="Command_Stop_Animations_Tooltip">
Beni Anime Etmeyi Durdur
</string>
<string name="Retain%">
Koru %
</string>

View File

@ -5557,6 +5557,12 @@ http://secondlife.com/support 求助解決問題。
<string name="Toolbar_Right_Tooltip">
目前位在你的右工具列
</string>
<string name="Command_Stop_Animations_Label">
停止我身上的動作
</string>
<string name="Command_Stop_Animations_Tooltip">
停止我身上的動作
</string>
<string name="Retain%">
保留%
</string>

View File

@ -419,7 +419,7 @@
width="115"
follows="left|top">
<check_box
control_name="FSSupportGroupChatPrefix2"
control_name="FSSupportGroupChatPrefix3"
follows="left|top"
height="19"
label="Specify version"

View File

@ -3,13 +3,13 @@
legacy_header_height="18"
can_minimize="false"
can_resize="true"
height="330"
height="360"
layout="topleft"
min_height="330"
min_width="410"
name="texture picker"
help_topic="texture_picker"
title="PICK: TEXTURE"
title="Pick: Texture"
width="410">
<!-- top static -->
@ -249,6 +249,26 @@
</scroll_list>
<!-- bottom static -->
<line_editor
follows="bottom"
height="20"
left="7"
top="-55"
max_length_chars="256"
name="TextureKey"
layout="topleft"
label="00000000-0000-0000-0000-000000000000"
tool_tip="Texture Key"
width="290"/>
<button
follows="bottom"
name="TextureKeyApply"
height="20"
label="Apply UUID"
layout="topleft"
left_pad="5"
width="100"
tool_tip="Apply this UUID"/>
<button
follows="bottom"
height="20"
@ -269,16 +289,4 @@
top_delta="0"
name="Cancel"
width="100" />
<!-- FS:Ansariel - exists twice
<check_box
follows="left|bottom"
height="20"
initial_value="true"
label="Apply now"
layout="topleft"
left="4"
name="apply_immediate_check"
top_delta="0"
width="120" />
-->
</floater>