summaryrefslogtreecommitdiff
path: root/indra/newview/llwaterparammanager.cpp
diff options
context:
space:
mode:
authorVadim ProductEngine <vsavchuk@productengine.com>2011-06-10 18:21:32 +0300
committerVadim ProductEngine <vsavchuk@productengine.com>2011-06-10 18:21:32 +0300
commit0d1cc56eb128755ce9e63d8cdf852b0e3b6f4fb1 (patch)
tree29824e7840afc6a6730083d1885c4172cb9b5ee0 /indra/newview/llwaterparammanager.cpp
parenta7603c84879e7a2d0f72d64e5988aae332d463c1 (diff)
STORM-1279 FIXED Changing sky preset with a keyboard shortcut now updates the Environment Settings floater.
Changes: * Subscribed the floater to the "settings changed" signal of the environment manager. * Rewrote the floater to not modify settings only when the Save button is pressed. * Refactoring to eliminate code duplication.
Diffstat (limited to 'indra/newview/llwaterparammanager.cpp')
-rw-r--r--indra/newview/llwaterparammanager.cpp57
1 files changed, 8 insertions, 49 deletions
diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp
index d84ccb0ada..aab621738c 100644
--- a/indra/newview/llwaterparammanager.cpp
+++ b/indra/newview/llwaterparammanager.cpp
@@ -198,67 +198,26 @@ void LLWaterParamManager::updateShaderUniforms(LLGLSLShader * shader)
}
}
-static LLFastTimer::DeclareTimer FTM_UPDATE_WATERPARAM("Update Water Params");
-
-void LLWaterParamManager::applyUserPrefs(bool interpolate)
+void LLWaterParamManager::applyParams(const LLSD& params, bool interpolate)
{
- LLSD target_water_params;
-
- // Determine new water settings based on user prefs.
-
- {
- // Fall back to default water.
- LLWaterParamSet default_water;
- getParamSet("Default", default_water);
- target_water_params = default_water.getAll();
- }
-
- if (LLEnvManagerNew::instance().getUseRegionSettings())
- {
- // *TODO: make sure whether region settings belong to the current region?
- const LLSD& region_water_params = LLEnvManagerNew::instance().getRegionSettings().getWaterParams();
- if (region_water_params.size() != 0) // region has no water settings
- {
- LL_DEBUGS("Windlight") << "Applying region water" << LL_ENDL;
- target_water_params = region_water_params;
- }
- else
- {
- LL_DEBUGS("Windlight") << "Applying default water" << LL_ENDL;
- }
- }
- else
+ if (params.size() == 0)
{
- std::string water = LLEnvManagerNew::instance().getWaterPresetName();
- LL_DEBUGS("Windlight") << "Applying water preset [" << water << "]" << LL_ENDL;
- LLWaterParamSet params;
- if (!getParamSet(water, params))
- {
- llwarns << "No wayer preset named " << water << ", falling back to defaults" << llendl;
- getParamSet("Default", params);
-
- // *TODO: Fix user preferences accordingly.
- }
- target_water_params = params.getAll();
- }
-
- // Apply them with or without interpolation.
- if (target_water_params.size() == 0)
- {
- llwarns << "Undefined target water params" << llendl;
+ llwarns << "Undefined water params" << llendl;
return;
}
if (interpolate)
{
- LLWLParamManager::getInstance()->mAnimator.startInterpolation(target_water_params);
+ LLWLParamManager::getInstance()->mAnimator.startInterpolation(params);
}
else
{
- LLWaterParamManager::getInstance()->mCurParams.setAll(target_water_params);
+ mCurParams.setAll(params);
}
}
+static LLFastTimer::DeclareTimer FTM_UPDATE_WATERPARAM("Update Water Params");
+
void LLWaterParamManager::update(LLViewerCamera * cam)
{
LLFastTimer ftm(FTM_UPDATE_WATERPARAM);
@@ -442,7 +401,7 @@ void LLWaterParamManager::initSingleton()
{
LL_DEBUGS("Windlight") << "Initializing water" << LL_ENDL;
loadAllPresets();
- applyUserPrefs(false);
+ LLEnvManagerNew::instance().usePrefs();
}
// static