summaryrefslogtreecommitdiff
path: root/indra/llinventory/llsettingsbase.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2024-09-12 14:32:43 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2024-09-12 18:45:06 +0300
commite71215dcfdb960f64a7f10d2fba71790f8e7bcd1 (patch)
treee16f82e0b426c43bad2fdc57c079936f166a6c36 /indra/llinventory/llsettingsbase.cpp
parentdfff269d83df60de49fe8e5d7fffe9d1913e8036 (diff)
viewer#2529 Optimize LLSettingsWater::blend
Diffstat (limited to 'indra/llinventory/llsettingsbase.cpp')
-rw-r--r--indra/llinventory/llsettingsbase.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/indra/llinventory/llsettingsbase.cpp b/indra/llinventory/llsettingsbase.cpp
index f7151403b4..0ee71de3a1 100644
--- a/indra/llinventory/llsettingsbase.cpp
+++ b/indra/llinventory/llsettingsbase.cpp
@@ -141,6 +141,26 @@ void LLSettingsBase::lerpSettings(LLSettingsBase &other, F64 mix)
loadValuesFromLLSD();
}
+void LLSettingsBase::lerpVector2(LLVector2& a, const LLVector2& b, F32 mix)
+{
+ a.mV[0] = lerp(a.mV[0], b.mV[0], mix);
+ a.mV[1] = lerp(a.mV[1], b.mV[1], mix);
+}
+
+void LLSettingsBase::lerpVector3(LLVector3& a, const LLVector3& b, F32 mix)
+{
+ a.mV[0] = lerp(a.mV[0], b.mV[0], mix);
+ a.mV[1] = lerp(a.mV[1], b.mV[1], mix);
+ a.mV[2] = lerp(a.mV[2], b.mV[2], mix);
+}
+
+void LLSettingsBase::lerpColor(LLColor3& a, const LLColor3& b, F32 mix)
+{
+ a.mV[0] = lerp(a.mV[0], b.mV[0], mix);
+ a.mV[1] = lerp(a.mV[1], b.mV[1], mix);
+ a.mV[2] = lerp(a.mV[2], b.mV[2], mix);
+}
+
LLSD LLSettingsBase::combineSDMaps(const LLSD &settings, const LLSD &other)
{
LLSD newSettings;
@@ -759,7 +779,7 @@ F64 LLSettingsBlender::setBlendFactor(const LLSettingsBase::BlendFactor& blendf_
if (mTarget)
{
- mTarget->replaceSettings(mInitial->getSettings());
+ mTarget->replaceSettings(mInitial);
mTarget->blend(mFinal, blendf);
}
else
@@ -774,7 +794,7 @@ void LLSettingsBlender::triggerComplete()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_ENVIRONMENT;
if (mTarget)
- mTarget->replaceSettings(mFinal->getSettings());
+ mTarget->replaceSettings(mFinal);
LLSettingsBlender::ptr_t hold = shared_from_this(); // prevents this from deleting too soon
mTarget->update();
mOnFinished(shared_from_this());