summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdoc/contributions.txt6
-rw-r--r--indra/llcorehttp/_httpoprequest.cpp12
-rw-r--r--indra/llrender/llvertexbuffer.cpp2
-rw-r--r--indra/llui/llstatbar.cpp7
-rw-r--r--indra/newview/app_settings/settings.xml11
-rw-r--r--indra/newview/lldrawable.cpp4
-rw-r--r--indra/newview/llfloaterscriptlimits.cpp43
-rw-r--r--indra/newview/llinventorybridge.cpp60
-rw-r--r--indra/newview/llinventorybridge.h1
-rw-r--r--indra/newview/llmaniptranslate.cpp4
-rw-r--r--indra/newview/llpanelmaininventory.cpp14
-rw-r--r--indra/newview/llstartup.cpp2
-rw-r--r--indra/newview/llviewercamera.cpp10
-rw-r--r--indra/newview/llviewercamera.h3
-rw-r--r--indra/newview/llviewermedia.cpp4
-rw-r--r--indra/newview/llvieweroctree.cpp2
-rw-r--r--indra/newview/llvovolume.cpp27
-rw-r--r--indra/newview/llvovolume.h2
-rw-r--r--indra/newview/pipeline.cpp11
-rw-r--r--indra/newview/pipeline.h2
-rw-r--r--indra/newview/skins/default/xui/en/floater_scene_load_stats.xml15
-rw-r--r--indra/newview/skins/default/xui/en/floater_script_limits.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_stats.xml8
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml34
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml3
28 files changed, 196 insertions, 116 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 29d74b7e28..e1ea531caf 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -207,7 +207,6 @@ Ansariel Hiller
MAINT-6773
MAINT-6906
MAINT-6911
- MAINT-6917
STORM-2140
MAINT-6912
MAINT-6929
@@ -760,6 +759,11 @@ Jonathan Yap
STORM-2088
STORM-2094
STORM-2099
+ STORM-2091
+ STORM-2092
+ STORM-2100
+ STORM-2104
+ STORM-2142
Kadah Coba
STORM-1060
STORM-1843
diff --git a/indra/llcorehttp/_httpoprequest.cpp b/indra/llcorehttp/_httpoprequest.cpp
index db57869a1b..07cc0e4625 100644
--- a/indra/llcorehttp/_httpoprequest.cpp
+++ b/indra/llcorehttp/_httpoprequest.cpp
@@ -568,7 +568,17 @@ HttpStatus HttpOpRequest::prepareRequest(HttpService * service)
// Use the viewer-based thread-safe API which has a
// fast/safe check for proxy enable. Would like to
// encapsulate this someway...
- LLProxy::getInstance()->applyProxySettings(mCurlHandle);
+ if (LLProxy::instanceExists())
+ {
+ // Make sure proxy won't be initialized from here,
+ // it might conflict with LLStartUp::startLLProxy()
+ LLProxy::getInstance()->applyProxySettings(mCurlHandle);
+ }
+ else
+ {
+ LL_WARNS() << "Proxy is not initialized!" << LL_ENDL;
+ }
+
}
else if (gpolicy.mHttpProxy.size())
{
diff --git a/indra/llrender/llvertexbuffer.cpp b/indra/llrender/llvertexbuffer.cpp
index 1c325f5e5d..31dffdd545 100644
--- a/indra/llrender/llvertexbuffer.cpp
+++ b/indra/llrender/llvertexbuffer.cpp
@@ -509,7 +509,7 @@ void LLVertexBuffer::setupClientArrays(U32 data_mask)
}
}
- static const U32 map_tc[] =
+ U32 map_tc[] =
{
MAP_TEXCOORD1,
MAP_TEXCOORD2,
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index 35f5330a3f..6c8e63442b 100644
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -40,6 +40,7 @@
#include "lltooltip.h"
#include "lllocalcliprect.h"
#include <iostream>
+#include "lltrans.h"
// rate at which to update display of value that is rapidly changing
const F32 MEAN_VALUE_UPDATE_TIME = 1.f / 4.f;
@@ -619,19 +620,19 @@ void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_re
std::string value_str = !llisnan(value)
? llformat("%10.*f %s", decimal_digits, value, label.c_str())
- : "n/a";
+ : LLTrans::getString("na");
// Draw the current value.
if (mOrientation == HORIZONTAL)
{
LLFontGL::getFontMonospace()->renderUTF8(value_str, 0, bar_rect.mRight, getRect().getHeight(),
- LLColor4(1.f, 1.f, 1.f, 0.5f),
+ LLColor4(1.f, 1.f, 1.f, 1.f),
LLFontGL::RIGHT, LLFontGL::TOP);
}
else
{
LLFontGL::getFontMonospace()->renderUTF8(value_str, 0, bar_rect.mRight, getRect().getHeight(),
- LLColor4(1.f, 1.f, 1.f, 0.5f),
+ LLColor4(1.f, 1.f, 1.f, 1.f),
LLFontGL::RIGHT, LLFontGL::TOP);
}
}
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 04fb1fb238..9f37c3487e 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4636,17 +4636,6 @@
<key>Value</key>
<integer>1</integer>
</map>
- <key>IgnoreFOVZoomForLODs</key>
- <map>
- <key>Comment</key>
- <string>Ignore zoom effect(CTRL+0) when calculating lods.</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>IgnoreAllNotifications</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 3bb2c45a24..f956023358 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -979,7 +979,9 @@ void LLDrawable::updateSpatialExtents()
if (mVObjp)
{
const LLVector4a* exts = getSpatialExtents();
- LLVector4a extents[2] = { exts[0], exts[1] };
+ LLVector4a extents[2];
+ extents[0] = exts[0];
+ extents[1] = exts[1];
mVObjp->updateSpatialExtents(extents[0], extents[1]);
setSpatialExtents(extents[0], extents[1]);
diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp
index eae16b9f03..c14bb4e7ae 100644
--- a/indra/newview/llfloaterscriptlimits.cpp
+++ b/indra/newview/llfloaterscriptlimits.cpp
@@ -523,6 +523,8 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
LLScrollListCell::Params cell_params;
cell_params.font = LLFontGL::getFontSansSerif();
+ // Start out right justifying numeric displays
+ cell_params.font_halign = LLFontGL::RIGHT;
cell_params.column = "size";
cell_params.value = size;
@@ -532,6 +534,8 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
cell_params.value = urls;
item_params.columns.add(cell_params);
+ cell_params.font_halign = LLFontGL::LEFT;
+ // The rest of the columns are text to left justify them
cell_params.column = "name";
cell_params.value = name_buf;
item_params.columns.add(cell_params);
@@ -546,7 +550,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
cell_params.column = "location";
cell_params.value = has_locations
- ? llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z)
+ ? llformat("<%0.0f, %0.0f, %0.0f>", location_x, location_y, location_z)
: "";
item_params.columns.add(cell_params);
@@ -623,13 +627,20 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content)
if((mParcelMemoryUsed >= 0) && (mParcelMemoryMax >= 0))
{
- S32 parcel_memory_available = mParcelMemoryMax - mParcelMemoryUsed;
-
LLStringUtil::format_map_t args_parcel_memory;
args_parcel_memory["[COUNT]"] = llformat ("%d", mParcelMemoryUsed);
- args_parcel_memory["[MAX]"] = llformat ("%d", mParcelMemoryMax);
- args_parcel_memory["[AVAILABLE]"] = llformat ("%d", parcel_memory_available);
- std::string msg_parcel_memory = LLTrans::getString("ScriptLimitsMemoryUsed", args_parcel_memory);
+ std::string translate_message = "ScriptLimitsMemoryUsedSimple";
+
+ if (0 < mParcelMemoryMax)
+ {
+ S32 parcel_memory_available = mParcelMemoryMax - mParcelMemoryUsed;
+
+ args_parcel_memory["[MAX]"] = llformat ("%d", mParcelMemoryMax);
+ args_parcel_memory["[AVAILABLE]"] = llformat ("%d", parcel_memory_available);
+ translate_message = "ScriptLimitsMemoryUsed";
+ }
+
+ std::string msg_parcel_memory = LLTrans::getString(translate_message, args_parcel_memory);
getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_parcel_memory));
}
@@ -1061,10 +1072,12 @@ void LLPanelScriptLimitsAttachment::setAttachmentDetails(LLSD content)
element["columns"][0]["column"] = "size";
element["columns"][0]["value"] = llformat("%d", size);
element["columns"][0]["font"] = "SANSSERIF";
+ element["columns"][0]["halign"] = LLFontGL::RIGHT;
element["columns"][1]["column"] = "urls";
element["columns"][1]["value"] = llformat("%d", urls);
element["columns"][1]["font"] = "SANSSERIF";
+ element["columns"][1]["halign"] = LLFontGL::RIGHT;
element["columns"][2]["column"] = "name";
element["columns"][2]["value"] = name;
@@ -1151,14 +1164,20 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content)
if((mAttachmentMemoryUsed >= 0) && (mAttachmentMemoryMax >= 0))
{
- S32 attachment_memory_available = mAttachmentMemoryMax - mAttachmentMemoryUsed;
-
LLStringUtil::format_map_t args_attachment_memory;
args_attachment_memory["[COUNT]"] = llformat ("%d", mAttachmentMemoryUsed);
- args_attachment_memory["[MAX]"] = llformat ("%d", mAttachmentMemoryMax);
- args_attachment_memory["[AVAILABLE]"] = llformat ("%d", attachment_memory_available);
- std::string msg_attachment_memory = LLTrans::getString("ScriptLimitsMemoryUsed", args_attachment_memory);
- getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_attachment_memory));
+ std::string translate_message = "ScriptLimitsMemoryUsedSimple";
+
+ if (0 < mAttachmentMemoryMax)
+ {
+ S32 attachment_memory_available = mAttachmentMemoryMax - mAttachmentMemoryUsed;
+
+ args_attachment_memory["[MAX]"] = llformat ("%d", mAttachmentMemoryMax);
+ args_attachment_memory["[AVAILABLE]"] = llformat ("%d", attachment_memory_available);
+ translate_message = "ScriptLimitsMemoryUsed";
+ }
+
+ getChild<LLUICtrl>("memory_used")->setValue(LLTrans::getString(translate_message, args_attachment_memory));
}
if((mAttachmentURLsUsed >= 0) && (mAttachmentURLsMax >= 0))
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 02fa81d5be..1de579d4c3 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -3093,6 +3093,10 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
LLAppearanceMgr::instance().takeOffOutfit( cat->getLinkedUUID() );
return;
}
+ else if ("copyoutfittoclipboard" == action)
+ {
+ copyOutfitToClipboard();
+ }
else if ("purge" == action)
{
purgeItem(model, mUUID);
@@ -3250,6 +3254,39 @@ void LLFolderBridge::gatherMessage(std::string& message, S32 depth, LLError::ELe
}
}
+void LLFolderBridge::copyOutfitToClipboard()
+{
+ std::string text;
+
+ LLInventoryModel::cat_array_t* cat_array;
+ LLInventoryModel::item_array_t* item_array;
+ gInventory.getDirectDescendentsOf(mUUID, cat_array, item_array);
+
+ S32 item_count(0);
+ if( item_array )
+ {
+ item_count = item_array->size();
+ }
+
+ if (item_count)
+ {
+ for (S32 i = 0; i < item_count;)
+ {
+ LLSD uuid =item_array->at(i)->getUUID();
+ LLViewerInventoryItem* item = gInventory.getItem(uuid);
+
+ i++;
+ if (item != NULL)
+ {
+ // Append a newline to all but the last line
+ text += i != item_count ? item->getName() + "\n" : item->getName();
+ }
+ }
+ }
+
+ LLClipboard::instance().copyToClipboard(utf8str_to_wstring(text),0,text.size());
+}
+
void LLFolderBridge::openItem()
{
LL_DEBUGS() << "LLFolderBridge::openItem()" << LL_ENDL;
@@ -3737,6 +3774,15 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
// This is the lost+found folder.
items.push_back(std::string("Empty Lost And Found"));
+ LLInventoryModel::cat_array_t* cat_array;
+ LLInventoryModel::item_array_t* item_array;
+ gInventory.getDirectDescendentsOf(mUUID, cat_array, item_array);
+ // Enable Empty menu item only when there is something to act upon.
+ if (0 == cat_array->size() && 0 == item_array->size())
+ {
+ disabled_items.push_back(std::string("Empty Lost And Found"));
+ }
+
disabled_items.push_back(std::string("New Folder"));
disabled_items.push_back(std::string("New Script"));
disabled_items.push_back(std::string("New Note"));
@@ -3781,6 +3827,15 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
{
// This is the trash.
items.push_back(std::string("Empty Trash"));
+
+ LLInventoryModel::cat_array_t* cat_array;
+ LLInventoryModel::item_array_t* item_array;
+ gInventory.getDirectDescendentsOf(mUUID, cat_array, item_array);
+ // Enable Empty menu item only when there is something to act upon.
+ if (0 == cat_array->size() && 0 == item_array->size())
+ {
+ disabled_items.push_back(std::string("Empty Trash"));
+ }
}
else if(isItemInTrash())
{
@@ -3830,6 +3885,11 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
}
}
+ if (model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT) == mUUID)
+ {
+ items.push_back(std::string("Copy outfit list to clipboard"));
+ }
+
//Added by aura to force inventory pull on right-click to display folder options correctly. 07-17-06
mCallingCards = mWearables = FALSE;
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index df25e01688..b7d8c9d034 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -344,6 +344,7 @@ protected:
BOOL checkFolderForContentsOfType(LLInventoryModel* model, LLInventoryCollectFunctor& typeToCheck);
void modifyOutfit(BOOL append);
+ void copyOutfitToClipboard();
void determineFolderType();
void dropToFavorites(LLInventoryItem* inv_item);
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index f3e00fa9c6..3975d3980b 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -1638,8 +1638,8 @@ void LLManipTranslate::highlightIntersection(LLVector3 normal,
LLGLSLShader* shader = LLGLSLShader::sCurBoundShaderPtr;
- static const U32 types[] = { LLRenderPass::PASS_SIMPLE, LLRenderPass::PASS_ALPHA, LLRenderPass::PASS_FULLBRIGHT, LLRenderPass::PASS_SHINY };
- static const U32 num_types = LL_ARRAY_SIZE(types);
+ U32 types[] = { LLRenderPass::PASS_SIMPLE, LLRenderPass::PASS_ALPHA, LLRenderPass::PASS_FULLBRIGHT, LLRenderPass::PASS_SHINY };
+ U32 num_types = LL_ARRAY_SIZE(types);
GLuint stencil_mask = 0xFFFFFFFF;
//stencil in volumes
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index c9fc1cc33e..fa946ee5c7 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -1192,6 +1192,20 @@ bool LLPanelMainInventory::isSaveTextureEnabled(const LLSD& userdata)
BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
{
const std::string command_name = userdata.asString();
+ if (command_name == "not_empty")
+ {
+ BOOL status = FALSE;
+ LLFolderViewItem* current_item = getActivePanel()->getRootFolder()->getCurSelectedItem();
+ if (current_item)
+ {
+ const LLUUID& item_id = static_cast<LLFolderViewModelItemInventory*>(current_item->getViewModelItem())->getUUID();
+ LLInventoryModel::cat_array_t* cat_array;
+ LLInventoryModel::item_array_t* item_array;
+ gInventory.getDirectDescendentsOf(item_id, cat_array, item_array);
+ status = (0 == cat_array->size() && 0 == item_array->size());
+ }
+ return status;
+ }
if (command_name == "delete")
{
return getActivePanel()->isSelectionRemovable();
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 35ecc4421c..1bb3d65e05 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -3029,7 +3029,7 @@ bool LLStartUp::startLLProxy()
}
else
{
- LL_WARNS("Proxy") << "Invalid other HTTP proxy configuration."<< LL_ENDL;
+ LL_WARNS("Proxy") << "Invalid other HTTP proxy configuration: " << httpProxyType << LL_ENDL;
// Set the missing or wrong configuration back to something valid.
gSavedSettings.setString("HttpProxyType", "None");
diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp
index 778e275727..57a0195d23 100644
--- a/indra/newview/llviewercamera.cpp
+++ b/indra/newview/llviewercamera.cpp
@@ -113,7 +113,6 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
{
calcProjection(getFar());
mCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
- mPrevCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
mPixelMeterRatio = 0.f;
mScreenPixelArea = 0;
@@ -883,15 +882,6 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads)
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
}
-BOOL LLViewerCamera::isDefaultFOVChanged()
-{
- if(mPrevCameraFOVDefault != mCameraFOVDefault)
- {
- mPrevCameraFOVDefault = mCameraFOVDefault;
- return !gSavedSettings.getBOOL("IgnoreFOVZoomForLODs");
- }
- return FALSE;
-}
// static
void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)
diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h
index 5901de289f..f8c973690a 100644
--- a/indra/newview/llviewercamera.h
+++ b/indra/newview/llviewercamera.h
@@ -115,8 +115,6 @@ public:
void setDefaultFOV(F32 fov) ;
F32 getDefaultFOV() { return mCameraFOVDefault; }
- BOOL isDefaultFOVChanged();
-
BOOL cameraUnderWater() const;
BOOL areVertsVisible(LLViewerObject* volumep, BOOL all_verts);
@@ -140,7 +138,6 @@ protected:
mutable LLMatrix4 mProjectionMatrix; // Cache of perspective matrix
mutable LLMatrix4 mModelviewMatrix;
F32 mCameraFOVDefault;
- F32 mPrevCameraFOVDefault;
F32 mCosHalfCameraFOV;
LLVector3 mLastPointOfInterest;
F32 mPixelMeterRatio; // Divide by distance from camera to get pixels per meter at that distance.
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index bf98650afd..434c8f1d8c 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -931,7 +931,7 @@ void LLViewerMedia::setAllMediaPaused(bool val)
{
// Set "tentative" autoplay first. We need to do this here or else
// re-enabling won't start up the media below.
- gSavedSettings.setBOOL("MediaTentativeAutoPlay", val);
+ gSavedSettings.setBOOL("MediaTentativeAutoPlay", !val);
// Then
impl_list::iterator iter = sViewerMediaImplList.begin();
@@ -951,7 +951,7 @@ void LLViewerMedia::setAllMediaPaused(bool val)
pimpl->play();
}
}
- else if (pimpl->isMediaTimeBased() && pimpl->mMediaSource)
+ else if (pimpl->isMediaTimeBased() && pimpl->mMediaSource && (pimpl->isMediaPlaying() || pimpl->isMediaPaused()))
{
pimpl->pause();
}
diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp
index 5f0e21db71..023f1b92ba 100644
--- a/indra/newview/llvieweroctree.cpp
+++ b/indra/newview/llvieweroctree.cpp
@@ -465,7 +465,7 @@ LLViewerOctreeGroup::LLViewerOctreeGroup(OctreeNode* node)
{
LLVector4a tmp;
tmp.splat(0.f);
- mExtents[0] = mExtents[1] = mObjectBounds[0] = mObjectBounds[1] =
+ mExtents[0] = mExtents[1] = mObjectBounds[0] = mObjectBounds[0] = mObjectBounds[1] =
mObjectExtents[0] = mObjectExtents[1] = tmp;
mBounds[0] = node->getCenter();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index e573138101..098996147f 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1216,18 +1216,18 @@ void LLVOVolume::sculpt()
}
}
-S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius, F32 lod_factor)
+S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius)
{
S32 cur_detail;
if (LLPipeline::sDynamicLOD)
{
// We've got LOD in the profile, and in the twist. Use radius.
- F32 tan_angle = (lod_factor*radius)/distance;
+ F32 tan_angle = (LLVOVolume::sLODFactor*radius)/distance;
cur_detail = LLVolumeLODGroup::getDetailFromTan(ll_round(tan_angle, 0.01f));
}
else
{
- cur_detail = llclamp((S32) (sqrtf(radius)*lod_factor*4.f), 0, 3);
+ cur_detail = llclamp((S32) (sqrtf(radius)*LLVOVolume::sLODFactor*4.f), 0, 3);
}
return cur_detail;
}
@@ -1243,7 +1243,6 @@ BOOL LLVOVolume::calcLOD()
F32 radius;
F32 distance;
- F32 lod_factor = LLVOVolume::sLODFactor;
if (mDrawable->isState(LLDrawable::RIGGED))
{
@@ -1279,18 +1278,12 @@ BOOL LLVOVolume::calcLOD()
distance *= rampDist;
}
-
+ // DON'T Compensate for field of view changing on FOV zoom.
distance *= F_PI/3.f;
- static LLCachedControl<bool> ignore_fov_zoom(gSavedSettings,"IgnoreFOVZoomForLODs");
- if(!ignore_fov_zoom)
- {
- lod_factor *= DEFAULT_FIELD_OF_VIEW / LLViewerCamera::getInstance()->getDefaultFOV();
- }
-
cur_detail = computeLODDetail(ll_round(distance, 0.01f),
- ll_round(radius, 0.01f),
- lod_factor);
+ ll_round(radius, 0.01f));
+
if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_LOD_INFO) &&
mDrawable->getFace(0))
@@ -1487,6 +1480,7 @@ BOOL LLVOVolume::genBBoxes(BOOL force_global)
res &= face->genVolumeBBoxes(*volume, i,
mRelativeXform,
(mVolumeImpl && mVolumeImpl->isVolumeGlobal()) || force_global);
+
if (rebuild)
{
if (i == 0)
@@ -1762,11 +1756,6 @@ BOOL LLVOVolume::updateGeometry(LLDrawable *drawable)
dirtySpatialGroup(drawable->isState(LLDrawable::IN_REBUILD_Q1));
compiled = TRUE;
lodOrSculptChanged(drawable, compiled);
-
- if(drawable->isState(LLDrawable::REBUILD_RIGGED | LLDrawable::RIGGED))
- {
- updateRiggedVolume(false);
- }
genBBoxes(FALSE);
}
// it has its own drawable (it's moved) or it has changed UVs or it has changed xforms from global<->local
@@ -4218,7 +4207,7 @@ void LLRiggedVolume::update(const LLMeshSkinInfo* skin, LLVOAvatar* avatar, cons
LLVector4a* pos = dst_face.mPositions;
- if (pos && dst_face.mExtents)
+ if( pos && weight && dst_face.mExtents )
{
LL_RECORD_BLOCK_TIME(FTM_SKIN_RIGGED);
diff --git a/indra/newview/llvovolume.h b/indra/newview/llvovolume.h
index 3b68d61ee9..a331908320 100644
--- a/indra/newview/llvovolume.h
+++ b/indra/newview/llvovolume.h
@@ -327,7 +327,7 @@ public:
void clearRiggedVolume();
protected:
- S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
+ S32 computeLODDetail(F32 distance, F32 radius);
BOOL calcLOD();
LLFace* addFace(S32 face_index);
void updateTEData();
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index dddf586f62..890839e6e6 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -3424,7 +3424,6 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
{
LLSpatialGroup* last_group = NULL;
- BOOL fov_changed = LLViewerCamera::getInstance()->isDefaultFOVChanged();
for (LLCullResult::bridge_iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i)
{
LLCullResult::bridge_iterator cur_iter = i;
@@ -3438,7 +3437,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
if (!bridge->isDead() && group && !group->isOcclusionState(LLSpatialGroup::OCCLUDED))
{
- stateSort(bridge, camera, fov_changed);
+ stateSort(bridge, camera);
}
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD &&
@@ -3510,9 +3509,9 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
}
-void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed)
+void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera)
{
- if (bridge->getSpatialGroup()->changeLOD() || fov_changed)
+ if (bridge->getSpatialGroup()->changeLOD())
{
bool force_update = false;
bridge->updateDistance(camera, force_update);
@@ -10120,7 +10119,7 @@ void LLPipeline::renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera
}
LLPipeline::sShadowRender = TRUE;
- static const U32 types[] = {
+ U32 types[] = {
LLRenderPass::PASS_SIMPLE,
LLRenderPass::PASS_FULLBRIGHT,
LLRenderPass::PASS_SHINY,
@@ -11625,7 +11624,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
avatar->setImpostorDim(tdim);
- LLVOAvatar::sUseImpostors = (0 != LLVOAvatar::sMaxNonImpostors);
+ LLVOAvatar::sUseImpostors = true; // @TODO ???
sUseOcclusion = occlusion;
sReflectionRender = FALSE;
sImpostorRender = FALSE;
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 5ddb4e0f01..bba36351d9 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -254,7 +254,7 @@ public:
void stateSort(LLCamera& camera, LLCullResult& result);
void stateSort(LLSpatialGroup* group, LLCamera& camera);
- void stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed = FALSE);
+ void stateSort(LLSpatialBridge* bridge, LLCamera& camera);
void stateSort(LLDrawable* drawablep, LLCamera& camera);
void postSort(LLCamera& camera);
void forAllVisibleDrawables(void (*func)(LLDrawable*));
diff --git a/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml
index 71ff961c59..b53698a9f2 100644
--- a/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml
@@ -7,29 +7,22 @@
save_rect="true"
save_visibility="true"
title="SCENE LOAD STATISTICS"
- width="260">
- <button follows="top|left"
- top="20"
- bottom="60"
- left="10"
- width="100"
- label="Pause"
- name="playpause"/>
+ width="400">
<scroll_container follows="top|left|bottom|right"
bottom="400"
layout="topleft"
left="0"
name="statistics_scroll"
reserve_scroll_corner="true"
- top="60"
- width="260">
+ top="20"
+ width="395">
<container_view follows="top|left|bottom|right"
height="378"
layout="topleft"
left="2"
name="statistics_view"
top="20"
- width="245" >
+ width="380" >
<!--Basic Section-->
<stat_view name="basic"
label="Basic"
diff --git a/indra/newview/skins/default/xui/en/floater_script_limits.xml b/indra/newview/skins/default/xui/en/floater_script_limits.xml
index 6b36cdfcc5..96b2ceec63 100644
--- a/indra/newview/skins/default/xui/en/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_limits.xml
@@ -8,7 +8,8 @@
name="scriptlimits"
save_rect="true"
title="SCRIPT INFORMATION"
- width="480">
+ min_width="620"
+ width="620">
<tab_container
bottom="555"
follows="left|right|top|bottom"
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index 90f9591f29..be9b93837a 100644
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -8,7 +8,7 @@
save_rect="true"
save_visibility="true"
title="STATISTICS"
- width="260">
+ width="270">
<scroll_container follows="all"
height="380"
layout="topleft"
@@ -16,14 +16,14 @@
name="statistics_scroll"
reserve_scroll_corner="true"
top="20"
- width="260">
+ width="265">
<container_view follows="all"
height="378"
layout="topleft"
- left="2"
+ left="0"
name="statistics_view"
top="20"
- width="245" >
+ width="250" >
<stat_view name="basic"
label="Basic"
setting="OpenDebugStatBasic">
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 61002bf1b5..5b8a9413bf 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -457,6 +457,14 @@
function="Inventory.DoToSelected"
parameter="removefromoutfit" />
</menu_item_call>
+ <menu_item_call
+ label="Copy outfit list to clipboard"
+ layout="topleft"
+ name="Copy outfit list to clipboard">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="copyoutfittoclipboard" />
+ </menu_item_call>
<menu_item_separator
layout="topleft"
name="Outfit Separator" />
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 98dcdcd1dc..f911c2da7b 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -448,7 +448,7 @@
parameter="mini_map" />
</menu_item_check>
<menu_item_check
- label="Search"
+ label="Search..."
name="Search"
shortcut="control|F">
<menu_item_check.on_check
diff --git a/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
index 629d8567d1..2c2803a503 100644
--- a/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
@@ -8,7 +8,7 @@
left="0"
name="script_limits_my_avatar_panel"
top="0"
- width="480">
+ width="620">
<text
type="string"
length="1"
@@ -19,7 +19,7 @@
name="script_memory"
top_pad="24"
text_color="White"
- width="480">
+ width="620">
Avatar Script Usage
</text>
<text
@@ -31,7 +31,7 @@
left="30"
name="memory_used"
top_delta="18"
- width="480">
+ width="620">
</text>
<text
@@ -43,7 +43,7 @@
left="30"
name="urls_used"
top_delta="18"
- width="480">
+ width="620">
</text>
<text
@@ -56,7 +56,7 @@
name="loading_text"
top="80"
text_color="EmphasisColor"
- width="480">
+ width="620">
Loading...
</text>
<scroll_list
@@ -68,7 +68,7 @@
multi_select="true"
name="scripts_list"
top="100"
- width="460">
+ width="600">
<scroll_list.columns
label="Size (kb)"
name="size"
diff --git a/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
index c5e8bf5803..79bb781bc6 100644
--- a/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
@@ -8,7 +8,7 @@
name="script_limits_region_memory_panel"
top="0"
left="0"
- width="480">
+ width="620">
<text
type="string"
length="1"
@@ -19,7 +19,7 @@
name="script_memory"
top_pad="24"
text_color="White"
- width="480">
+ width="620">
Parcel Script Memory
</text>
<text
@@ -32,7 +32,7 @@
name="parcels_listed"
top_delta="18"
visible="true"
- width="480">
+ width="620">
</text>
<text
@@ -44,7 +44,7 @@
left="30"
name="memory_used"
top_delta="18"
- width="480">
+ width="620">
</text>
<text
@@ -56,7 +56,7 @@
left="30"
name="urls_used"
top_delta="18"
- width="480">
+ width="620">
</text>
<text
@@ -69,7 +69,7 @@
name="loading_text"
top_delta="12"
text_color="EmphasisColor"
- width="480">
+ width="620">
Loading...
</text>
<scroll_list
@@ -83,7 +83,7 @@
sort_ascending="true"
name="scripts_list"
top_delta="16"
- width="460">
+ width="600">
<scroll_list.columns
label="Size (kb)"
name="size"
@@ -120,23 +120,23 @@
left="10"
width="100" />
<button
- follows="bottom|right"
+ follows="bottom|left"
height="19"
- label="Highlight"
+ label="Return"
visible="false"
- layout="bottomright"
- left="370"
- name="highlight_btn"
+ layout="bottomleft"
+ name="return_btn"
top="34"
+ left_delta="390"
width="100" />
<button
- follows="bottom|right"
+ follows="bottom|left"
height="19"
- label="Return"
+ label="Highlight"
visible="false"
- layout="bottomright"
- name="return_btn"
+ layout="bottomleft"
+ left_delta="105"
+ name="highlight_btn"
top="34"
- left_delta="-105"
width="100" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 8d84dd47ab..88ad8bbf7b 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -4200,6 +4200,9 @@ Try enclosing path to the editor with double quotes.
Loading...
</string>
+ <!-- Statistics -->
+ <string name="na">n/a</string>
+
<!-- Presets graphic/camera -->
<string name="preset_combo_label">-Empty list-</string>
<string name="Default">Default</string>