Merged in andreykproductengine/maint-eep (pull request #170)
SL-1476 EEP Better shader transitions Approved-by: Maxim Nikolenko <maximnproductengine@lindenlab.com>meow-7.2.2
commit
7b6cd0859c
|
|
@ -230,6 +230,11 @@ LLSD LLSettingsBase::interpolateSDMap(const LLSD &settings, const LLSD &other, c
|
|||
// Blend against default value
|
||||
newSettings[key_name] = interpolateSDValue(key_name, def_iter->second.getDefaultValue(), (*it).second, defaults, mix, slerps);
|
||||
}
|
||||
else if ((*it).second.type() == LLSD::TypeMap)
|
||||
{
|
||||
// interpolate in case there are defaults inside (part of legacy)
|
||||
newSettings[key_name] = interpolateSDValue(key_name, LLSDMap(), (*it).second, defaults, mix, slerps);
|
||||
}
|
||||
// else do nothing when no known defaults
|
||||
// TODO: Should I blend this out instead?
|
||||
}
|
||||
|
|
|
|||
|
|
@ -438,11 +438,25 @@ void LLSettingsSky::blend(const LLSettingsBase::ptr_t &end, F64 blendf)
|
|||
LLSettingsSky::ptr_t other = PTR_NAMESPACE::dynamic_pointer_cast<LLSettingsSky>(end);
|
||||
if (other)
|
||||
{
|
||||
if (!mSettings.has(SETTING_LEGACY_HAZE) && !mSettings[SETTING_LEGACY_HAZE].has(SETTING_AMBIENT))
|
||||
if (other->mSettings.has(SETTING_LEGACY_HAZE))
|
||||
{
|
||||
// Special case since SETTING_AMBIENT is both in outer and legacy maps, we prioritize legacy one
|
||||
// see getAmbientColor()
|
||||
setAmbientColor(getAmbientColor());
|
||||
if (!mSettings.has(SETTING_LEGACY_HAZE) || !mSettings[SETTING_LEGACY_HAZE].has(SETTING_AMBIENT))
|
||||
{
|
||||
// Special case since SETTING_AMBIENT is both in outer and legacy maps, we prioritize legacy one
|
||||
// see getAmbientColor(), we are about to replaceSettings(), so we are free to set it
|
||||
setAmbientColor(getAmbientColor());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mSettings.has(SETTING_LEGACY_HAZE) && mSettings[SETTING_LEGACY_HAZE].has(SETTING_AMBIENT))
|
||||
{
|
||||
// Special case due to ambient's duality
|
||||
// We need to match 'other's' structure for interpolation.
|
||||
// We are free to change mSettings, since we are about to reset it
|
||||
mSettings[SETTING_AMBIENT] = getAmbientColor().getValue();
|
||||
mSettings[SETTING_LEGACY_HAZE].erase(SETTING_AMBIENT);
|
||||
}
|
||||
}
|
||||
|
||||
LLSD blenddata = interpolateSDMap(mSettings, other->mSettings, other->getParameterMap(), blendf);
|
||||
|
|
|
|||
Loading…
Reference in New Issue