diff options
author | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-06-10 18:21:32 +0300 |
---|---|---|
committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-06-10 18:21:32 +0300 |
commit | 0d1cc56eb128755ce9e63d8cdf852b0e3b6f4fb1 (patch) | |
tree | 29824e7840afc6a6730083d1885c4172cb9b5ee0 /indra/newview/llwaterparammanager.cpp | |
parent | a7603c84879e7a2d0f72d64e5988aae332d463c1 (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.cpp | 57 |
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 |