summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llfloaterenvironmentadjust.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/indra/newview/llfloaterenvironmentadjust.cpp b/indra/newview/llfloaterenvironmentadjust.cpp
index b137d71c22..58616995d3 100644
--- a/indra/newview/llfloaterenvironmentadjust.cpp
+++ b/indra/newview/llfloaterenvironmentadjust.cpp
@@ -455,26 +455,28 @@ void LLFloaterEnvironmentAdjust::onMoonAzimElevChanged()
void LLFloaterEnvironmentAdjust::onCloudMapChanged()
{
if (!mLiveSky)
+ {
return;
+ }
- // Get the texture picker control
LLTextureCtrl* picker_ctrl = getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP);
- if (!picker_ctrl)
+
+ LLUUID new_texture_id = picker_ctrl->getValue().asUUID();
+
+ LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
+
+ LLSettingsSky::ptr_t sky_to_set = mLiveSky->buildClone();
+ if (!sky_to_set)
{
- // Optional: Log an error if the control isn't found, though unlikely
- return;
+ return;
}
- // Get the new texture ID selected by the user
- LLUUID new_texture_id = picker_ctrl->getValue().asUUID();
+ sky_to_set->setCloudNoiseTextureId(new_texture_id);
- // Update the internal sky settings object
- mLiveSky->setCloudNoiseTextureId(new_texture_id);
+ LLEnvironment::instance().setEnvironment(LLEnvironment::ENV_LOCAL, sky_to_set);
- // Trigger the update for the sky rendering
- mLiveSky->update();
+ LLEnvironment::instance().updateEnvironment(LLEnvironment::TRANSITION_INSTANT, true);
- // Explicitly refresh the UI picker control to match the applied change
picker_ctrl->setValue(new_texture_id);
}