#include <llwaterparammanager.h>
Public Member Functions | |
LLWaterParamManager () | |
~LLWaterParamManager () | |
void | loadAllPresets (const LLString &fileName) |
load a preset file | |
void | loadPreset (const LLString &name) |
load an individual preset into the sky | |
void | savePreset (const LLString &name) |
save the parameter presets to file | |
void | propagateParameters (void) |
send the parameters to the shaders | |
void | update (LLViewerCamera *cam) |
update information for the shader | |
void | updateShaderUniforms (LLGLSLShader *shader) |
Update shader uniforms that have changed. | |
bool | addParamSet (const std::string &name, LLWaterParamSet ¶m) |
add a param to the list | |
BOOL | addParamSet (const std::string &name, LLSD const ¶m) |
add a param to the list | |
bool | getParamSet (const std::string &name, LLWaterParamSet ¶m) |
get a param from the list | |
bool | setParamSet (const std::string &name, LLWaterParamSet ¶m) |
set the param in the list with a new param | |
bool | setParamSet (const std::string &name, LLSD const ¶m) |
set the param in the list with a new param | |
bool | removeParamSet (const std::string &name, bool delete_from_disk) |
bool | setNormalMapID (const LLUUID &img) |
set the normap map we want for water | |
void | setDensitySliderValue (F32 val) |
LLUUID | getNormalMapID (void) |
getters for all the different things water param manager maintains | |
LLVector2 | getWave1Dir (void) |
LLVector2 | getWave2Dir (void) |
F32 | getScaleAbove (void) |
F32 | getScaleBelow (void) |
LLVector3 | getNormalScale (void) |
F32 | getFresnelScale (void) |
F32 | getFresnelOffset (void) |
F32 | getBlurMultiplier (void) |
F32 | getFogDensity (void) |
LLColor4 | getFogColor (void) |
Static Public Member Functions | |
static void | initClass (void) |
Perform global initialization for this class. | |
static void | cleanupClass () |
static LLWaterParamManager * | instance () |
Public Attributes | |
LLWaterParamSet | mCurParams |
WaterColorControl | mFogColor |
Atmospherics. | |
WaterExpFloatControl | mFogDensity |
WaterFloatControl | mUnderWaterFogMod |
WaterVector3Control | mNormalScale |
wavelet scales and directions | |
WaterVector2Control | mWave1Dir |
WaterVector2Control | mWave2Dir |
WaterFloatControl | mFresnelScale |
WaterFloatControl | mFresnelOffset |
WaterFloatControl | mScaleAbove |
WaterFloatControl | mScaleBelow |
WaterFloatControl | mBlurMultiplier |
std::map< std::string, LLWaterParamSet > | mParamList |
F32 | mDensitySliderValue |
Private Attributes | |
LLVector4 | mWaterPlane |
F32 | mWaterFogKS |
Static Private Attributes | |
static LLWaterParamManager * | sInstance = NULL |
Definition at line 220 of file llwaterparammanager.h.
LLWaterParamManager::LLWaterParamManager | ( | ) |
Definition at line 66 of file llwaterparammanager.cpp.
Referenced by instance().
LLWaterParamManager::~LLWaterParamManager | ( | ) |
Definition at line 83 of file llwaterparammanager.cpp.
void LLWaterParamManager::loadAllPresets | ( | const LLString & | fileName | ) |
load a preset file
Definition at line 87 of file llwaterparammanager.cpp.
References addParamSet(), LLSD::emptyMap(), gDirUtilp, LLDir::getExpandedFilename(), LLDir::getNextFileInDir(), LL_DEBUGS2, LL_ENDL, LL_INFOS2, LL_PATH_APP_SETTINGS, NULL, and LLSDSerialize::SIZE_UNLIMITED.
Referenced by instance().
void LLWaterParamManager::loadPreset | ( | const LLString & | name | ) |
load an individual preset into the sky
Definition at line 130 of file llwaterparammanager.cpp.
References addParamSet(), LLSD::emptyMap(), gDirUtilp, LLDir::getExpandedFilename(), getParamSet(), LL_PATH_APP_SETTINGS, llendl, llinfos, llwarns, mCurParams, mParamList, NULL, propagateParameters(), setParamSet(), and LLSDSerialize::SIZE_UNLIMITED.
Referenced by LLFloaterWater::onChangePresetName().
void LLWaterParamManager::savePreset | ( | const LLString & | name | ) |
save the parameter presets to file
Definition at line 174 of file llwaterparammanager.cpp.
References LLSD::emptyMap(), gDirUtilp, LLDir::getExpandedFilename(), LL_PATH_APP_SETTINGS, mParamList, NULL, LLSDFormatter::OPTIONS_PRETTY, and propagateParameters().
Referenced by LLFloaterWater::saveAlertCallback().
void LLWaterParamManager::propagateParameters | ( | void | ) |
send the parameters to the shaders
Definition at line 201 of file llwaterparammanager.cpp.
References LLShaderMgr::beginShaders(), LLPipeline::canUseVertexShaders(), LLShaderMgr::endShaders(), LLWaterParamSet::getFloat(), gPipeline, indra::base::lllog::log(), WaterExpFloatControl::mBase, mCurParams, mFogDensity, WaterExpFloatControl::mName, setDensitySliderValue(), LLGLSLShader::SG_WATER, and TRUE.
Referenced by loadPreset(), LLFloaterEnvSettings::onChangeWaterColor(), LLFloaterEnvSettings::onChangeWaterFogDensity(), LLFloaterWater::onColorControlAMoved(), LLFloaterWater::onColorControlBMoved(), LLFloaterWater::onColorControlGMoved(), LLFloaterWater::onColorControlIMoved(), LLFloaterWater::onColorControlRMoved(), LLFloaterWater::onExpFloatControlMoved(), LLFloaterWater::onFloatControlMoved(), LLFloaterWater::onVector2ControlXMoved(), LLFloaterWater::onVector2ControlYMoved(), LLFloaterWater::onVector3ControlXMoved(), LLFloaterWater::onVector3ControlYMoved(), LLFloaterWater::onVector3ControlZMoved(), LLFloaterWater::onWaterFogColorMoved(), savePreset(), and update().
void LLWaterParamManager::update | ( | LLViewerCamera * | cam | ) |
update information for the shader
Definition at line 240 of file llwaterparammanager.cpp.
References LLShaderMgr::beginShaders(), LLPipeline::canUseVertexShaders(), LLShaderMgr::endShaders(), LLFastTimer::FTM_UPDATE_WLPARAM, gAgent, LLSky::getMoonDirection(), LLAgent::getRegion(), LLSky::getSunDirection(), LLViewerRegion::getWaterHeight(), gGLModelView, gPipeline, gSky, i, LLFloaterWater::instance(), LLFloaterWater::isOpen(), llmax(), LLVector3::mV, mWaterFogKS, mWaterPlane, NIGHTTIME_ELEVATION_COS, LLVector3::normVec(), p, propagateParameters(), LLGLSLShader::SG_WATER, stop_glerror, LLFloaterWater::syncMenu(), TRUE, and WATER_FOG_LIGHT_CLAMP.
Referenced by display_update_camera().
void LLWaterParamManager::updateShaderUniforms | ( | LLGLSLShader * | shader | ) |
Update shader uniforms that have changed.
Definition at line 226 of file llwaterparammanager.cpp.
References getFogDensity(), LLSingleton< LLViewerCamera >::getInstance(), LLWLParamManager::instance(), LLShaderMgr::LIGHTNORM, LLGLSLShader::mShaderGroup, LLVector4::mV, mWaterFogKS, mWaterPlane, LLGLSLShader::SG_WATER, LLDrawPoolWater::sWaterFogColor, LLGLSLShader::uniform1f(), LLGLSLShader::uniform3fv(), LLGLSLShader::uniform4f(), and LLGLSLShader::uniform4fv().
Referenced by LLGLSLShader::bind().
void LLWaterParamManager::initClass | ( | void | ) | [static] |
Perform global initialization for this class.
Definition at line 304 of file llwaterparammanager.cpp.
References instance().
Referenced by idle_startup().
void LLWaterParamManager::cleanupClass | ( | void | ) | [static] |
Definition at line 310 of file llwaterparammanager.cpp.
References NULL, and sInstance.
Referenced by LLAppViewer::cleanup().
bool LLWaterParamManager::addParamSet | ( | const std::string & | name, | |
LLWaterParamSet & | param | |||
) |
add a param to the list
Definition at line 316 of file llwaterparammanager.cpp.
References mParamList.
Referenced by loadAllPresets(), and loadPreset().
add a param to the list
Definition at line 329 of file llwaterparammanager.cpp.
References FALSE, mParamList, and TRUE.
bool LLWaterParamManager::getParamSet | ( | const std::string & | name, | |
LLWaterParamSet & | param | |||
) |
get a param from the list
Definition at line 344 of file llwaterparammanager.cpp.
References LLWaterParamSet::mName, and mParamList.
Referenced by instance(), and loadPreset().
bool LLWaterParamManager::setParamSet | ( | const std::string & | name, | |
LLWaterParamSet & | param | |||
) |
set the param in the list with a new param
Definition at line 358 of file llwaterparammanager.cpp.
References mParamList.
Referenced by loadPreset(), and LLFloaterWater::saveAlertCallback().
bool LLWaterParamManager::setParamSet | ( | const std::string & | name, | |
LLSD const & | param | |||
) |
set the param in the list with a new param
Definition at line 365 of file llwaterparammanager.cpp.
References LLSD::isMap(), and mParamList.
bool LLWaterParamManager::removeParamSet | ( | const std::string & | name, | |
bool | delete_from_disk | |||
) |
gets rid of a parameter and any references to it returns true if successful
Definition at line 378 of file llwaterparammanager.cpp.
References LLDir::deleteFilesInDir(), gDirUtilp, LLDir::getExpandedFilename(), LL_PATH_APP_SETTINGS, mParamList, and NULL.
Referenced by LLFloaterWater::deleteAlertCallback().
bool LLWaterParamManager::setNormalMapID | ( | const LLUUID & | img | ) | [inline] |
set the normap map we want for water
Definition at line 339 of file llwaterparammanager.h.
References mCurParams, and LLWaterParamSet::mParamValues.
Referenced by LLFloaterWater::onNormalMapPicked().
void LLWaterParamManager::setDensitySliderValue | ( | F32 | val | ) | [inline] |
Definition at line 325 of file llwaterparammanager.h.
References mDensitySliderValue.
Referenced by LLFloaterEnvSettings::onChangeWaterFogDensity(), LLFloaterWater::onExpFloatControlMoved(), propagateParameters(), and LLFloaterWater::syncMenu().
LLUUID LLWaterParamManager::getNormalMapID | ( | void | ) | [inline] |
getters for all the different things water param manager maintains
Definition at line 334 of file llwaterparammanager.h.
References LLSD::asUUID(), mCurParams, and LLWaterParamSet::mParamValues.
Referenced by LLDrawPoolWater::shade(), and LLFloaterWater::syncMenu().
LLVector2 LLWaterParamManager::getWave1Dir | ( | void | ) | [inline] |
Definition at line 345 of file llwaterparammanager.h.
References LLWaterParamSet::getVector2(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
LLVector2 LLWaterParamManager::getWave2Dir | ( | void | ) | [inline] |
Definition at line 351 of file llwaterparammanager.h.
References LLWaterParamSet::getVector2(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
F32 LLWaterParamManager::getScaleAbove | ( | void | ) | [inline] |
Definition at line 357 of file llwaterparammanager.h.
References LLWaterParamSet::getFloat(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
F32 LLWaterParamManager::getScaleBelow | ( | void | ) | [inline] |
Definition at line 363 of file llwaterparammanager.h.
References LLWaterParamSet::getFloat(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
LLVector3 LLWaterParamManager::getNormalScale | ( | void | ) | [inline] |
Definition at line 369 of file llwaterparammanager.h.
References LLWaterParamSet::getVector3(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
F32 LLWaterParamManager::getFresnelScale | ( | void | ) | [inline] |
Definition at line 375 of file llwaterparammanager.h.
References LLWaterParamSet::getFloat(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
F32 LLWaterParamManager::getFresnelOffset | ( | void | ) | [inline] |
Definition at line 381 of file llwaterparammanager.h.
References LLWaterParamSet::getFloat(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
F32 LLWaterParamManager::getBlurMultiplier | ( | void | ) | [inline] |
Definition at line 387 of file llwaterparammanager.h.
References LLWaterParamSet::getFloat(), and mCurParams.
Referenced by LLDrawPoolWater::shade().
F32 LLWaterParamManager::getFogDensity | ( | void | ) |
Definition at line 403 of file llwaterparammanager.cpp.
References gAgent, LLAgent::getCameraPositionAgent(), LLWaterParamSet::getFloat(), LLAgent::getRegion(), LLViewerRegion::getWaterHeight(), mCurParams, and LLVector3::mV.
Referenced by LLDrawPoolWater::shade(), LLVOSky::updateFog(), and updateShaderUniforms().
LLColor4 LLWaterParamManager::getFogColor | ( | void | ) | [inline] |
Definition at line 393 of file llwaterparammanager.h.
References LLWaterParamSet::getVector4(), and mCurParams.
Referenced by LLDrawPoolWater::prerender(), and LLFloaterWater::syncMenu().
LLWaterParamManager * LLWaterParamManager::instance | ( | void | ) | [static] |
Definition at line 422 of file llwaterparammanager.cpp.
References getParamSet(), LLWaterParamManager(), loadAllPresets(), mCurParams, NULL, and sInstance.
Referenced by LLGLSLShader::bind(), LLFloaterWater::deleteAlertCallback(), display_update_camera(), LLFloaterWater::initCallbacks(), LLFloaterEnvSettings::initCallbacks(), initClass(), LLFloaterWater::LLFloaterWater(), LLFloaterWater::newPromptCallback(), LLFloaterWater::onChangePresetName(), LLFloaterEnvSettings::onChangeWaterColor(), LLFloaterEnvSettings::onChangeWaterFogDensity(), LLFloaterWater::onColorControlAMoved(), LLFloaterWater::onColorControlBMoved(), LLFloaterWater::onColorControlGMoved(), LLFloaterWater::onColorControlIMoved(), LLFloaterWater::onColorControlRMoved(), LLFloaterWater::onExpFloatControlMoved(), LLFloaterWater::onFloatControlMoved(), LLFloaterWater::onNormalMapPicked(), LLFloaterWater::onSavePreset(), LLFloaterWater::onVector2ControlXMoved(), LLFloaterWater::onVector2ControlYMoved(), LLFloaterWater::onVector3ControlXMoved(), LLFloaterWater::onVector3ControlYMoved(), LLFloaterWater::onVector3ControlZMoved(), LLFloaterWater::onWaterFogColorMoved(), LLDrawPoolWater::prerender(), LLFloaterWater::saveAlertCallback(), LLDrawPoolWater::shade(), LLFloaterWater::syncMenu(), LLFloaterEnvSettings::syncMenu(), and LLVOSky::updateFog().
Definition at line 293 of file llwaterparammanager.h.
Referenced by getBlurMultiplier(), getFogColor(), getFogDensity(), getFresnelOffset(), getFresnelScale(), getNormalMapID(), getNormalScale(), getScaleAbove(), getScaleBelow(), getWave1Dir(), getWave2Dir(), instance(), loadPreset(), LLFloaterWater::onSavePreset(), propagateParameters(), LLFloaterWater::saveAlertCallback(), setNormalMapID(), and LLFloaterWater::syncMenu().
Atmospherics.
Definition at line 296 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 297 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), propagateParameters(), and LLFloaterWater::syncMenu().
Definition at line 298 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
wavelet scales and directions
Definition at line 301 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 302 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 303 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 306 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 307 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 308 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 309 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
Definition at line 310 of file llwaterparammanager.h.
Referenced by LLFloaterWater::initCallbacks(), and LLFloaterWater::syncMenu().
std::map<std::string, LLWaterParamSet> LLWaterParamManager::mParamList |
Definition at line 313 of file llwaterparammanager.h.
Referenced by addParamSet(), getParamSet(), LLFloaterWater::LLFloaterWater(), loadPreset(), removeParamSet(), savePreset(), and setParamSet().
Definition at line 315 of file llwaterparammanager.h.
Referenced by setDensitySliderValue(), and LLDrawPoolWater::shade().
LLVector4 LLWaterParamManager::mWaterPlane [private] |
Definition at line 318 of file llwaterparammanager.h.
Referenced by update(), and updateShaderUniforms().
F32 LLWaterParamManager::mWaterFogKS [private] |
Definition at line 319 of file llwaterparammanager.h.
Referenced by update(), and updateShaderUniforms().
LLWaterParamManager * LLWaterParamManager::sInstance = NULL [static, private] |