Merge branch 'DRTVWR-591-maint-X' of https://github.com/secondlife/viewer

# Conflicts:
#	indra/newview/app_settings/settings.xml
#	indra/newview/llchannelmanager.cpp
#	indra/newview/llcompilequeue.cpp
#	indra/newview/lldrawpoolground.cpp
#	indra/newview/llfloaterpreference.cpp
#	indra/newview/llfloaterworldmap.cpp
#	indra/newview/llimprocessing.cpp
#	indra/newview/llvieweraudio.cpp
#	indra/newview/llviewerdisplay.cpp
#	indra/newview/llviewerobject.cpp
master
Ansariel 2023-09-27 20:16:00 +02:00
commit 48d2534cef
31 changed files with 88 additions and 878 deletions

View File

@ -337,9 +337,9 @@ S32 LLFolderView::arrange( S32* unused_width, S32* unused_height )
void LLFolderView::filter( LLFolderViewFilter& filter )
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_UI;
static LLCachedControl<S32> time_visible(*LLUI::getInstance()->mSettingGroups["config"], "FilterItemsMaxTimePerFrameVisible", 10);
static LLCachedControl<S32> time_invisible(*LLUI::getInstance()->mSettingGroups["config"], "FilterItemsMaxTimePerFrameUnvisible", 1);
filter.resetTime(llclamp((mParentPanel.get()->getVisible() ? time_visible() : time_invisible()), 1, 100));
const S32 TIME_VISIBLE = 10; // in milliseconds
const S32 TIME_INVISIBLE = 1;
filter.resetTime(llclamp((mParentPanel.get()->getVisible() ? TIME_VISIBLE : TIME_INVISIBLE), 1, 100));
// Note: we filter the model, not the view
getViewModelItem()->filter(filter);

File diff suppressed because it is too large Load Diff

View File

@ -487,18 +487,6 @@
<integer>0</integer>
</map>
<key>RenderAvatar</key>
<map>
<key>Comment</key>
<string>Render Avatars</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>RenderVolumeLODFactor</key>
<map>
<key>Comment</key>

View File

@ -154,9 +154,8 @@ void LLChannelManager::onLoginCompleted()
gViewerWindow->getRootView()->addChild(mStartUpChannel);
// init channel's position and size
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
mStartUpChannel->init(channel_right_bound - channel_width, channel_right_bound);
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
mStartUpChannel->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound);
// <FS:Ansariel> Optional legacy notification well
//mStartUpChannel->setMouseDownCallback(boost::bind(&LLFloaterNotificationsTabbed::onStartUpToastClick, LLFloaterNotificationsTabbed::getInstance(), _2, _3, _4));
if (!gSavedSettings.getBOOL("FSInternalLegacyNotificationWell"))

View File

@ -71,6 +71,7 @@ namespace
{
const std::string QUEUE_EVENTPUMP_NAME("ScriptActionQueue");
const F32 QUEUE_INVENTORY_FETCH_TIMEOUT = 300.f;
// ObjectIventoryFetcher is an adapter between the LLVOInventoryListener::inventoryChanged
// callback mechanism and the LLEventPump coroutine architecture allowing the
@ -461,8 +462,6 @@ bool LLFloaterCompileQueue::processScript(LLHandle<LLFloaterCompileQueue> hfloat
// Dereferencing floater may fail. If they do they throw LLExeceptionStaleHandle.
// which is caught in objectScriptProcessingQueueCoro
bool monocompile = floater->mMono;
F32 fetch_timeout = gSavedSettings.getF32("QueueInventoryFetchTimeout");
// Initial test to see if we can (or should) attempt to compile the script.
LLInventoryItem *item = dynamic_cast<LLInventoryItem *>(inventory);
@ -493,14 +492,14 @@ bool LLFloaterCompileQueue::processScript(LLHandle<LLFloaterCompileQueue> hfloat
//LLExperienceCache::instance().fetchAssociatedExperience(inventory->getParentUUID(), inventory->getUUID(),
// boost::bind(&LLFloaterCompileQueue::handleHTTPResponse, pump.getName(), _1));
//result = llcoro::suspendUntilEventOnWithTimeout(pump, fetch_timeout,
//result = llcoro::suspendUntilEventOnWithTimeout(pump, QUEUE_INVENTORY_FETCH_TIMEOUT,
// LLSDMap("timeout", LLSD::Boolean(true)));
if (object->getRegion() && object->getRegion()->isCapabilityAvailable("GetMetadata"))
{
LLExperienceCache::instance().fetchAssociatedExperience(inventory->getParentUUID(), inventory->getUUID(),
boost::bind(&LLFloaterCompileQueue::handleHTTPResponse, pump.getName(), _1));
result = llcoro::suspendUntilEventOnWithTimeout(pump, fetch_timeout,
result = llcoro::suspendUntilEventOnWithTimeout(pump, QUEUE_INVENTORY_FETCH_TIMEOUT,
LLSDMap("timeout", LLSD::Boolean(true)));
}
else
@ -568,7 +567,7 @@ bool LLFloaterCompileQueue::processScript(LLHandle<LLFloaterCompileQueue> hfloat
&LLFloaterCompileQueue::handleScriptRetrieval,
&userData);
result = llcoro::suspendUntilEventOnWithTimeout(pump, fetch_timeout,
result = llcoro::suspendUntilEventOnWithTimeout(pump, QUEUE_INVENTORY_FETCH_TIMEOUT,
LLSDMap("timeout", LLSD::Boolean(true)));
}
@ -622,7 +621,7 @@ bool LLFloaterCompileQueue::processScript(LLHandle<LLFloaterCompileQueue> hfloat
LLViewerAssetUpload::EnqueueInventoryUpload(url, uploadInfo);
}
result = llcoro::suspendUntilEventOnWithTimeout(pump, fetch_timeout, LLSDMap("timeout", LLSD::Boolean(true)));
result = llcoro::suspendUntilEventOnWithTimeout(pump, QUEUE_INVENTORY_FETCH_TIMEOUT, LLSDMap("timeout", LLSD::Boolean(true)));
floater.check();
@ -951,8 +950,6 @@ void LLFloaterScriptQueue::objectScriptProcessingQueueCoro(std::string action, L
// Dereferencing floater may fail. If they do they throw LLExeceptionStaleHandle.
// This is expected if the dialog closes.
LLEventMailDrop maildrop(QUEUE_EVENTPUMP_NAME, true);
F32 fetch_timeout = gSavedSettings.getF32("QueueInventoryFetchTimeout");
try
{
@ -974,7 +971,7 @@ void LLFloaterScriptQueue::objectScriptProcessingQueueCoro(std::string action, L
args["[OBJECT_NAME]"] = (*itObj).mObjectName;
floater->addStringMessage(floater->getString("LoadingObjInv", args));
LLSD result = llcoro::suspendUntilEventOnWithTimeout(maildrop, fetch_timeout,
LLSD result = llcoro::suspendUntilEventOnWithTimeout(maildrop, QUEUE_INVENTORY_FETCH_TIMEOUT,
LLSDMap("timeout", LLSD::Boolean(true)));
if (result.has("timeout"))

View File

@ -365,6 +365,7 @@ void LLControlAvatar::idleUpdate(LLAgent &agent, const F64 &time)
void LLControlAvatar::markDead()
{
mRootVolp = NULL;
super::markDead();
mControlAVBridge = NULL;
}

View File

@ -54,14 +54,14 @@ void LLDrawPoolGround::prerender()
void LLDrawPoolGround::render(S32 pass)
{
// <FS:PP> Attempt to speed up things a little
// if (mDrawFace.empty() || !gSavedSettings.getBOOL("RenderGround"))
// if (mDrawFace.empty() || !LLGLSLShader::sCurBoundShaderPtr || !gSavedSettings.getBOOL("RenderGround"))
static LLCachedControl<bool> RenderGround(gSavedSettings, "RenderGround");
if (mDrawFace.empty() || !RenderGround)
if (mDrawFace.empty() || !LLGLSLShader::sCurBoundShaderPtr || !RenderGround)
// </FS:PP>
{
return;
}
}
LLGLSPipelineDepthTestSkyBox gls_skybox(true, false);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);

View File

@ -837,22 +837,7 @@ void LLFloaterPreference::onShowGroupNoticesTopRightChanged()
void LLFloaterPreference::updateDeleteTranscriptsButton()
{
// <FS:ND> LLLogChat::getListOfTranscriptFiles will go through the whole chatlog dir, reach a bit of each file,
// then append this file to the return-list if it seems to be valid.
// All this only to see if there is at least one item.
// There's two ways to make this faster:
// 1. Make a new function which returns just true/false and exist with true as soon as one valid file is found.
// 2. Always enable this button.
// There seems to be little reason why this button should ever be disabled, so 2. it is, unless someone knows
// a good reason why 1. is the better way to handle this.
// std::vector<std::string> list_of_transcriptions_file_names;
// LLLogChat::getListOfTranscriptFiles(list_of_transcriptions_file_names);
// getChild<LLButton>("delete_transcripts")->setEnabled(list_of_transcriptions_file_names.size() > 0);
getChild<LLButton>("delete_transcripts")->setEnabled( true );
// </FS:ND>
getChild<LLButton>("delete_transcripts")->setEnabled(LLLogChat::transcriptFilesExist());
}
void LLFloaterPreference::onDoNotDisturbResponseChanged()
@ -2226,12 +2211,6 @@ void LLFloaterPreference::refreshEnabledState()
LLCheckBoxCtrl* bumpshiny_ctrl = getChild<LLCheckBoxCtrl>("BumpShiny");
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
bumpshiny_ctrl->setEnabled(bumpshiny ? TRUE : FALSE);
// <FS:Ansariel> Does not exist
//LLCheckBoxCtrl* ctrl_enhanced_skel = getChild<LLCheckBoxCtrl>("AvatarEnhancedSkeleton");
//bool enhanced_skel_enabled = gSavedSettings.getBOOL("IncludeEnhancedSkeleton");
//ctrl_enhanced_skel->setValue(enhanced_skel_enabled);
// </FS:Ansariel>
// Avatar Mode
// Avatar Render Mode

View File

@ -51,12 +51,6 @@ public:
LLSearchHandler() : LLCommandHandler("search", UNTRUSTED_CLICK_ONLY) { }
bool handle(const LLSD& tokens, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web)
{
if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableSearch"))
{
LLNotificationsUtil::add("NoSearch", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
return true;
}
const size_t parts = tokens.size();
// get the (optional) category for the search

View File

@ -144,12 +144,6 @@ public:
}
// </FS:Ansariel>
if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableWorldMap"))
{
LLNotificationsUtil::add("NoWorldMap", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
return true;
}
if (params.size() == 0)
{
// support the secondlife:///app/worldmap SLapp
@ -185,12 +179,6 @@ public:
const std::string& grid,
LLMediaCtrl* web)
{
if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableWorldMap"))
{
LLNotificationsUtil::add("NoWorldMap", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
return true;
}
//Make sure we have some parameters
if (params.size() == 0)
{

View File

@ -104,12 +104,6 @@ public:
return true;
}
if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableGroupInfo"))
{
LLNotificationsUtil::add("NoGroupInfo", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
return true;
}
if (tokens.size() < 1)
{
return false;

View File

@ -54,9 +54,8 @@ LLIMHandler::~LLIMHandler()
//--------------------------------------------------------------------------
void LLIMHandler::initChannel()
{
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
mChannel.get()->init(channel_right_bound - channel_width, channel_right_bound);
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
mChannel.get()->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound);
}
//--------------------------------------------------------------------------

View File

@ -229,9 +229,15 @@ void inventory_offer_handler(LLOfferInfo* info)
}
// <FS:Ansariel> Keep auto-accept option
bool bAutoAccept(false);
// Avoid the Accept/Discard dialog if the user so desires. JC
// <FS:Ansariel> Auto-accept any kind of inventory (FIRE-4128)
//if (gSavedSettings.getBOOL("AutoAcceptNewInventory")
// && (info->mType == LLAssetType::AT_NOTECARD
// || info->mType == LLAssetType::AT_LANDMARK
// || info->mType == LLAssetType::AT_TEXTURE))
// if (gSavedSettings.getBOOL("AutoAcceptNewInventory"))
// </FS:Ansariel> Auto-accept any kind of inventory (FIRE-4128)
// [RLVa:KB]
// Don't auto-accept give-to-RLV inventory offers
if ( (gSavedSettings.getBOOL("AutoAcceptNewInventory")) &&
@ -242,7 +248,6 @@ void inventory_offer_handler(LLOfferInfo* info)
// and possibly open them on receipt depending upon "ShowNewInventory".
bAutoAccept = true;
}
// </FS:Ansariel>
// Strip any SLURL from the message display. (DEV-2754)
std::string msg = info->mDesc;
@ -312,7 +317,7 @@ void inventory_offer_handler(LLOfferInfo* info)
LLNotification::Params p;
// Object -> Agent Inventory Offer
if (info->mFromObject && !bAutoAccept) // <FS:Ansariel> Keep auto-accept option
if (info->mFromObject && !bAutoAccept)
{
// [RLVa:KB] - Checked: RLVa-1.2.2
// Only filter if the object owner is a nearby agent
@ -397,7 +402,6 @@ void inventory_offer_handler(LLOfferInfo* info)
send_do_not_disturb_message(gMessageSystem, info->mFromID);
}
// <FS:Ansariel> Keep auto-accept option
if (!bAutoAccept) // if we auto accept, do not pester the user
{
// Inform user that there is a script floater via toast system
@ -405,7 +409,6 @@ void inventory_offer_handler(LLOfferInfo* info)
p.payload = payload;
LLPostponedNotification::add<LLPostponedOfferNotification>(p, info->mFromID, false);
}
// </FS:Ansariel>
// <FS:Ansariel> FIRE-19540: Log auto-accepted inventory to nearby chat
else if (gSavedSettings.getBOOL("FSLogAutoAcceptInventoryToChat"))
{

View File

@ -45,8 +45,8 @@ LLInspect::~LLInspect()
// virtual
void LLInspect::draw()
{
static LLCachedControl<F32> FADE_TIME(*LLUI::getInstance()->mSettingGroups["config"], "InspectorFadeTime", 1.f);
static LLCachedControl<F32> STAY_TIME(*LLUI::getInstance()->mSettingGroups["config"], "InspectorShowTime", 1.f);
const F32 FADE_TIME = 0.5f;
const F32 STAY_TIME = 3.f;
if (mOpenTimer.getStarted())
{
LLFloater::draw();
@ -59,7 +59,7 @@ void LLInspect::draw()
}
else if (mCloseTimer.getStarted())
{
F32 alpha = clamp_rescale(mCloseTimer.getElapsedTimeF32(), 0.f, FADE_TIME(), 1.f, 0.f);
F32 alpha = clamp_rescale(mCloseTimer.getElapsedTimeF32(), 0.f, FADE_TIME, 1.f, 0.f);
LLViewDrawContext context(alpha);
LLFloater::draw();
if (mCloseTimer.getElapsedTimeF32() > FADE_TIME)

View File

@ -113,6 +113,7 @@ typedef std::pair<LLUUID, LLUUID> two_uuids_t;
typedef std::list<two_uuids_t> two_uuids_list_t;
const F32 SOUND_GAIN = 1.0f;
const F32 FOLDER_LOADING_MESSAGE_DELAY = 0.5f; // Seconds to wait before showing the LOADING... text in folder views
struct LLMoveInv
{
@ -2509,9 +2510,7 @@ void LLFolderBridge::buildDisplayName() const
std::string LLFolderBridge::getLabelSuffix() const
{
static LLCachedControl<F32> folder_loading_message_delay(gSavedSettings, "FolderLoadingMessageWaitTime", 0.5f);
if (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= folder_loading_message_delay())
if (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= FOLDER_LOADING_MESSAGE_DELAY)
{
return llformat(" (%s) ", LLTrans::getString("LoadingData").c_str());
}
@ -5236,9 +5235,7 @@ LLUIImagePtr LLMarketplaceFolderBridge::getMarketplaceFolderIcon(BOOL is_open) c
std::string LLMarketplaceFolderBridge::getLabelSuffix() const
{
static LLCachedControl<F32> folder_loading_message_delay(gSavedSettings, "FolderLoadingMessageWaitTime", 0.5f);
if (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= folder_loading_message_delay())
if (mIsLoading && mTimeSinceRequestStart.getElapsedTimeF32() >= FOLDER_LOADING_MESSAGE_DELAY)
{
return llformat(" (%s) ", LLTrans::getString("LoadingData").c_str());
}

View File

@ -744,6 +744,27 @@ std::string LLLogChat::oldLogFileName(std::string filename)
return scanResult;
}
bool LLLogChat::transcriptFilesExist()
{
std::string pattern = "*." + LL_TRANSCRIPT_FILE_EXTENSION;
// get Users log directory
std::string dirname = gDirUtilp->getPerAccountChatLogsDir();
// add final OS dependent delimiter
dirname += gDirUtilp->getDirDelimiter();
LLDirIterator iter(dirname, pattern);
std::string filename;
while (iter.next(filename))
{
std::string fullname = gDirUtilp->add(dirname, filename);
if (isTranscriptFileFound(fullname))
{
return true;
}
}
return false;
}
// static
void LLLogChat::findTranscriptFiles(std::string pattern, std::vector<std::string>& list_of_transcriptions)
{

View File

@ -103,6 +103,7 @@ public:
const std::string& from,
const LLUUID& from_id,
const std::string& line);
static bool transcriptFilesExist();
static void findTranscriptFiles(std::string pattern, std::vector<std::string>& list_of_transcriptions);
static void getListOfTranscriptFiles(std::vector<std::string>& list);
static void getListOfTranscriptBackupFiles(std::vector<std::string>& list_of_transcriptions);

View File

@ -56,9 +56,8 @@ LLGroupHandler::~LLGroupHandler()
//--------------------------------------------------------------------------
void LLGroupHandler::initChannel()
{
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
mChannel.get()->init(channel_right_bound - channel_width, channel_right_bound);
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
mChannel.get()->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound);
}
//--------------------------------------------------------------------------

View File

@ -66,8 +66,7 @@ LLOfferHandler::~LLOfferHandler()
void LLOfferHandler::initChannel()
{
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
mChannel.get()->init(channel_right_bound - channel_width, channel_right_bound);
mChannel.get()->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound);
}
//--------------------------------------------------------------------------

View File

@ -65,9 +65,8 @@ LLScriptHandler::~LLScriptHandler()
//--------------------------------------------------------------------------
void LLScriptHandler::initChannel()
{
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
mChannel.get()->init(channel_right_bound - channel_width, channel_right_bound);
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
mChannel.get()->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound);
}
//--------------------------------------------------------------------------

View File

@ -63,9 +63,8 @@ LLTipHandler::~LLTipHandler()
//--------------------------------------------------------------------------
void LLTipHandler::initChannel()
{
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
S32 channel_width = gSavedSettings.getS32("NotifyBoxWidth");
mChannel.get()->init(channel_right_bound - channel_width, channel_right_bound);
S32 channel_right_bound = gViewerWindow->getWorldViewRectScaled().mRight - gSavedSettings.getS32("NotificationChannelRightMargin");
mChannel.get()->init(channel_right_bound - NOTIFY_BOX_WIDTH, channel_right_bound);
}
//--------------------------------------------------------------------------

View File

@ -99,12 +99,6 @@ public:
return true;
}
if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnablePicks"))
{
LLNotificationsUtil::add("NoPicks", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
return true;
}
// handle app/pick/create urls first
if (params.size() == 1 && params[0].asString() == "create")
{

View File

@ -39,6 +39,8 @@ namespace LLNotificationsUI
const LLUUID NEARBY_CHAT_CHANNEL_UUID("E1158BD6-661C-4981-9DAD-4DCBFF062502");
const LLUUID STARTUP_CHANNEL_UUID("B56AF90D-6684-48E4-B1E4-722D3DEB2CB6");
const S32 NOTIFY_BOX_WIDTH = 305;
typedef enum e_notification_toast_alignment
{
NA_TOP,

View File

@ -1323,17 +1323,8 @@ void drawBox(const LLVector4a& c, const LLVector4a& r)
void drawBoxOutline(const LLVector3& pos, const LLVector3& size)
{
llassert(pos.isFinite());
llassert(size.isFinite());
llassert(!llisnan(pos.mV[0]));
llassert(!llisnan(pos.mV[1]));
llassert(!llisnan(pos.mV[2]));
llassert(!llisnan(size.mV[0]));
llassert(!llisnan(size.mV[1]));
llassert(!llisnan(size.mV[2]));
if (!pos.isFinite() || !size.isFinite())
return;
LLVector3 v1 = size.scaledVec(LLVector3( 1, 1,1));
LLVector3 v2 = size.scaledVec(LLVector3(-1, 1,1));

View File

@ -227,6 +227,13 @@ BOOL LLVisualParamHint::render()
LLVector3 target_pos = target_joint_pos + (target_offset * avatar_rotation);
F32 cam_angle_radians = mVisualParam->getCameraAngle() * DEG_TO_RAD;
static LLCachedControl<bool> auto_camera_position(gSavedSettings, "AppearanceCameraMovement");
if (!auto_camera_position)
{
cam_angle_radians += F_PI;
}
LLVector3 camera_snapshot_offset(
mVisualParam->getCameraDistance() * cosf( cam_angle_radians ),
mVisualParam->getCameraDistance() * sinf( cam_angle_radians ),

View File

@ -50,6 +50,8 @@
#include "llvoavatarself.h"
/////////////////////////////////////////////////////////
const U32 FMODEX_DECODE_BUFFER_SIZE = 1000; // in milliseconds
const U32 FMODEX_STREAM_BUFFER_SIZE = 7000; // in milliseconds
LLViewerAudio::LLViewerAudio() :
mDone(true),
@ -130,7 +132,7 @@ void LLViewerAudio::startInternetStreamWithAutoFade(const std::string &streamURI
LLStreamingAudioInterface *stream = gAudiop->getStreamingAudioImpl();
if (stream && stream->supportsAdjustableBufferSizes())
stream->setBufferSizes(gSavedSettings.getU32("FMODStreamBufferSize"), gSavedSettings.getU32("FMODDecodeBufferSize"));
stream->setBufferSizes(FMODEX_STREAM_BUFFER_SIZE, FMODEX_DECODE_BUFFER_SIZE);
gAudiop->startInternetStream(mNextStreamURI);
}
@ -197,7 +199,7 @@ bool LLViewerAudio::onIdleUpdate()
LL_DEBUGS("AudioEngine") << "Audio fade in: " << mNextStreamURI << LL_ENDL;
LLStreamingAudioInterface *stream = gAudiop->getStreamingAudioImpl();
if(stream && stream->supportsAdjustableBufferSizes())
stream->setBufferSizes(gSavedSettings.getU32("FMODStreamBufferSize"),gSavedSettings.getU32("FMODDecodeBufferSize"));
stream->setBufferSizes(FMODEX_STREAM_BUFFER_SIZE, FMODEX_DECODE_BUFFER_SIZE);
gAudiop->startInternetStream(mNextStreamURI);
}

View File

@ -231,15 +231,11 @@ void display_update_camera()
void display_stats()
{
LL_PROFILE_ZONE_SCOPED
// <FS:Ansariel> gSavedSettings replacement
//F32 fps_log_freq = gSavedSettings.getF32("FPSLogFrequency");
static LLCachedControl<F32> fpsLogFrequency(gSavedSettings, "FPSLogFrequency");
F32 fps_log_freq = (F32)fpsLogFrequency;
// </FS:Ansariel>
if (fps_log_freq > 0.f && gRecentFPSTime.getElapsedTimeF32() >= fps_log_freq)
const F32 FPS_LOG_FREQUENCY = 10.f;
if (gRecentFPSTime.getElapsedTimeF32() >= FPS_LOG_FREQUENCY)
{
LL_PROFILE_ZONE_NAMED_CATEGORY_DISPLAY("DS - FPS");
F32 fps = gRecentFrameCount / fps_log_freq;
F32 fps = gRecentFrameCount / FPS_LOG_FREQUENCY;
LL_INFOS() << llformat("FPS: %.02f", fps) << LL_ENDL;
gRecentFrameCount = 0;
gRecentFPSTime.reset();

View File

@ -3310,7 +3310,6 @@ void LLViewerObject::unlinkControlAvatar()
if (mControlAvatar)
{
mControlAvatar->markForDeath();
mControlAvatar->mRootVolp = NULL;
mControlAvatar = NULL;
}
}

View File

@ -594,7 +594,7 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
LLHost request_from_host)
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
static LLCachedControl<bool> fast_cache_fetching_enabled(gSavedSettings, "FastCacheFetchEnabled", true);
static LLCachedControl<bool> fast_cache_fetching_enabled(gSavedSettings, "FastCacheFetchEnabled", true); // <FS:Ansariel> Keep Fast Cache option
LLPointer<LLViewerFetchedTexture> imagep ;
switch(texture_type)
@ -633,11 +633,13 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
imagep->forceActive() ;
}
// <FS:Ansariel> Keep Fast Cache option
if(fast_cache_fetching_enabled)
{
mFastCacheList.insert(imagep);
imagep->setInFastCacheList(true);
}
// </FS:Ansariel>
return imagep ;
}

View File

@ -40,12 +40,6 @@ public:
bool handle(const LLSD& params, const LLSD& query_map, const std::string& grid, LLMediaCtrl* web)
{
if (!LLUI::getInstance()->mSettingGroups["config"]->getBOOL("EnableVoiceCall"))
{
LLNotificationsUtil::add("NoVoiceCall", LLSD(), LLSD(), std::string("SwitchToStandardSkinAndQuit"));
return true;
}
//Make sure we have some parameters
if (params.size() == 0)
{

View File

@ -769,7 +769,10 @@ bool LLVOSky::updateSky()
mForceUpdate = FALSE;
mForceUpdateThrottle.setTimerExpirySec(UPDATE_EXPRY);
gPipeline.markRebuild(gSky.mVOGroundp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_GROUND))
{
gPipeline.markRebuild(gSky.mVOGroundp->mDrawable, LLDrawable::REBUILD_ALL, TRUE);
}
if (mDrawable.notNull() && mDrawable->getFace(0) && !mDrawable->getFace(0)->getVertexBuffer())
{