Merge branch 'DRTVWR-588-maint-W' of https://github.com/secondlife/viewer

# Conflicts:
#	.github/release.yaml
#	autobuild.xml
#	indra/newview/llscrollingpanelparam.cpp
master
Ansariel 2023-12-12 12:57:27 +01:00
commit 7f8931fd96
11 changed files with 107 additions and 122 deletions

View File

@ -1814,11 +1814,11 @@
<key>archive</key>
<map>
<key>hash</key>
<string>e50ea94bbaa4ff41bf53b84b7192df1a694c5337</string>
<string>3a3e14563cd5fc019c3f139b82aa46ec79847709</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
<string>https://github.com/secondlife/llca/releases/download/v202310121525.0-d22bd98/llca-202310121530.0-common-d22bd98.tar.zst</string>
<string>https://github.com/secondlife/llca/releases/download/v202312051403.17-0f5d9c3/llca-202312051404.0-common-0f5d9c3.tar.zst</string>
</map>
<key>name</key>
<string>common</string>
@ -1832,7 +1832,7 @@
<string>Copyright (c) 2016, Linden Research, Inc.; data provided by the Mozilla NSS Project.
</string>
<key>version</key>
<string>202310121530.0</string>
<string>202312051404.0</string>
<key>name</key>
<string>llca</string>
</map>
@ -3298,7 +3298,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE</string>
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
<string>-DINSTALL_PROPRIETARY=TRUE</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3318,11 +3318,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE</string>
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
<string>-DINSTALL_PROPRIETARY=FALSE</string>
</array>
</array>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
</array>
</map>
<key>name</key>
<string>RelWithDebInfoOS</string>
@ -3339,7 +3339,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE</string>
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
<string>-DINSTALL_PROPRIETARY=TRUE</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3359,11 +3359,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-DADDRESS_SIZE:STRING=$AUTOBUILD_ADDRSIZE</string>
<string>-DROOT_PROJECT_NAME:STRING=SecondLife</string>
<string>-DINSTALL_PROPRIETARY=FALSE</string>
</array>
</array>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
</array>
</map>
<key>name</key>
<string>ReleaseOS</string>
@ -3566,11 +3566,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<array>
<string>-G</string>
<string>Xcode</string>
</array>
</array>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3600,7 +3600,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<array>
<string>-G</string>
<string>Xcode</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3630,11 +3630,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<array>
<string>-G</string>
<string>Xcode</string>
</array>
</array>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3660,7 +3660,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<array>
<string>-G</string>
<string>Xcode</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3791,11 +3791,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-G</string>
<string>Ninja</string>
<string>-DLL_TESTS=Off</string>
</array>
</array>
<key>arguments</key>
<array>
<string>../indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3818,7 +3818,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-G</string>
<string>Ninja</string>
<string>-DLL_TESTS=Off</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3950,11 +3950,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN}</string>
<string>-A</string>
<string>${AUTOBUILD_WIN_VSPLATFORM|NOTWIN}</string>
</array>
</array>
<key>arguments</key>
<array>
<string>..\indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -3964,11 +3964,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<array>
<string>/build</string>
<string>RelWithDebInfo|${AUTOBUILD_WIN_VSPLATFORM|NOTWIN}</string>
</array>
</array>
<key>arguments</key>
<array>
<string>SecondLife.sln</string>
</array>
</array>
</map>
<!-- FS:Ansariel: This will cause packages being installed twice
<key>default</key>
@ -3990,11 +3990,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-DINSTALL_PROPRIETARY=FALSE</string>
<string>-DUSE_KDU=FALSE</string>
<string>-DUSE_OPENAL:BOOL=ON</string>
</array>
</array>
<key>arguments</key>
<array>
<string>..\indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -4008,11 +4008,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>/p:useenv=true</string>
<string>/verbosity:minimal</string>
<string>/p:VCBuildAdditionalOptions= /incremental</string>
</array>
</array>
<key>arguments</key>
<array>
<string>SecondLife.sln</string>
</array>
</array>
</map>
<key>name</key>
<string>RelWithDebInfoOS</string>
@ -4027,11 +4027,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>${AUTOBUILD_WIN_CMAKE_GEN|NOTWIN}</string>
<string>-A</string>
<string>${AUTOBUILD_WIN_VSPLATFORM|NOTWIN}</string>
</array>
</array>
<key>arguments</key>
<array>
<string>..\indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -4041,11 +4041,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<array>
<string>/build</string>
<string>Release|${AUTOBUILD_WIN_VSPLATFORM|NOTWIN}</string>
</array>
</array>
<key>arguments</key>
<array>
<string>SecondLife.sln</string>
</array>
</array>
</map>
<key>name</key>
<string>Release</string>
@ -4064,11 +4064,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>-DINSTALL_PROPRIETARY=FALSE</string>
<string>-DUSE_KDU=FALSE</string>
<string>-DUSE_OPENAL:BOOL=ON</string>
</array>
</array>
<key>arguments</key>
<array>
<string>..\indra</string>
</array>
</array>
</map>
<key>build</key>
<map>
@ -4082,11 +4082,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<string>/p:useenv=true</string>
<string>/verbosity:minimal</string>
<string>/p:VCBuildAdditionalOptions= /incremental</string>
</array>
</array>
<key>arguments</key>
<array>
<string>SecondLife.sln</string>
</array>
</array>
</map>
<key>name</key>
<string>ReleaseOS</string>

View File

@ -2023,7 +2023,7 @@
value_min="-1"
value_max="1">
<param_skeleton>
<bone
name="mEyeLeft"
scale="0 0 0"
@ -2033,9 +2033,8 @@
name="mEyeRight"
scale="0 0 0"
offset="-.005 0 0" />
<bone
<bone
name="mFaceEyeAltLeft"
scale="0 0 0"
offset="-.005 0 0" />
@ -2044,7 +2043,7 @@
name="mFaceEyeAltRight"
scale="0 0 0"
offset="-.005 0 0" />
<bone
name="mFaceEyeLidLowerRight"
scale="0 0.3 0.7"
@ -2055,7 +2054,7 @@
scale="0 0.3 0.7"
offset="0 0 0" />
<bone
<bone
name="mFaceEyeLidUpperRight"
scale="0 0.3 0.7"
offset=" 0 0 0" />
@ -2064,17 +2063,17 @@
name="mFaceEyeLidUpperLeft"
scale="0 0.3 0.7"
offset=" 0 0 0" />
<bone
name="mFaceEyecornerInnerLeft"
scale="0 0 0"
offset="-0.005 -0.008 0.0" />
<bone
name="mFaceEyecornerInnerRight"
scale="0 0 0"
offset="-0.005 0.008 0.0" />
</param_skeleton>
</param>

View File

@ -971,7 +971,7 @@ void LLFastTimerView::printLineStats()
{
std::string legend_stat;
bool first = true;
for(block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
for(LLTrace::block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != LLTrace::end_block_timer_tree_df();
++it)
{
@ -993,7 +993,7 @@ void LLFastTimerView::printLineStats()
std::string timer_stat;
first = true;
for(block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
for(LLTrace::block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != LLTrace::end_block_timer_tree_df();
++it)
{
@ -1070,7 +1070,7 @@ void LLFastTimerView::drawLineGraph()
F32Seconds cur_max(0);
U32 cur_max_calls = 0;
for(block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
for(LLTrace::block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != LLTrace::end_block_timer_tree_df();
++it)
{
@ -1223,8 +1223,8 @@ void LLFastTimerView::drawLegend()
S32 scroll_offset = 0; // element's y offset from top of the inner scroll's rect
ft_display_idx.clear();
std::map<BlockTimerStatHandle*, S32> display_line;
for (block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != block_timer_tree_df_iterator_t();
for (LLTrace::block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != LLTrace::end_block_timer_tree_df();
++it)
{
BlockTimerStatHandle* idp = (*it);
@ -1339,8 +1339,8 @@ void LLFastTimerView::generateUniqueColors()
F32 hue = 0.f;
for (block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != block_timer_tree_df_iterator_t();
for (LLTrace::block_timer_tree_df_iterator_t it = LLTrace::begin_block_timer_tree_df(FTM_FRAME);
it != LLTrace::end_block_timer_tree_df();
++it)
{
BlockTimerStatHandle* idp = (*it);

View File

@ -1767,7 +1767,7 @@ void LLFloaterIMContainer::setTimeNow(const LLUUID& session_id, const LLUUID& pa
LLConversationItemSession* item = dynamic_cast<LLConversationItemSession*>(get_ptr_in_map(mConversationsItems,session_id));
if (item)
{
item->setTimeNow(participant_id);
item->setTimeNow(participant_id);
mConversationViewModel.requestSortAll();
mConversationsRoot->arrangeAll();
}

View File

@ -259,21 +259,17 @@ void LLScrollingPanelParam::onHintHeldDown( LLVisualParamHint* hint )
// Make sure we're not taking the slider out of bounds
// (this is where some simple UI limits are stored)
F32 new_percent = weightToPercent(new_weight);
LLSliderCtrl* slider = getChild<LLSliderCtrl>("param slider");
if (slider)
F32 new_percent = weightToSlider(new_weight);
if (mSlider->getMinValue() < new_percent
&& new_percent < mSlider->getMaxValue())
{
if (slider->getMinValue() < new_percent
&& new_percent < slider->getMaxValue())
{
// <FS:Ansariel> [Legacy Bake]
//mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight);
mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight, FALSE);
mWearable->writeToAvatar(gAgentAvatarp);
gAgentAvatarp->updateVisualParams();
// <FS:Ansariel> [Legacy Bake]
//mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight);
mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight, FALSE);
mWearable->writeToAvatar(gAgentAvatarp);
gAgentAvatarp->updateVisualParams();
slider->setValue( weightToPercent( new_weight ) );
}
mSlider->setValue( weightToSlider( new_weight ) );
}
}
}
@ -294,19 +290,15 @@ void LLScrollingPanelParam::onHintMinMouseUp( void* userdata )
F32 range = self->mHintMax->getVisualParamWeight() - self->mHintMin->getVisualParamWeight();
// step a fraction in the negative directiona
F32 new_weight = current_weight - (range / 10.f);
F32 new_percent = self->weightToPercent(new_weight);
LLSliderCtrl* slider = self->getChild<LLSliderCtrl>("param slider");
if (slider)
F32 new_percent = self->weightToSlider(new_weight);
if (self->mSlider->getMinValue() < new_percent
&& new_percent < self->mSlider->getMaxValue())
{
if (slider->getMinValue() < new_percent
&& new_percent < slider->getMaxValue())
{
// <FS:Ansariel> [Legacy Bake]
//self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
self->mWearable->writeToAvatar(gAgentAvatarp);
slider->setValue( self->weightToPercent( new_weight ) );
}
// <FS:Ansariel> [Legacy Bake]
//self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
self->mWearable->writeToAvatar(gAgentAvatarp);
self->mSlider->setValue( self->weightToSlider( new_weight ) );
}
}
@ -330,35 +322,18 @@ void LLScrollingPanelParam::onHintMaxMouseUp( void* userdata )
F32 range = self->mHintMax->getVisualParamWeight() - self->mHintMin->getVisualParamWeight();
// step a fraction in the negative direction
F32 new_weight = current_weight + (range / 10.f);
F32 new_percent = self->weightToPercent(new_weight);
LLSliderCtrl* slider = self->getChild<LLSliderCtrl>("param slider");
if (slider)
F32 new_percent = self->weightToSlider(new_weight);
if (self->mSlider->getMinValue() < new_percent
&& new_percent < self->mSlider->getMaxValue())
{
if (slider->getMinValue() < new_percent
&& new_percent < slider->getMaxValue())
{
// <FS:Ansariel> [Legacy Bake]
//self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
self->mWearable->writeToAvatar(gAgentAvatarp);
slider->setValue( self->weightToPercent( new_weight ) );
}
// <FS:Ansariel> [Legacy Bake]
//self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight);
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
self->mWearable->writeToAvatar(gAgentAvatarp);
self->mSlider->setValue( self->weightToSlider( new_weight ) );
}
}
}
LLVisualParamHint::requestHintUpdates( self->mHintMin, self->mHintMax );
}
F32 LLScrollingPanelParam::weightToPercent( F32 weight )
{
LLViewerVisualParam* param = mParam;
return (weight - param->getMinWeight()) / (param->getMaxWeight() - param->getMinWeight()) * 100.f;
}
F32 LLScrollingPanelParam::percentToWeight( F32 percent )
{
LLViewerVisualParam* param = mParam;
return percent / 100.f * (param->getMaxWeight() - param->getMinWeight()) + param->getMinWeight();
}

View File

@ -61,9 +61,6 @@ public:
void onHintMouseDown( LLVisualParamHint* hint );
void onHintHeldDown( LLVisualParamHint* hint );
F32 weightToPercent( F32 weight );
F32 percentToWeight( F32 percent );
public:
// Constants for LLPanelVisualParam
const static F32 PARAM_STEP_TIME_THRESHOLD;

View File

@ -43,6 +43,7 @@ LLScrollingPanelParamBase::LLScrollingPanelParamBase( const LLPanel::Params& pan
LLViewerJointMesh* mesh, LLViewerVisualParam* param, BOOL allow_modify, LLWearable* wearable, LLJoint* jointp, BOOL use_hints)
: LLScrollingPanel( panel_params ),
mParam(param),
mSlider(nullptr),
mAllowModify(allow_modify),
mWearable(wearable)
{
@ -50,13 +51,15 @@ LLScrollingPanelParamBase::LLScrollingPanelParamBase( const LLPanel::Params& pan
buildFromFile( "panel_scrolling_param.xml");
else
buildFromFile( "panel_scrolling_param_base.xml");
getChild<LLUICtrl>("param slider")->setValue(weightToPercent(param->getWeight()));
mSlider = getChild<LLSliderCtrl>("param slider");
mSlider->setMaxValue(100.f * (mParam->getMaxWeight() - mParam->getMinWeight()));
mSlider->setValue(weightToSlider(param->getWeight()));
std::string display_name = LLTrans::getString(param->getDisplayName());
getChild<LLUICtrl>("param slider")->setLabelArg("[DESC]", display_name);
getChildView("param slider")->setEnabled(mAllowModify);
childSetCommitCallback("param slider", LLScrollingPanelParamBase::onSliderMoved, this);
mSlider->setLabelArg("[DESC]", display_name);
mSlider->setEnabled(mAllowModify);
mSlider->setCommitCallback(boost::bind(LLScrollingPanelParamBase::onSliderMoved, mSlider, this));
setVisible(FALSE);
setBorderVisible( FALSE );
@ -77,9 +80,9 @@ void LLScrollingPanelParamBase::updatePanel(BOOL allow_modify)
}
F32 current_weight = mWearable->getVisualParamWeight( param->getID() );
getChild<LLUICtrl>("param slider")->setValue(weightToPercent( current_weight ) );
mSlider->setValue(weightToSlider( current_weight ) );
mAllowModify = allow_modify;
getChildView("param slider")->setEnabled(mAllowModify);
mSlider->setEnabled(mAllowModify);
}
// static
@ -90,7 +93,7 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)
LLViewerVisualParam* param = self->mParam;
F32 current_weight = self->mWearable->getVisualParamWeight( param->getID() );
F32 new_weight = self->percentToWeight( (F32)slider->getValue().asReal() );
F32 new_weight = self->sliderToWeight( (F32)slider->getValue().asReal() );
if (current_weight != new_weight )
{
// <FS:Ansariel> [Legacy Bake]
@ -101,14 +104,12 @@ void LLScrollingPanelParamBase::onSliderMoved(LLUICtrl* ctrl, void* userdata)
}
}
F32 LLScrollingPanelParamBase::weightToPercent( F32 weight )
F32 LLScrollingPanelParamBase::weightToSlider(F32 weight)
{
LLViewerVisualParam* param = mParam;
return (weight - param->getMinWeight()) / (param->getMaxWeight() - param->getMinWeight()) * 100.f;
return (weight - mParam->getMinWeight()) * 100.f;
}
F32 LLScrollingPanelParamBase::percentToWeight( F32 percent )
F32 LLScrollingPanelParamBase::sliderToWeight(F32 slider)
{
LLViewerVisualParam* param = mParam;
return percent / 100.f * (param->getMaxWeight() - param->getMinWeight()) + param->getMinWeight();
return slider / 100.f + mParam->getMinWeight();
}

View File

@ -36,6 +36,7 @@ class LLViewerVisualParam;
class LLWearable;
class LLVisualParamHint;
class LLViewerVisualParam;
class LLSliderCtrl;
class LLJoint;
class LLScrollingPanelParamBase : public LLScrollingPanel
@ -49,11 +50,13 @@ public:
static void onSliderMoved(LLUICtrl* ctrl, void* userdata);
F32 weightToPercent( F32 weight );
F32 percentToWeight( F32 percent );
F32 weightToSlider(F32 weight);
F32 sliderToWeight(F32 slider);
public:
LLViewerVisualParam* mParam;
LLSliderCtrl* mSlider;
protected:
BOOL mAllowModify;
LLWearable *mWearable;

View File

@ -5371,7 +5371,7 @@ void process_object_animation(LLMessageSystem *mesgsys, void **user_data)
LLObjectSignaledAnimationMap::instance().getMap()[uuid] = signaled_anims;
LLViewerObject *objp = gObjectList.findObject(uuid);
if (!objp)
if (!objp || objp->isDead())
{
LL_DEBUGS("AnimatedObjectsNotify") << "Received animation state for unknown object " << uuid << LL_ENDL;
return;

View File

@ -410,6 +410,7 @@ LLViewerObject::~LLViewerObject()
sNumObjects--;
sNumZombieObjects--;
llassert(mChildList.size() == 0);
llassert(mControlAvatar.isNull()); // Should have been cleaned by now
clearInventoryListeners();
}
@ -3226,6 +3227,10 @@ void LLViewerObject::updateControlAvatar()
return;
}
// caller isn't supposed to operate on a dead object,
// avatar was already cleaned up
llassert(!isDead());
bool should_have_control_avatar = false;
if (is_animated_object)
{

View File

@ -5774,6 +5774,11 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
LL_PROFILE_ZONE_SCOPED_CATEGORY_VOLUME;
llassert(!gCubeSnapshot);
if (group->isDead())
{
return;
}
if (group->changeLOD())
{
group->mLastUpdateDistance = group->mDistance;
@ -5861,7 +5866,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
LLVOVolume* vobj = drawablep->getVOVolume();
if (!vobj)
if (!vobj || vobj->isDead())
{
continue;
}