summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreyL ProductEngine <andreylproductengine@lindenlab.com>2015-10-30 16:33:51 +0200
committerAndreyL ProductEngine <andreylproductengine@lindenlab.com>2015-10-30 16:33:51 +0200
commit4dfd54eef23af279f7f0f631a4b53e319670e504 (patch)
tree7f4fe4b89d72cf1472633088d03732ad55fe592f
parent9e6f193cd6b9b767679d810de8f2b45a7cd91540 (diff)
parentc0b95008811f1969f6d0863c5cdff4b800afba55 (diff)
Merge
-rwxr-xr-xindra/newview/llappearancemgr.cpp4
-rwxr-xr-xindra/newview/llappviewer.cpp5
-rwxr-xr-xindra/newview/llappviewer.h1
-rwxr-xr-xindra/newview/llfloaterimcontainer.cpp22
-rwxr-xr-xindra/newview/llgroupmgr.cpp2
-rwxr-xr-xindra/newview/llpanelpeople.cpp7
-rwxr-xr-xindra/newview/lltexturefetch.cpp10
-rwxr-xr-xindra/newview/lltexturefetch.h1
-rwxr-xr-xindra/newview/lltextureinfo.cpp41
-rwxr-xr-xindra/newview/lltextureinfo.h4
-rwxr-xr-xindra/newview/llviewermenu.cpp15
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_people.xml5
12 files changed, 77 insertions, 40 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 53ae3c62ec..3d9b1a72a8 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -3825,6 +3825,10 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)
{
LL_DEBUGS("Avatar") << "ATT removing attachment " << item->getName() << " id " << item->getUUID() << LL_ENDL;
}
+ if (item && item->getType() == LLAssetType::AT_BODYPART)
+ {
+ continue;
+ }
removeCOFItemLinks(linked_item_id, cb);
addDoomedTempAttachment(linked_item_id);
}
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index fbf2a04bcc..260a3d8ce4 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -327,7 +327,10 @@ BOOL gDisconnected = FALSE;
// used to restore texture state after a mode switch
LLFrameTimer gRestoreGLTimer;
BOOL gRestoreGL = FALSE;
-BOOL gUseWireframe = FALSE;
+BOOL gUseWireframe = FALSE;
+
+//use for remember deferred mode in wireframe switch
+BOOL gInitialDeferredModeForWireframe = FALSE;
// VFS globals - see llappviewer.h
LLVFS* gStaticVFS = NULL;
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index 718871138e..ad5268496b 100755
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -375,6 +375,7 @@ extern BOOL gDisconnected;
extern LLFrameTimer gRestoreGLTimer;
extern BOOL gRestoreGL;
extern BOOL gUseWireframe;
+extern BOOL gInitialDeferredModeForWireframe;
// VFS globals - gVFS is for general use
// gStaticVFS is read-only and is shipped w/ the viewer
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 0a5a6e8e13..91a0af3e8d 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -1925,19 +1925,17 @@ bool LLFloaterIMContainer::canBanSelectedMember(const LLUUID& participant_uuid)
if (gdatap->isRoleMemberDataComplete())
{
- if (!gdatap->mMembers.size())
- {
- return false;
- }
-
- LLGroupMgrGroupData::member_list_t::iterator mi = gdatap->mMembers.find((participant_uuid));
- if (mi != gdatap->mMembers.end())
- {
- LLGroupMemberData* member_data = (*mi).second;
- // Is the member an owner?
- if (member_data && member_data->isInRole(gdatap->mOwnerRole))
+ if (gdatap->mMembers.size())
+ {
+ LLGroupMgrGroupData::member_list_t::iterator mi = gdatap->mMembers.find((participant_uuid));
+ if (mi != gdatap->mMembers.end())
{
- return false;
+ LLGroupMemberData* member_data = (*mi).second;
+ // Is the member an owner?
+ if (member_data && member_data->isInRole(gdatap->mOwnerRole))
+ {
+ return false;
+ }
}
}
}
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index 4d92fee04f..e1315adfde 100755
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -772,7 +772,7 @@ void LLGroupMgrGroupData::banMemberById(const LLUUID& participant_uuid)
mPendingBanRequest = true;
mPendingBanMemberID = participant_uuid;
- if (!mMemberDataComplete)
+ if (!mMemberDataComplete || !mMembers.size())
{
LLGroupMgr::getInstance()->sendCapGroupMembersRequest(mID);
}
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 6b86459d8f..e28f37ccb0 100755
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -587,7 +587,12 @@ BOOL LLPanelPeople::postBuild()
getChild<LLFilterEditor>("groups_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("recent_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("fbc_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
- getChild<LLTextBox>("groupcount")->setURLClickedCallback(boost::bind(&LLPanelPeople::onGroupLimitInfo, this));
+
+ if(gMaxAgentGroups <= BASE_MAX_AGENT_GROUPS)
+ {
+ getChild<LLTextBox>("groupcount")->setText(getString("GroupCountWithInfo"));
+ getChild<LLTextBox>("groupcount")->setURLClickedCallback(boost::bind(&LLPanelPeople::onGroupLimitInfo, this));
+ }
mTabContainer = getChild<LLTabContainer>("tabs");
mTabContainer->setCommitCallback(boost::bind(&LLPanelPeople::onTabSelected, this, _2));
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index fab4203ec3..17b273f316 100755
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -2522,7 +2522,8 @@ LLTextureFetch::LLTextureFetch(LLTextureCache* cache, LLImageDecodeThread* image
mFetchDebugger(NULL),
mFetchSource(LLTextureFetch::FROM_ALL),
mOriginFetchSource(LLTextureFetch::FROM_ALL),
- mFetcherLocked(FALSE)
+ mFetcherLocked(FALSE),
+ mTextureInfoMainThread(false)
{
mMaxBandwidth = gSavedSettings.getF32("ThrottleBandwidthKBPS");
mTextureInfo.setUpLogging(gSavedSettings.getBOOL("LogTextureDownloadsToViewerLog"), gSavedSettings.getBOOL("LogTextureDownloadsToSimulator"), U32Bytes(gSavedSettings.getU32("TextureLoggingThreshold")));
@@ -3128,6 +3129,7 @@ void LLTextureFetch::shutDownImageDecodeThread()
// Threads: Ttf
void LLTextureFetch::startThread()
{
+ mTextureInfo.startRecording();
}
// Threads: Ttf
@@ -3138,6 +3140,8 @@ void LLTextureFetch::endThread()
<< ", ResWaits: " << mTotalResourceWaitCount
<< ", TotalHTTPReq: " << getTotalNumHTTPRequests()
<< LL_ENDL;
+
+ mTextureInfo.stopRecording();
}
// Threads: Ttf
@@ -3541,8 +3545,8 @@ bool LLTextureFetch::receiveImagePacket(const LLHost& host, const LLUUID& id, U1
if (log_to_viewer_log || log_to_sim)
{
U64Microseconds timeNow = LLTimer::getTotalTime();
- mTextureInfo.setRequestSize(id, worker->mFileSize);
- mTextureInfo.setRequestCompleteTimeAndLog(id, timeNow);
+ mTextureInfoMainThread.setRequestSize(id, worker->mFileSize);
+ mTextureInfoMainThread.setRequestCompleteTimeAndLog(id, timeNow);
}
}
worker->unlockWorkMutex(); // -Mw
diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h
index 27779a31e0..a2658ecd85 100755
--- a/indra/newview/lltexturefetch.h
+++ b/indra/newview/lltexturefetch.h
@@ -332,6 +332,7 @@ private:
F32 mTextureBandwidth; // <none>
F32 mMaxBandwidth; // Mfnq
LLTextureInfo mTextureInfo;
+ LLTextureInfo mTextureInfoMainThread;
// XXX possible delete
U32Bits mHTTPTextureBits; // Mfnq
diff --git a/indra/newview/lltextureinfo.cpp b/indra/newview/lltextureinfo.cpp
index 59d692b287..473d8ce709 100755
--- a/indra/newview/lltextureinfo.cpp
+++ b/indra/newview/lltextureinfo.cpp
@@ -36,14 +36,16 @@ static LLTrace::CountStatHandle<S32> sTextureDownloadsCompleted("texture_downloa
static LLTrace::CountStatHandle<S32Bytes > sTextureDataDownloaded("texture_data_downloaded", "amount of texture data downloaded");
static LLTrace::CountStatHandle<U32Milliseconds > sTexureDownloadTime("texture_download_time", "amount of time spent fetching textures");
-LLTextureInfo::LLTextureInfo() :
+LLTextureInfo::LLTextureInfo(bool postponeStartRecoreder) :
mLogTextureDownloadsToViewerLog(false),
mLogTextureDownloadsToSimulator(false),
mTextureDownloadProtocol("NONE"),
mTextureLogThreshold(LLUnits::Kilobytes::fromValue(100))
{
- mTextures.clear();
- mRecording.start();
+ if (!postponeStartRecoreder)
+ {
+ startRecording();
+ }
}
void LLTextureInfo::setUpLogging(bool writeToViewerLog, bool sendToSim, U32Bytes textureLogThreshold)
@@ -78,15 +80,7 @@ U32 LLTextureInfo::getTextureInfoMapSize()
bool LLTextureInfo::has(const LLUUID& id)
{
- std::map<LLUUID, LLTextureInfoDetails *>::iterator iterator = mTextures.find(id);
- if (iterator == mTextures.end())
- {
- return false;
- }
- else
- {
- return true;
- }
+ return mTextures.end() != mTextures.find(id);
}
void LLTextureInfo::setRequestStartTime(const LLUUID& id, U64 startTime)
@@ -192,15 +186,12 @@ void LLTextureInfo::setRequestCompleteTimeAndLog(const LLUUID& id, U64Microsecon
LLSD LLTextureInfo::getAverages()
{
LLSD averagedTextureData;
- S32 averageDownloadRate;
- U32Milliseconds download_time = mRecording.getSum(sTexureDownloadTime);
- if(download_time == (U32Milliseconds)0)
- {
- averageDownloadRate = 0;
- }
- else
+ S32 averageDownloadRate = 0;
+ unsigned int download_time = mRecording.getSum(sTexureDownloadTime).valueInUnits<LLUnits::Seconds>();
+
+ if (0 != download_time)
{
- averageDownloadRate = mRecording.getSum(sTextureDataDownloaded).valueInUnits<LLUnits::Bits>() / download_time.valueInUnits<LLUnits::Seconds>();
+ averageDownloadRate = mRecording.getSum(sTextureDataDownloaded).valueInUnits<LLUnits::Bits>() / download_time;
}
averagedTextureData["bits_per_second"] = averageDownloadRate;
@@ -212,6 +203,16 @@ LLSD LLTextureInfo::getAverages()
return averagedTextureData;
}
+void LLTextureInfo::startRecording()
+{
+ mRecording.start();
+}
+
+void LLTextureInfo::stopRecording()
+{
+ mRecording.stop();
+}
+
void LLTextureInfo::resetTextureStatistics()
{
mRecording.restart();
diff --git a/indra/newview/lltextureinfo.h b/indra/newview/lltextureinfo.h
index 176f2cbb74..03721bdd73 100755
--- a/indra/newview/lltextureinfo.h
+++ b/indra/newview/lltextureinfo.h
@@ -35,7 +35,7 @@
class LLTextureInfo
{
public:
- LLTextureInfo();
+ LLTextureInfo(bool postponeStartRecoreder = true);
~LLTextureInfo();
void setUpLogging(bool writeToViewerLog, bool sendToSim, U32Bytes textureLogThreshold);
@@ -53,6 +53,8 @@ public:
void resetTextureStatistics();
U32 getTextureInfoMapSize();
LLSD getAverages();
+ void startRecording();
+ void stopRecording();
private:
void addRequest(const LLUUID& id);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 38d62dee5e..de219edcff 100755
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -1245,9 +1245,24 @@ class LLAdvancedToggleWireframe : public view_listener_t
bool handleEvent(const LLSD& userdata)
{
gUseWireframe = !(gUseWireframe);
+
+ if (gUseWireframe)
+ {
+ gInitialDeferredModeForWireframe = LLPipeline::sRenderDeferred;
+ }
+
gWindowResized = TRUE;
LLPipeline::updateRenderDeferred();
gPipeline.resetVertexBuffers();
+
+ if (!gUseWireframe && !gInitialDeferredModeForWireframe && LLPipeline::sRenderDeferred != gInitialDeferredModeForWireframe && gPipeline.isInit())
+ {
+ LLPipeline::refreshCachedSettings();
+ gPipeline.releaseGLBuffers();
+ gPipeline.createGLBuffers();
+ LLViewerShaderMgr::instance()->setShaders();
+ }
+
return true;
}
};
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index 4fb8b9a67f..2cb06d6877 100755
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -53,6 +53,9 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
<string
name="AltMiniMapToolTipMsg"
value="[REGION](Double-click to teleport, shift-drag to pan)"/>
+ <string
+ name="GroupCountWithInfo"
+ value="You belong to [COUNT] groups, and can join [REMAINING] more. [secondlife:/// Want more?]"/>
<tab_container
bottom="-10"
follows="all"
@@ -506,7 +509,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
left="3"
use_ellipses="true"
name="groupcount">
- You belong to [COUNT] groups, and can join [REMAINING] more. [secondlife:/// Want more?]
+ You belong to [COUNT] groups, and can join [REMAINING] more.
</text>
<group_list
allow_select="true"