Merge branch 'DRTVWR-507-maint' of https://bitbucket.org/lindenlab/viewer
commit
64f80748e7
|
|
@ -359,7 +359,6 @@ protected:
|
|||
virtual parammapping_t getParameterMap() const { return parammapping_t(); }
|
||||
|
||||
LLSD mSettings;
|
||||
bool mIsValid;
|
||||
|
||||
LLSD cloneSettings() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@
|
|||
#include "llstring.h"
|
||||
#include "llurlaction.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewermenu.h"
|
||||
#include "llviewernetwork.h"
|
||||
|
||||
#include "fscommon.h"
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
#include "fsfloaterim.h"
|
||||
#include "llimview.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "lloutputmonitorctrl.h"
|
||||
#include "fsparticipantlist.h"
|
||||
#include "llspeakers.h"
|
||||
#include "lltextutil.h"
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@
|
|||
#include "llparcel.h"
|
||||
#include "lltrans.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewermenu.h"
|
||||
#include "llviewernetwork.h" //LLGridManager
|
||||
#include "llviewerparcelmgr.h"
|
||||
#include "llviewerregion.h"
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "llimview.h"
|
||||
#include "llnotifications.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "lloutputmonitorctrl.h"
|
||||
#include "llspeakers.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewermenu.h"
|
||||
|
|
|
|||
|
|
@ -30,12 +30,6 @@
|
|||
#include "llhandle.h"
|
||||
|
||||
#include "llaccountingcost.h"
|
||||
#include "httpcommon.h"
|
||||
#include "llcoros.h"
|
||||
#include "lleventcoro.h"
|
||||
#include "httprequest.h"
|
||||
#include "httpheaders.h"
|
||||
#include "httpoptions.h"
|
||||
|
||||
//===============================================================================
|
||||
// An interface class for panels which display the parcel accounting information.
|
||||
|
|
|
|||
|
|
@ -50,20 +50,15 @@ extern const BOOL ANIMATE;
|
|||
extern const U8 AGENT_STATE_TYPING; // Typing indication
|
||||
extern const U8 AGENT_STATE_EDITING; // Set when agent has objects selected
|
||||
|
||||
class LLChat;
|
||||
class LLViewerRegion;
|
||||
class LLMotion;
|
||||
class LLToolset;
|
||||
class LLMessageSystem;
|
||||
class LLPermissions;
|
||||
class LLHost;
|
||||
class LLFriendObserver;
|
||||
class LLPickInfo;
|
||||
class LLViewerObject;
|
||||
class LLAgentDropGroupViewerNode;
|
||||
class LLAgentAccess;
|
||||
class LLSLURL;
|
||||
class LLPauseRequestHandle;
|
||||
class LLUIColor;
|
||||
class LLTeleportRequest;
|
||||
|
||||
|
|
@ -94,8 +89,6 @@ struct LLGroupData
|
|||
|
||||
class LLAgentListener;
|
||||
|
||||
class LLAgentImpl;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// LLAgent
|
||||
//------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
#include <map>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include "llhttpretrypolicy.h"
|
||||
#include "llviewerinventory.h"
|
||||
#include "llcorehttputil.h"
|
||||
#include "llcoproceduremanager.h"
|
||||
|
|
|
|||
|
|
@ -3668,6 +3668,50 @@ void update_base_outfit_after_ordering()
|
|||
bool copy_folder_links = false;
|
||||
app_mgr.slamCategoryLinks(app_mgr.getCOF(), base_outfit_id, copy_folder_links, dirty_state_updater);
|
||||
|
||||
if (base_outfit_id.notNull())
|
||||
{
|
||||
LLIsValidItemLink collector;
|
||||
|
||||
LLInventoryModel::cat_array_t cof_cats;
|
||||
LLInventoryModel::item_array_t cof_item_array;
|
||||
gInventory.collectDescendentsIf(app_mgr.getCOF(), cof_cats, cof_item_array,
|
||||
LLInventoryModel::EXCLUDE_TRASH, collector);
|
||||
|
||||
for (U32 i = 0; i < outfit_item_array.size(); ++i)
|
||||
{
|
||||
LLViewerInventoryItem* linked_item = outfit_item_array.at(i)->getLinkedItem();
|
||||
if (linked_item != NULL && linked_item->getActualType() == LLAssetType::AT_TEXTURE)
|
||||
{
|
||||
outfit_item_array.erase(outfit_item_array.begin() + i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (outfit_item_array.size() != cof_item_array.size())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
std::sort(cof_item_array.begin(), cof_item_array.end(), sort_by_linked_uuid);
|
||||
std::sort(outfit_item_array.begin(), outfit_item_array.end(), sort_by_linked_uuid);
|
||||
|
||||
for (U32 i = 0; i < cof_item_array.size(); ++i)
|
||||
{
|
||||
LLViewerInventoryItem *cof_it = cof_item_array.at(i);
|
||||
LLViewerInventoryItem *base_it = outfit_item_array.at(i);
|
||||
|
||||
if (cof_it->getActualDescription() != base_it->getActualDescription())
|
||||
{
|
||||
if (cof_it->getLinkedUUID() == base_it->getLinkedUUID())
|
||||
{
|
||||
base_it->setDescription(cof_it->getActualDescription());
|
||||
gInventory.updateItem(base_it);
|
||||
}
|
||||
}
|
||||
}
|
||||
LLAppearanceMgr::getInstance()->updateIsDirty();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Save COF changes - update the contents of the current base outfit
|
||||
|
|
|
|||
|
|
@ -675,8 +675,9 @@ static void settings_to_globals()
|
|||
static void settings_modify()
|
||||
{
|
||||
LLRenderTarget::sUseFBO = gSavedSettings.getBOOL("RenderDeferred");
|
||||
LLPipeline::sRenderTransparentWater = gSavedSettings.getBOOL("RenderTransparentWater");
|
||||
LLPipeline::sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
|
||||
LLPipeline::sRenderDeferred = LLPipeline::sRenderBump && gSavedSettings.getBOOL("RenderDeferred");
|
||||
LLPipeline::sRenderDeferred = LLPipeline::sRenderTransparentWater && LLPipeline::sRenderBump && gSavedSettings.getBOOL("RenderDeferred");
|
||||
LLVOSurfacePatch::sLODFactor = gSavedSettings.getF32("RenderTerrainLODFactor");
|
||||
LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //square lod factor to get exponential range of [1,4]
|
||||
gDebugGL = gSavedSettings.getBOOL("RenderDebugGL") || gDebugSession;
|
||||
|
|
|
|||
|
|
@ -30,8 +30,6 @@
|
|||
|
||||
#include "llsingleton.h"
|
||||
|
||||
class LLViewerInventoryItem;
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
// LLAttachmentsMgr
|
||||
//
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
|
||||
#include "lliconctrl.h"
|
||||
#include "llavatarpropertiesprocessor.h"
|
||||
#include "llviewermenu.h"
|
||||
|
||||
class LLAvatarName;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@
|
|||
#include <boost/signals2.hpp>
|
||||
|
||||
#include "llpanel.h"
|
||||
#include "lloutputmonitorctrl.h"
|
||||
#include "llbutton.h"
|
||||
#include "lltextbox.h"
|
||||
#include "llstyle.h"
|
||||
|
|
@ -38,6 +37,7 @@
|
|||
#include "llcallingcard.h" // for LLFriendObserver
|
||||
|
||||
class LLAvatarIconCtrl;
|
||||
class LLOutputMonitorCtrl;
|
||||
class LLAvatarName;
|
||||
class LLIconCtrl;
|
||||
class LLUICtrl;
|
||||
|
|
|
|||
|
|
@ -58,7 +58,6 @@
|
|||
#include "llinventorymodel.h"
|
||||
#include "llmultigesture.h"
|
||||
#include "llui.h"
|
||||
#include "llviewermenu.h"
|
||||
#include "lluictrlfactory.h"
|
||||
|
||||
//
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@
|
|||
#include "llstring.h"
|
||||
#include "llurlaction.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewermenu.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
// [RLVa:KB] - Checked: 2010-04-22 (RLVa-1.2.0f)
|
||||
#include "rlvcommon.h"
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@
|
|||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llchatitemscontainerctrl.h"
|
||||
#include "llchatmsgbox.h"
|
||||
#include "lltextbox.h"
|
||||
|
||||
#include "llavataractions.h"
|
||||
|
|
|
|||
|
|
@ -28,12 +28,13 @@
|
|||
#define LL_LLCHATITEMSCONTAINERCTRL_H_
|
||||
|
||||
#include "llchat.h"
|
||||
#include "llchatmsgbox.h"
|
||||
#include "llpanel.h"
|
||||
#include "llscrollbar.h"
|
||||
#include "llviewerchat.h"
|
||||
#include "lltoastpanel.h"
|
||||
|
||||
class LLChatMsgBox;
|
||||
|
||||
typedef enum e_show_item_header
|
||||
{
|
||||
CHATITEMHEADER_SHOW_ONLY_NAME = 0,
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include "llsingleton.h"
|
||||
#include "llsyswellwindow.h"
|
||||
#include "llfloaternotificationstabbed.h"
|
||||
#include "llviewermenu.h"
|
||||
// [SL:KB] - Patch: UI-Notifications | Checked: 2013-05-09 (Catznip-3.5)
|
||||
#include "llchannelmanager.h"
|
||||
// [/SL:KB]
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@
|
|||
// Classes
|
||||
//
|
||||
class LLColor4;
|
||||
class LLFloaterColorPicker;
|
||||
|
||||
class LLColorSwatchCtrl
|
||||
: public LLUICtrl
|
||||
|
|
|
|||
|
|
@ -29,14 +29,11 @@
|
|||
|
||||
#include "llinventory.h"
|
||||
#include "llviewerobject.h"
|
||||
#include "llvoinventorylistener.h"
|
||||
#include "lluuid.h"
|
||||
|
||||
#include "llfloater.h"
|
||||
#include "llscrolllistctrl.h"
|
||||
|
||||
#include "llviewerinventory.h"
|
||||
|
||||
#include "llevents.h"
|
||||
|
||||
// <FS:KC> [LSL PreProc]
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#include "lloutputmonitorctrl.h"
|
||||
|
||||
class LLTextBox;
|
||||
class LLFloater;
|
||||
class LLFloaterIMContainer;
|
||||
class LLConversationViewSession;
|
||||
class LLConversationViewParticipant;
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
#include "lldrawable.h"
|
||||
#include "lldrawpoolbump.h"
|
||||
#include "llface.h"
|
||||
#include "llvolume.h"
|
||||
#include "llmeshrepository.h"
|
||||
#include "llsky.h"
|
||||
#include "llviewercamera.h"
|
||||
|
|
|
|||
|
|
@ -62,9 +62,6 @@ F32 LLDrawPoolWater::sWaterFogEnd = 0.f;
|
|||
LLDrawPoolWater::LLDrawPoolWater() : LLFacePool(POOL_WATER)
|
||||
{
|
||||
// <FS:Zi> Render speedup for water parameters
|
||||
gSavedSettings.getControl("RenderTransparentWater")->getCommitSignal()->connect(boost::bind(&LLDrawPoolWater::onRenderTransparentWaterChanged, this));
|
||||
onRenderTransparentWaterChanged();
|
||||
|
||||
gSavedSettings.getControl("RenderWaterMipNormal")->getCommitSignal()->connect(boost::bind(&LLDrawPoolWater::onRenderWaterMipNormalChanged, this));
|
||||
onRenderWaterMipNormalChanged();
|
||||
// </FS:Zi>
|
||||
|
|
@ -177,10 +174,7 @@ void LLDrawPoolWater::render(S32 pass)
|
|||
std::sort(mDrawFace.begin(), mDrawFace.end(), LLFace::CompareDistanceGreater());
|
||||
|
||||
// See if we are rendering water as opaque or not
|
||||
// <FS:Zi> Render speedup for water parameters
|
||||
// if (!gSavedSettings.getBOOL("RenderTransparentWater"))
|
||||
if (!mRenderTransparentWater)
|
||||
// </FS:Zi>
|
||||
if (!LLPipeline::sRenderTransparentWater)
|
||||
{
|
||||
// render water for low end hardware
|
||||
renderOpaqueLegacyWater();
|
||||
|
|
@ -830,13 +824,8 @@ LLColor3 LLDrawPoolWater::getDebugColor() const
|
|||
}
|
||||
|
||||
// <FS:Zi> Render speedup for water parameters
|
||||
void LLDrawPoolWater::onRenderTransparentWaterChanged()
|
||||
{
|
||||
mRenderTransparentWater = gSavedSettings.getBOOL("RenderTransparentWater");
|
||||
}
|
||||
|
||||
void LLDrawPoolWater::onRenderWaterMipNormalChanged()
|
||||
{
|
||||
mRenderWaterMipNormal = gSavedSettings.getBOOL("RenderWaterMipNormal");
|
||||
mRenderWaterMipNormal = (bool)gSavedSettings.getBOOL("RenderWaterMipNormal");
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
|
|
|||
|
|
@ -90,11 +90,9 @@ protected:
|
|||
void renderOpaqueLegacyWater();
|
||||
|
||||
// <FS:Zi> Render speedup for water parameters
|
||||
void onRenderTransparentWaterChanged();
|
||||
void onRenderWaterMipNormalChanged();
|
||||
|
||||
BOOL mRenderTransparentWater;
|
||||
BOOL mRenderWaterMipNormal;
|
||||
bool mRenderWaterMipNormal;
|
||||
// </FS:Zi>
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -806,6 +806,25 @@ const F32 LLEnvironment::SUN_DELTA_YAW(F_PI); // 180deg
|
|||
const U32 LLEnvironment::DayInstance::NO_ANIMATE_SKY(0x01);
|
||||
const U32 LLEnvironment::DayInstance::NO_ANIMATE_WATER(0x02);
|
||||
|
||||
std::string env_selection_to_string(LLEnvironment::EnvSelection_t sel)
|
||||
{
|
||||
#define RTNENUM(E) case LLEnvironment::E: return #E
|
||||
switch (sel){
|
||||
RTNENUM(ENV_EDIT);
|
||||
RTNENUM(ENV_LOCAL);
|
||||
RTNENUM(ENV_PUSH);
|
||||
RTNENUM(ENV_PARCEL);
|
||||
RTNENUM(ENV_REGION);
|
||||
RTNENUM(ENV_DEFAULT);
|
||||
RTNENUM(ENV_END);
|
||||
RTNENUM(ENV_CURRENT);
|
||||
RTNENUM(ENV_NONE);
|
||||
default:
|
||||
return llformat("Unknown(%d)", sel);
|
||||
}
|
||||
#undef RTNENUM
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
LLEnvironment::LLEnvironment():
|
||||
|
|
@ -1059,6 +1078,7 @@ void LLEnvironment::setSelectedEnvironment(LLEnvironment::EnvSelection_t env, LL
|
|||
{
|
||||
mSelectedEnvironment = env;
|
||||
updateEnvironment(transition, forced);
|
||||
LL_DEBUGS("ENVIRONMENT") << "Setting environment " << env_selection_to_string(env) << " with transition: " << transition << LL_ENDL;
|
||||
}
|
||||
|
||||
bool LLEnvironment::hasEnvironment(LLEnvironment::EnvSelection_t env)
|
||||
|
|
@ -1095,11 +1115,13 @@ LLEnvironment::DayInstance::ptr_t LLEnvironment::getEnvironmentInstance(LLEnviro
|
|||
void LLEnvironment::setEnvironment(LLEnvironment::EnvSelection_t env, const LLSettingsDay::ptr_t &pday, LLSettingsDay::Seconds daylength, LLSettingsDay::Seconds dayoffset, S32 env_version)
|
||||
{
|
||||
if ((env < ENV_EDIT) || (env >= ENV_DEFAULT))
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to change invalid environment selection." << LL_ENDL;
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to change invalid environment selection (" << env_selection_to_string(env) << ")." << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
logEnvironment(env, pday, env_version);
|
||||
|
||||
DayInstance::ptr_t environment = getEnvironmentInstance(env, true);
|
||||
|
||||
environment->clear();
|
||||
|
|
@ -1116,7 +1138,7 @@ void LLEnvironment::setEnvironment(LLEnvironment::EnvSelection_t env, LLEnvironm
|
|||
{
|
||||
if ((env < ENV_EDIT) || (env >= ENV_DEFAULT))
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to change invalid environment selection." << LL_ENDL;
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to change invalid environment selection (" << env_selection_to_string(env) << ")." << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1125,30 +1147,32 @@ void LLEnvironment::setEnvironment(LLEnvironment::EnvSelection_t env, LLEnvironm
|
|||
|
||||
if (fixed.first)
|
||||
{
|
||||
logEnvironment(env, fixed.first, env_version);
|
||||
environment->setSky(fixed.first);
|
||||
environment->setFlags(DayInstance::NO_ANIMATE_SKY);
|
||||
}
|
||||
else if (!environment->getSky())
|
||||
{
|
||||
LL_DEBUGS("ENVIRONMENT") << "Blank sky for " << env_selection_to_string(env) << ". Reusing environment for sky." << LL_ENDL;
|
||||
environment->setSky(mCurrentEnvironment->getSky());
|
||||
environment->setFlags(DayInstance::NO_ANIMATE_SKY);
|
||||
}
|
||||
|
||||
if (fixed.second)
|
||||
{
|
||||
logEnvironment(env, fixed.second, env_version);
|
||||
environment->setWater(fixed.second);
|
||||
environment->setFlags(DayInstance::NO_ANIMATE_WATER);
|
||||
}
|
||||
else if (!environment->getWater())
|
||||
{
|
||||
LL_DEBUGS("ENVIRONMENT") << "Blank water for " << env_selection_to_string(env) << ". Reusing environment for water." << LL_ENDL;
|
||||
environment->setWater(mCurrentEnvironment->getWater());
|
||||
environment->setFlags(DayInstance::NO_ANIMATE_WATER);
|
||||
}
|
||||
|
||||
if (!mSignalEnvChanged.empty())
|
||||
mSignalEnvChanged(env, env_version);
|
||||
|
||||
/*TODO: readjust environment*/
|
||||
}
|
||||
|
||||
void LLEnvironment::setEnvironment(LLEnvironment::EnvSelection_t env, const LLSettingsBase::ptr_t &settings, S32 env_version)
|
||||
|
|
@ -1221,10 +1245,12 @@ void LLEnvironment::onSetEnvAssetLoaded(EnvSelection_t env,
|
|||
if (!settings || status)
|
||||
{
|
||||
LLSD args;
|
||||
args["DESC"] = asset_id.asString();
|
||||
args["NAME"] = asset_id.asString();
|
||||
LLNotificationsUtil::add("FailedToFindSettings", args);
|
||||
LL_DEBUGS("ENVIRONMENT") << "Failed to find settings for " << env_selection_to_string(env) << ", asset_id: " << asset_id << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
LL_DEBUGS("ENVIRONMENT") << "Loaded asset: " << asset_id << LL_ENDL;
|
||||
|
||||
setEnvironment(env, settings);
|
||||
updateEnvironment(transition);
|
||||
|
|
@ -1238,19 +1264,48 @@ void LLEnvironment::clearEnvironment(LLEnvironment::EnvSelection_t env)
|
|||
return;
|
||||
}
|
||||
|
||||
LL_DEBUGS("ENVIRONMENT") << "Cleaning environment " << env_selection_to_string(env) << LL_ENDL;
|
||||
|
||||
mEnvironments[env].reset();
|
||||
|
||||
if (!mSignalEnvChanged.empty())
|
||||
mSignalEnvChanged(env, VERSION_CLEANUP);
|
||||
}
|
||||
|
||||
/*TODO: readjust environment*/
|
||||
void LLEnvironment::logEnvironment(EnvSelection_t env, const LLSettingsBase::ptr_t &settings, S32 env_version)
|
||||
{
|
||||
LL_DEBUGS("ENVIRONMENT") << "Setting Day environment " << env_selection_to_string(env) << " with version(update type): " << env_version << LL_NEWLINE;
|
||||
// code between LL_DEBUGS and LL_ENDL won't execute unless log is enabled
|
||||
if (settings)
|
||||
{
|
||||
LLUUID asset_id = settings->getAssetId();
|
||||
if (asset_id.notNull())
|
||||
{
|
||||
LL_CONT << "Asset id: " << asset_id << LL_NEWLINE;
|
||||
}
|
||||
|
||||
LLUUID id = settings->getId(); // Not in use?
|
||||
if (id.notNull())
|
||||
{
|
||||
LL_CONT << "Settings id: " << id << LL_NEWLINE;
|
||||
}
|
||||
|
||||
LL_CONT << "Name: " << settings->getName() << LL_NEWLINE
|
||||
<< "Type: " << settings->getSettingsType() << LL_NEWLINE
|
||||
<< "Flags: " << settings->getFlags(); // Not in use?
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_CONT << "Empty settings!";
|
||||
}
|
||||
LL_CONT << LL_ENDL;
|
||||
}
|
||||
|
||||
LLSettingsDay::ptr_t LLEnvironment::getEnvironmentDay(LLEnvironment::EnvSelection_t env)
|
||||
{
|
||||
if ((env < ENV_EDIT) || (env > ENV_DEFAULT))
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection." << LL_ENDL;
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection (" << env_selection_to_string(env) << ")." << LL_ENDL;
|
||||
return LLSettingsDay::ptr_t();
|
||||
}
|
||||
|
||||
|
|
@ -1266,7 +1321,7 @@ LLSettingsDay::Seconds LLEnvironment::getEnvironmentDayLength(EnvSelection_t env
|
|||
{
|
||||
if ((env < ENV_EDIT) || (env > ENV_DEFAULT))
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection." << LL_ENDL;
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection (" << env_selection_to_string(env) << ")." << LL_ENDL;
|
||||
return LLSettingsDay::Seconds(0);
|
||||
}
|
||||
|
||||
|
|
@ -1282,7 +1337,7 @@ LLSettingsDay::Seconds LLEnvironment::getEnvironmentDayOffset(EnvSelection_t env
|
|||
{
|
||||
if ((env < ENV_EDIT) || (env > ENV_DEFAULT))
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection." << LL_ENDL;
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection (" << env_selection_to_string(env) << ")." << LL_ENDL;
|
||||
return LLSettingsDay::Seconds(0);
|
||||
}
|
||||
|
||||
|
|
@ -1325,7 +1380,7 @@ LLEnvironment::fixedEnvironment_t LLEnvironment::getEnvironmentFixed(LLEnvironme
|
|||
|
||||
if ((env < ENV_EDIT) || (env > ENV_DEFAULT))
|
||||
{
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection." << LL_ENDL;
|
||||
LL_WARNS("ENVIRONMENT") << "Attempt to retrieve invalid environment selection (" << env_selection_to_string(env) << ")." << LL_ENDL;
|
||||
return fixedEnvironment_t();
|
||||
}
|
||||
|
||||
|
|
@ -2361,7 +2416,7 @@ void LLEnvironment::onSetExperienceEnvAssetLoaded(LLUUID experience_id, LLSettin
|
|||
if (!settings || status)
|
||||
{
|
||||
LLSD args;
|
||||
args["DESC"] = experience_id.asString();
|
||||
args["NAME"] = experience_id.asString();
|
||||
LLNotificationsUtil::add("FailedToFindSettings", args);
|
||||
return;
|
||||
}
|
||||
|
|
@ -3332,7 +3387,7 @@ namespace
|
|||
return;
|
||||
}
|
||||
|
||||
LL_WARNS("PUSHENV") << "Underlying environment has changed (" << env << ")! Base env is type " << base_env << LL_ENDL;
|
||||
LL_WARNS("PUSHENV", "ENVIRONMENT") << "Underlying environment has changed (" << env << ")! Base env is type " << base_env << LL_ENDL;
|
||||
|
||||
LLEnvironment::DayInstance::ptr_t trans = std::make_shared<InjectedTransition>(std::static_pointer_cast<DayInjection>(shared_from_this()),
|
||||
mBaseDayInstance->getSky(), mBaseDayInstance->getWater(), nextbase, LLEnvironment::TRANSITION_DEFAULT);
|
||||
|
|
|
|||
|
|
@ -148,8 +148,11 @@ public:
|
|||
void setEnvironment(EnvSelection_t env, const LLUUID &assetId, S32 env_version = NO_VERSION);
|
||||
|
||||
void setSharedEnvironment();
|
||||
|
||||
void clearEnvironment(EnvSelection_t env);
|
||||
|
||||
static void logEnvironment(EnvSelection_t env, const LLSettingsBase::ptr_t &settings, S32 env_version = NO_VERSION);
|
||||
|
||||
|
||||
LLSettingsDay::ptr_t getEnvironmentDay(EnvSelection_t env);
|
||||
LLSettingsDay::Seconds getEnvironmentDayLength(EnvSelection_t env);
|
||||
LLSettingsDay::Seconds getEnvironmentDayOffset(EnvSelection_t env);
|
||||
|
|
|
|||
|
|
@ -1498,7 +1498,7 @@ void LLFloaterEditExtDayCycle::onAssetLoaded(LLUUID asset_id, LLSettingsBase::pt
|
|||
if (!settings || status)
|
||||
{
|
||||
LLSD args;
|
||||
args["NAME"] = (mInventoryItem) ? mInventoryItem->getName() : "Unknown";
|
||||
args["NAME"] = (mInventoryItem) ? mInventoryItem->getName() : asset_id.asString();
|
||||
LLNotificationsUtil::add("FailedToFindSettings", args);
|
||||
closeFloater();
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -346,7 +346,7 @@ void LLFloaterFixedEnvironment::onAssetLoaded(LLUUID asset_id, LLSettingsBase::p
|
|||
if (!settings || status)
|
||||
{
|
||||
LLSD args;
|
||||
args["NAME"] = (mInventoryItem) ? mInventoryItem->getName() : "Unknown";
|
||||
args["NAME"] = (mInventoryItem) ? mInventoryItem->getName() : asset_id.asString();
|
||||
LLNotificationsUtil::add("FailedToFindSettings", args);
|
||||
closeFloater();
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@
|
|||
#include "llcallbacklist.h"
|
||||
#include "llworld.h"
|
||||
#include "llsdserialize.h"
|
||||
#include "llviewermenu.h" // is_agent_mappable
|
||||
#include "llviewerobjectlist.h"
|
||||
#include "boost/foreach.hpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -2211,12 +2211,15 @@ void LLFloaterPreference::refreshEnabledState()
|
|||
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
|
||||
bumpshiny_ctrl->setEnabled(bumpshiny ? TRUE : FALSE);
|
||||
|
||||
// <FS:Ansariel> Does not exist
|
||||
// Transparent Water
|
||||
LLCheckBoxCtrl* transparent_water_ctrl = getChild<LLCheckBoxCtrl>("TransparentWater");
|
||||
|
||||
// <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>
|
||||
|
||||
// </FS:Ansariel>
|
||||
|
||||
// Avatar Mode
|
||||
// Enable Avatar Shaders
|
||||
LLCheckBoxCtrl* ctrl_avatar_vp = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
|
||||
|
|
@ -2263,6 +2266,7 @@ void LLFloaterPreference::refreshEnabledState()
|
|||
|
||||
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
|
||||
((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) &&
|
||||
((transparent_water_ctrl && transparent_water_ctrl->get()) ? TRUE : FALSE) &&
|
||||
gGLManager.mHasFramebufferObject &&
|
||||
gSavedSettings.getBOOL("RenderAvatarVP") &&
|
||||
(ctrl_wind_light->get()) ? TRUE : FALSE;
|
||||
|
|
@ -2304,7 +2308,10 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()
|
|||
BOOL reflections = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps;
|
||||
ctrl_reflections->setEnabled(reflections);
|
||||
reflections_text->setEnabled(reflections);
|
||||
|
||||
|
||||
// Transparent Water
|
||||
LLCheckBoxCtrl* transparent_water_ctrl = getChild<LLCheckBoxCtrl>("TransparentWater");
|
||||
|
||||
// Bump & Shiny
|
||||
LLCheckBoxCtrl* bumpshiny_ctrl = getChild<LLCheckBoxCtrl>("BumpShiny");
|
||||
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
|
||||
|
|
@ -2358,6 +2365,7 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()
|
|||
|
||||
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
|
||||
((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) &&
|
||||
((transparent_water_ctrl && transparent_water_ctrl->get()) ? TRUE : FALSE) &&
|
||||
gGLManager.mHasFramebufferObject &&
|
||||
gSavedSettings.getBOOL("RenderAvatarVP") &&
|
||||
(ctrl_wind_light->get()) ? TRUE : FALSE;
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
|
||||
class LLSpinCtrl;
|
||||
class LLSnapshotLivePreview;
|
||||
class LLToolset;
|
||||
|
||||
class LLFloaterSnapshotBase : public LLFloater
|
||||
{
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
#include "llavatariconctrl.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llviewermenu.h" // is_agent_mappable
|
||||
#include "llvoiceclient.h"
|
||||
#include "lltextbox.h"
|
||||
#include "lltrans.h"
|
||||
|
|
|
|||
|
|
@ -340,6 +340,7 @@ void LLPreviewNotecard::loadAsset()
|
|||
{
|
||||
editor->setEnabled(FALSE);
|
||||
getChildView("lock")->setVisible( TRUE);
|
||||
getChildView("Edit")->setEnabled(FALSE);
|
||||
}
|
||||
|
||||
if((allow_modify || is_owner) && !source_library)
|
||||
|
|
|
|||
|
|
@ -68,7 +68,10 @@ ll::prefs::PanelData::~PanelData()
|
|||
bool ll::prefs::PanelData::hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
(*itr)->setNotHighlighted( );
|
||||
(*itr)->setNotHighlighted();
|
||||
|
||||
for (tPanelDataList::iterator itr = mChildPanel.begin(); itr != mChildPanel.end(); ++itr)
|
||||
(*itr)->setNotHighlighted();
|
||||
|
||||
// <FS:Ansariel> FIRE-23969: This breaks prefs search - and isn't needed on FS
|
||||
//if (aFilter.empty())
|
||||
|
|
@ -87,6 +90,15 @@ bool ll::prefs::PanelData::hightlightAndHide( LLWString const &aFilter )
|
|||
return bVisible;
|
||||
}
|
||||
|
||||
void ll::prefs::PanelData::setNotHighlighted()
|
||||
{
|
||||
for (tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr)
|
||||
(*itr)->setNotHighlighted();
|
||||
|
||||
for (tPanelDataList::iterator itr = mChildPanel.begin(); itr != mChildPanel.end(); ++itr)
|
||||
(*itr)->setNotHighlighted();
|
||||
}
|
||||
|
||||
bool ll::prefs::TabContainerData::hightlightAndHide( LLWString const &aFilter )
|
||||
{
|
||||
for( tSearchableItemList::iterator itr = mChildren.begin(); itr != mChildren.end(); ++itr )
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ namespace ll
|
|||
|
||||
virtual ~PanelData();
|
||||
|
||||
void setNotHighlighted();
|
||||
virtual bool hightlightAndHide( LLWString const &aFilter );
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -3177,13 +3177,13 @@ void renderRaycast(LLDrawable* drawablep)
|
|||
LLGLEnable blend(GL_BLEND);
|
||||
gGL.diffuseColor4f(0,1,1,0.5f);
|
||||
|
||||
if (drawablep->getVOVolume())
|
||||
LLVOVolume* vobj = drawablep->getVOVolume();
|
||||
if (vobj && !vobj->isDead())
|
||||
{
|
||||
//glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
|
||||
//pushVerts(drawablep->getFace(gDebugRaycastFaceHit), LLVertexBuffer::MAP_VERTEX);
|
||||
//glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||
|
||||
LLVOVolume* vobj = drawablep->getVOVolume();
|
||||
LLVolume* volume = vobj->getVolume();
|
||||
|
||||
bool transform = true;
|
||||
|
|
@ -3424,7 +3424,7 @@ public:
|
|||
for (OctreeNode::const_element_iter i = branch->getDataBegin(); i != branch->getDataEnd(); ++i)
|
||||
{
|
||||
LLDrawable* drawable = (LLDrawable*)(*i)->getDrawable();
|
||||
if(!drawable)
|
||||
if(!drawable || drawable->isDead())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -259,6 +259,16 @@ static bool handleRenderPerfTestChanged(const LLSD& newvalue)
|
|||
|
||||
bool handleRenderTransparentWaterChanged(const LLSD& newvalue)
|
||||
{
|
||||
LLRenderTarget::sUseFBO = newvalue.asBoolean();
|
||||
if (gPipeline.isInit())
|
||||
{
|
||||
gPipeline.updateRenderTransparentWater();
|
||||
gPipeline.updateRenderDeferred();
|
||||
gPipeline.releaseGLBuffers();
|
||||
gPipeline.createGLBuffers();
|
||||
gPipeline.resetVertexBuffers();
|
||||
LLViewerShaderMgr::instance()->setShaders();
|
||||
}
|
||||
LLWorld::getInstance()->updateWaterObjects();
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1046,7 +1046,12 @@ LLSpeakerVolumeStorage::LLSpeakerVolumeStorage()
|
|||
|
||||
LLSpeakerVolumeStorage::~LLSpeakerVolumeStorage()
|
||||
{
|
||||
save();
|
||||
}
|
||||
|
||||
//virtual
|
||||
void LLSpeakerVolumeStorage::cleanupSingleton()
|
||||
{
|
||||
save();
|
||||
}
|
||||
|
||||
void LLSpeakerVolumeStorage::storeSpeakerVolume(const LLUUID& speaker_id, F32 volume)
|
||||
|
|
|
|||
|
|
@ -534,9 +534,13 @@ protected:
|
|||
**/
|
||||
class LLSpeakerVolumeStorage : public LLSingleton<LLSpeakerVolumeStorage>
|
||||
{
|
||||
LLSINGLETON(LLSpeakerVolumeStorage);
|
||||
LLSINGLETON_C11(LLSpeakerVolumeStorage);
|
||||
~LLSpeakerVolumeStorage();
|
||||
LOG_CLASS(LLSpeakerVolumeStorage);
|
||||
|
||||
protected:
|
||||
virtual void cleanupSingleton() override;
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ BOOL LLVOWater::updateGeometry(LLDrawable *drawable)
|
|||
static const unsigned int vertices_per_quad = 4;
|
||||
static const unsigned int indices_per_quad = 6;
|
||||
|
||||
const S32 size = gSavedSettings.getBOOL("RenderTransparentWater") && LLGLSLShader::sNoFixedFunction ? 16 : 1;
|
||||
const S32 size = LLPipeline::sRenderTransparentWater && LLGLSLShader::sNoFixedFunction ? 16 : 1;
|
||||
|
||||
const S32 num_quads = size * size;
|
||||
face->setSize(vertices_per_quad * num_quads,
|
||||
|
|
|
|||
|
|
@ -342,6 +342,7 @@ bool LLPipeline::sDelayVBUpdate = true;
|
|||
bool LLPipeline::sAutoMaskAlphaDeferred = true;
|
||||
bool LLPipeline::sAutoMaskAlphaNonDeferred = false;
|
||||
bool LLPipeline::sDisableShaders = false;
|
||||
bool LLPipeline::sRenderTransparentWater = true;
|
||||
bool LLPipeline::sRenderBump = true;
|
||||
bool LLPipeline::sBakeSunlight = false;
|
||||
bool LLPipeline::sNoAlpha = false;
|
||||
|
|
@ -1132,6 +1133,12 @@ bool LLPipeline::allocateShadowBuffer(U32 resX, U32 resY)
|
|||
return true;
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPipeline::updateRenderTransparentWater()
|
||||
{
|
||||
sRenderTransparentWater = gSavedSettings.getBOOL("RenderTransparentWater");
|
||||
}
|
||||
|
||||
//static
|
||||
void LLPipeline::updateRenderBump()
|
||||
{
|
||||
|
|
@ -1144,6 +1151,7 @@ void LLPipeline::updateRenderDeferred()
|
|||
bool deferred = (bool(RenderDeferred &&
|
||||
LLRenderTarget::sUseFBO &&
|
||||
LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
|
||||
LLPipeline::sRenderTransparentWater &&
|
||||
LLPipeline::sRenderBump &&
|
||||
RenderAvatarVP &&
|
||||
WindLightUseAtmosShaders)) &&
|
||||
|
|
|
|||
|
|
@ -409,6 +409,7 @@ public:
|
|||
static bool getRenderHighlights();
|
||||
static void setRenderHighlightTextureChannel(LLRender::eTexIndex channel); // sets which UV setup to display in highlight overlay
|
||||
|
||||
static void updateRenderTransparentWater();
|
||||
static void updateRenderBump();
|
||||
static void updateRenderDeferred();
|
||||
static void refreshCachedSettings();
|
||||
|
|
@ -588,6 +589,7 @@ public:
|
|||
static bool sAutoMaskAlphaDeferred;
|
||||
static bool sAutoMaskAlphaNonDeferred;
|
||||
static bool sDisableShaders; // if true, rendering will be done without shaders
|
||||
static bool sRenderTransparentWater;
|
||||
static bool sRenderBump;
|
||||
static bool sBakeSunlight;
|
||||
static bool sNoAlpha;
|
||||
|
|
|
|||
|
|
@ -811,8 +811,13 @@ void FloaterQuickPrefs::refreshSettings()
|
|||
sky_spinner->setEnabled(TRUE);
|
||||
sky_default_button->setEnabled(TRUE);
|
||||
|
||||
BOOL bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump") && gSavedSettings.getBOOL("RenderObjectBump");
|
||||
BOOL transparent_water = LLFeatureManager::getInstance()->isFeatureAvailable("RenderTransparentWater") && gSavedSettings.getBOOL("RenderTransparentWater");
|
||||
BOOL shaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
|
||||
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
|
||||
gSavedSettings.getBOOL("RenderObjectBump") &&
|
||||
bumpshiny &&
|
||||
transparent_water &&
|
||||
shaders &&
|
||||
gGLManager.mHasFramebufferObject &&
|
||||
gSavedSettings.getBOOL("RenderAvatarVP") &&
|
||||
(mCtrlWindLight->get()) ? TRUE : FALSE;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#define RLV_ACTIONS_H
|
||||
|
||||
#include "llchat.h"
|
||||
#include "llviewerobject.h"
|
||||
#include "rlvdefines.h"
|
||||
|
||||
// ============================================================================
|
||||
|
|
|
|||
|
|
@ -596,7 +596,10 @@
|
|||
left="420"
|
||||
name="TransparentWater"
|
||||
top_delta="16"
|
||||
width="300" />
|
||||
width="300">
|
||||
<check_box.commit_callback
|
||||
function="Pref.RenderOptionUpdate" />
|
||||
</check_box>
|
||||
|
||||
<check_box
|
||||
control_name="RenderObjectBump"
|
||||
|
|
|
|||
|
|
@ -253,7 +253,10 @@
|
|||
left_delta="5"
|
||||
name="TransparentWater"
|
||||
top_pad="5"
|
||||
width="256" />
|
||||
width="256" >
|
||||
<check_box.commit_callback
|
||||
function="Pref.RenderOptionUpdate" />
|
||||
</check_box>
|
||||
<check_box
|
||||
control_name="RenderObjectBump"
|
||||
height="16"
|
||||
|
|
@ -264,9 +267,9 @@
|
|||
name="BumpShiny"
|
||||
top_pad="1"
|
||||
width="256" >
|
||||
<check_box.commit_callback
|
||||
function="Pref.RenderOptionUpdate" />
|
||||
</check_box>
|
||||
<check_box.commit_callback
|
||||
function="Pref.RenderOptionUpdate" />
|
||||
</check_box>
|
||||
<check_box
|
||||
control_name="RenderLocalLights"
|
||||
height="16"
|
||||
|
|
|
|||
Loading…
Reference in New Issue