Windlight/water parameter managers now derived from standard LLSingleton instead of using some silly redundant clone.

This commit is contained in:
Shyotl
2011-09-02 06:35:53 -05:00
parent 91cb401324
commit 443d4e9f56
31 changed files with 418 additions and 390 deletions

View File

@@ -1387,8 +1387,6 @@ bool LLAppViewer::cleanup()
LLViewerObject::cleanupVOClasses();
LLWaterParamManager::cleanupClass();
LLWLParamManager::cleanupClass();
LLPostProcess::cleanupClass();
LLTracker::cleanupInstance();

View File

@@ -114,7 +114,7 @@ void LLDrawPoolWater::prerender()
// got rid of modulation by light color since it got a little too
// green at sunset and sl-57047 (underwater turns black at 8:00)
sWaterFogColor = LLWaterParamManager::instance()->getFogColor();
sWaterFogColor = LLWaterParamManager::getInstance()->getFogColor();
sWaterFogColor.mV[3] = 0;
}
@@ -532,7 +532,7 @@ void LLDrawPoolWater::shade()
//bind normal map
S32 bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP);
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
// change mWaterNormp if needed
if (mWaterNormp->getID() != param_mgr->getNormalMapID())

View File

@@ -87,7 +87,7 @@ LLDrawPoolWLSky::LLDrawPoolWLSky(void) :
}
}
LLWLParamManager::instance()->propagateParameters();
LLWLParamManager::getInstance()->propagateParameters();
}
LLDrawPoolWLSky::~LLDrawPoolWLSky()
@@ -202,7 +202,7 @@ void LLDrawPoolWLSky::renderStars(void) const
// clamping and allow the star_alpha param to brighten the stars.
bool error;
LLColor4 star_alpha(LLColor4::black);
star_alpha.mV[3] = LLWLParamManager::instance()->mCurParams.getFloat("star_brightness", error) / 2.f;
star_alpha.mV[3] = LLWLParamManager::getInstance()->mCurParams.getFloat("star_brightness", error) / 2.f;
llassert_always(!error);
// gl_FragColor.rgb = gl_Color.rgb;
@@ -316,7 +316,7 @@ void LLDrawPoolWLSky::renderDeferred(S32 pass)
}
LLFastTimer ftm(LLFastTimer::FTM_RENDER_WL_SKY);
const F32 camHeightLocal = LLWLParamManager::instance()->getDomeOffset() * LLWLParamManager::instance()->getDomeRadius();
const F32 camHeightLocal = LLWLParamManager::getInstance()->getDomeOffset() * LLWLParamManager::getInstance()->getDomeRadius();
LLGLSNoFog disableFog;
LLGLDepthTest depth(GL_TRUE, GL_FALSE);
@@ -363,7 +363,7 @@ void LLDrawPoolWLSky::render(S32 pass)
}
LLFastTimer ftm(LLFastTimer::FTM_RENDER_WL_SKY);
const F32 camHeightLocal = LLWLParamManager::instance()->getDomeOffset() * LLWLParamManager::instance()->getDomeRadius();
const F32 camHeightLocal = LLWLParamManager::getInstance()->getDomeOffset() * LLWLParamManager::getInstance()->getDomeRadius();
LLGLSNoFog disableFog;
LLGLDepthTest depth(GL_TRUE, GL_FALSE);

View File

@@ -160,7 +160,7 @@ BOOL LLDriverParam::parseData(LLXmlTreeNode* node)
}
#endif
void LLDriverParam::setWeight(F32 weight, BOOL set_by_user)
void LLDriverParam::setWeight(F32 weight, BOOL upload_bake)
{
F32 min_weight = getMinWeight();
F32 max_weight = getMaxWeight();
@@ -219,7 +219,7 @@ void LLDriverParam::setWeight(F32 weight, BOOL set_by_user)
driven_weight = driven_min;
}
driven->mParam->setWeight( driven_weight, set_by_user );
setDrivenWeight(driven,driven_weight,upload_bake);
continue;
}
else
@@ -243,13 +243,13 @@ void LLDriverParam::setWeight(F32 weight, BOOL set_by_user)
driven_weight = driven_min;
}
driven->mParam->setWeight( driven_weight, set_by_user );
setDrivenWeight(driven,driven_weight,upload_bake);
continue;
}
}
driven_weight = getDrivenWeight(driven, mCurWeight);
driven->mParam->setWeight( driven_weight, set_by_user );
setDrivenWeight(driven,driven_weight,upload_bake);
}
}
@@ -379,9 +379,9 @@ const LLVector3* LLDriverParam::getNextDistortion(U32 *index, LLPolyMesh **poly_
//-----------------------------------------------------------------------------
// setAnimationTarget()
//-----------------------------------------------------------------------------
void LLDriverParam::setAnimationTarget( F32 target_value, BOOL set_by_user )
void LLDriverParam::setAnimationTarget( F32 target_value, BOOL upload_bake )
{
LLVisualParam::setAnimationTarget(target_value, set_by_user);
LLVisualParam::setAnimationTarget(target_value, upload_bake);
for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
{
@@ -390,16 +390,16 @@ void LLDriverParam::setAnimationTarget( F32 target_value, BOOL set_by_user )
// this isn't normally necessary, as driver params handle interpolation of their driven params
// but texture params need to know to assume their final value at beginning of interpolation
driven->mParam->setAnimationTarget(driven_weight, set_by_user);
driven->mParam->setAnimationTarget(driven_weight, upload_bake);
}
}
//-----------------------------------------------------------------------------
// stopAnimating()
//-----------------------------------------------------------------------------
void LLDriverParam::stopAnimating(BOOL set_by_user)
void LLDriverParam::stopAnimating(BOOL upload_bake)
{
LLVisualParam::stopAnimating(set_by_user);
LLVisualParam::stopAnimating(upload_bake);
for( entry_list_t::iterator iter = mDriven.begin(); iter != mDriven.end(); iter++ )
{
@@ -464,3 +464,19 @@ F32 LLDriverParam::getDrivenWeight(const LLDrivenEntry* driven, F32 input_weight
return driven_weight;
}
void LLDriverParam::setDrivenWeight(LLDrivenEntry *driven, F32 driven_weight, bool upload_bake)
{
/*if(isAgentAvatarValid() &&
mWearablep &&
driven->mParam->getCrossWearable() &&
mWearablep->isOnTop())
{
// call setWeight through LLVOAvatarSelf so other wearables can be updated with the correct values
gAgentAvatarp->setVisualParamWeight( (LLVisualParam*)driven->mParam, driven_weight, upload_bake );
}
else*/
{
driven->mParam->setWeight( driven_weight, upload_bake );
}
}

View File

@@ -92,9 +92,9 @@ public:
// LLVisualParam Virtual functions
///*virtual*/ BOOL parseData(LLXmlTreeNode* node);
/*virtual*/ void apply( ESex sex ) {} // apply is called separately for each driven param.
/*virtual*/ void setWeight(F32 weight, BOOL set_by_user);
/*virtual*/ void setAnimationTarget( F32 target_value, BOOL set_by_user );
/*virtual*/ void stopAnimating(BOOL set_by_user);
/*virtual*/ void setWeight(F32 weight, BOOL upload_bake);
/*virtual*/ void setAnimationTarget( F32 target_value, BOOL upload_bake );
/*virtual*/ void stopAnimating(BOOL upload_bake);
// LLViewerVisualParam Virtual functions
/*virtual*/ F32 getTotalDistortion();
@@ -103,8 +103,10 @@ public:
/*virtual*/ LLVector3 getVertexDistortion(S32 index, LLPolyMesh *poly_mesh);
/*virtual*/ const LLVector3* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh);
/*virtual*/ const LLVector3* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh);
protected:
F32 getDrivenWeight(const LLDrivenEntry* driven, F32 input_weight);
void setDrivenWeight(LLDrivenEntry *driven, F32 driven_weight, bool upload_bake);
LLVector3 mDefaultVec; // temp holder

View File

@@ -77,9 +77,9 @@ LLFloaterDayCycle::LLFloaterDayCycle() : LLFloater(std::string("Day Cycle Floate
if(keyCombo != NULL)
{
std::map<std::string, LLWLParamSet>::iterator mIt =
LLWLParamManager::instance()->mParamList.begin();
for(; mIt != LLWLParamManager::instance()->mParamList.end(); mIt++)
std::map<std::string, LLWLParamSet>::const_iterator mIt =
LLWLParamManager::getInstance()->getPresets().begin();
for(; mIt != LLWLParamManager::getInstance()->getPresets().end(); mIt++)
{
keyCombo->add(std::string(mIt->first));
}
@@ -181,11 +181,11 @@ void LLFloaterDayCycle::initCallbacks(void)
void LLFloaterDayCycle::syncMenu()
{
// std::map<std::string, LLVector4> & currentParams = LLWLParamManager::instance()->mCurParams.mParamValues;
// std::map<std::string, LLVector4> & currentParams = LLWLParamManager::getInstance()->mCurParams.mParamValues;
// set time
LLMultiSliderCtrl* sldr = LLFloaterDayCycle::sDayCycle->getChild<LLMultiSliderCtrl>("WLTimeSlider");
sldr->setCurSliderValue((F32)LLWLParamManager::instance()->mAnimator.getDayTime() * sHoursPerDay);
sldr->setCurSliderValue((F32)LLWLParamManager::getInstance()->mAnimator.getDayTime() * sHoursPerDay);
LLSpinCtrl* secSpin = sDayCycle->getChild<LLSpinCtrl>("WLLengthOfDaySec");
LLSpinCtrl* minSpin = sDayCycle->getChild<LLSpinCtrl>("WLLengthOfDayMin");
@@ -195,7 +195,7 @@ void LLFloaterDayCycle::syncMenu()
F32 hours, min, sec;
// get the current rate
curRate = LLWLParamManager::instance()->mDay.mDayRate;
curRate = LLWLParamManager::getInstance()->mDay.mDayRate;
hours = (F32)((int)(curRate / 60 / 60));
curRate -= (hours * 60 * 60);
min = (F32)((int)(curRate / 60));
@@ -207,7 +207,7 @@ void LLFloaterDayCycle::syncMenu()
secSpin->setValue(sec);
// turn off Use Estate Time button if it's already being used
if( LLWLParamManager::instance()->mAnimator.mUseLindenTime == true)
if( LLWLParamManager::getInstance()->mAnimator.mUseLindenTime == true)
{
LLFloaterDayCycle::sDayCycle->childDisable("WLUseLindenTime");
}
@@ -227,8 +227,8 @@ void LLFloaterDayCycle::syncSliderTrack()
// add sliders
std::map<F32, std::string>::iterator mIt =
LLWLParamManager::instance()->mDay.mTimeMap.begin();
for(; mIt != LLWLParamManager::instance()->mDay.mTimeMap.end(); mIt++)
LLWLParamManager::getInstance()->mDay.mTimeMap.begin();
for(; mIt != LLWLParamManager::getInstance()->mDay.mTimeMap.end(); mIt++)
{
addSliderKey(mIt->first * sHoursPerDay, mIt->second);
}
@@ -252,22 +252,22 @@ void LLFloaterDayCycle::syncTrack()
"WLTimeSlider");
// create a new animation track
LLWLParamManager::instance()->mDay.clearKeys();
LLWLParamManager::getInstance()->mDay.clearKeys();
// add the keys one by one
std::map<std::string, LLWLSkyKey>::iterator mIt = sSliderToKey.begin();
for(; mIt != sSliderToKey.end(); mIt++)
{
LLWLParamManager::instance()->mDay.addKey(mIt->second.time / sHoursPerDay,
LLWLParamManager::getInstance()->mDay.addKey(mIt->second.time / sHoursPerDay,
mIt->second.presetName);
}
// set the param manager's track to the new one
LLWLParamManager::instance()->resetAnimator(
LLWLParamManager::getInstance()->resetAnimator(
tSldr->getCurSliderValue() / sHoursPerDay, false);
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
// static
@@ -339,7 +339,7 @@ void LLFloaterDayCycle::onSavePreset(void* userData)
return;
}
LLWLParamManager::instance()->mCurParams.mName =
LLWLParamManager::getInstance()->mCurParams.mName =
comboBox->getSelectedItemLabel();
LLNotifications::instance().add("WLSavePresetAlert", LLSD(), LLSD(), saveAlertCallback);
@@ -353,7 +353,7 @@ bool LLFloaterDayCycle::saveAlertCallback(const LLSD& notification, const LLSD&
{
LLComboBox* combo_box = sDayCycle->getChild<LLComboBox>("DayCyclePresetsCombo");
// comment this back in to save to file
LLWLParamManager::instance()->mDay.saveDayCycle(combo_box->getSelectedValue().asString());
LLWLParamManager::getInstance()->mDay.saveDayCycle(combo_box->getSelectedValue().asString());
}
return false;
}
@@ -483,7 +483,7 @@ bool LLFloaterDayCycle::newPromptCallback(const LLSD& notification, const LLSD&
keyCombo->add(text);
keyCombo->sortByName();
}
LLWLParamManager::instance()->mDay.saveDayCycle(text);
LLWLParamManager::getInstance()->mDay.saveDayCycle(text);
// otherwise, send a message to the user
}
@@ -505,7 +505,7 @@ void LLFloaterDayCycle::onChangePresetName(LLUICtrl* ctrl, void * userData)
return;
}
LLWLParamManager::instance()->mDay.loadDayCycle(combo_box->getSelectedValue().asString());
LLWLParamManager::getInstance()->mDay.loadDayCycle(combo_box->getSelectedValue().asString());
gSavedSettings.setString("AscentActiveDayCycle", combo_box->getSelectedValue().asString());
// sync it all up
syncSliderTrack();
@@ -515,12 +515,12 @@ void LLFloaterDayCycle::onChangePresetName(LLUICtrl* ctrl, void * userData)
LLMultiSliderCtrl* tSldr;
tSldr = sDayCycle->getChild<LLMultiSliderCtrl>(
"WLTimeSlider");
LLWLParamManager::instance()->resetAnimator(
LLWLParamManager::getInstance()->resetAnimator(
tSldr->getCurSliderValue() / sHoursPerDay, false);
// and draw it
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
void LLFloaterDayCycle::onRunAnimSky(void* userData)
@@ -539,13 +539,13 @@ void LLFloaterDayCycle::onRunAnimSky(void* userData)
tSldr = sDayCycle->getChild<LLMultiSliderCtrl>("WLTimeSlider");
// turn off linden time
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
// set the param manager's track to the new one
LLWLParamManager::instance()->resetAnimator(
LLWLParamManager::getInstance()->resetAnimator(
tSldr->getCurSliderValue() / sHoursPerDay, true);
llassert_always(LLWLParamManager::instance()->mAnimator.mTimeTrack.size() == sldr->getValue().size());
llassert_always(LLWLParamManager::getInstance()->mAnimator.mTimeTrack.size() == sldr->getValue().size());
}
void LLFloaterDayCycle::onStopAnimSky(void* userData)
@@ -556,8 +556,8 @@ void LLFloaterDayCycle::onStopAnimSky(void* userData)
}
// turn off animation and using linden time
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
}
void LLFloaterDayCycle::onUseLindenTime(void* userData)
@@ -566,13 +566,13 @@ void LLFloaterDayCycle::onUseLindenTime(void* userData)
LLComboBox* box = dc->getChild<LLComboBox>("DayCyclePresetsCombo");
box->selectByValue("");
LLWLParamManager::instance()->mAnimator.mIsRunning = true;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = true;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = true;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = true;
}
void LLFloaterDayCycle::onLoadDayCycle(void* userData)
{
//LLWLParamManager::instance()->mDay.loadDayCycle("Default.xml");
//LLWLParamManager::getInstance()->mDay.loadDayCycle("Default.xml");
// sync it all up
syncSliderTrack();
@@ -582,17 +582,17 @@ void LLFloaterDayCycle::onLoadDayCycle(void* userData)
LLMultiSliderCtrl* tSldr;
tSldr = sDayCycle->getChild<LLMultiSliderCtrl>(
"WLTimeSlider");
LLWLParamManager::instance()->resetAnimator(
LLWLParamManager::getInstance()->resetAnimator(
tSldr->getCurSliderValue() / sHoursPerDay, false);
// and draw it
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
void LLFloaterDayCycle::onSaveDayCycle(void* userData)
{
//LLWLParamManager::instance()->mDay.saveDayCycle("Default.xml");
//LLWLParamManager::getInstance()->mDay.saveDayCycle("Default.xml");
}
@@ -605,13 +605,13 @@ void LLFloaterDayCycle::onTimeSliderMoved(LLUICtrl* ctrl, void* userData)
F32 val = sldr->getCurSliderValue() / sHoursPerDay;
// set the value, turn off animation
LLWLParamManager::instance()->mAnimator.setDayTime((F64)val);
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.setDayTime((F64)val);
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
// then call update once
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
void LLFloaterDayCycle::onKeyTimeMoved(LLUICtrl* ctrl, void* userData)
@@ -736,7 +736,7 @@ void LLFloaterDayCycle::onTimeRateChanged(LLUICtrl* ctrl, void* userData)
if(time <= 0) {
time = 1;
}
LLWLParamManager::instance()->mDay.mDayRate = time;
LLWLParamManager::getInstance()->mDay.mDayRate = time;
syncTrack();
}

View File

@@ -79,11 +79,11 @@ void LLFloaterEnvSettings::initCallbacks(void)
childSetCommitCallback("EnvTimeSlider", onChangeDayTime, NULL);
childSetCommitCallback("EnvCloudSlider", onChangeCloudCoverage, NULL);
childSetCommitCallback("EnvWaterFogSlider", onChangeWaterFogDensity,
&LLWaterParamManager::instance()->mFogDensity);
&LLWaterParamManager::getInstance()->mFogDensity);
// color picker
childSetCommitCallback("EnvWaterColor", onChangeWaterColor,
&LLWaterParamManager::instance()->mFogColor);
&LLWaterParamManager::getInstance()->mFogColor);
// WL Top
childSetAction("EnvAdvancedSkyButton", onOpenAdvancedSky, NULL);
@@ -102,7 +102,7 @@ void LLFloaterEnvSettings::syncMenu()
sldr = sEnvSettings->getChild<LLSliderCtrl>("EnvTimeSlider");
// sync the clock
F32 val = (F32)LLWLParamManager::instance()->mAnimator.getDayTime();
F32 val = (F32)LLWLParamManager::getInstance()->mAnimator.getDayTime();
std::string timeStr = timeToString(val);
LLTextBox* textBox;
@@ -120,9 +120,9 @@ void LLFloaterEnvSettings::syncMenu()
// sync cloud coverage
bool err;
childSetValue("EnvCloudSlider", LLWLParamManager::instance()->mCurParams.getFloat("cloud_shadow", err));
childSetValue("EnvCloudSlider", LLWLParamManager::getInstance()->mCurParams.getFloat("cloud_shadow", err));
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
// sync water params
LLColor4 col = param_mgr->getFogColor();
LLColorSwatchCtrl* colCtrl = sEnvSettings->getChild<LLColorSwatchCtrl>("EnvWaterColor");
@@ -133,7 +133,7 @@ void LLFloaterEnvSettings::syncMenu()
param_mgr->setDensitySliderValue(param_mgr->mFogDensity.mExp);
// turn off Use Estate Time button if it's already being used
if(LLWLParamManager::instance()->mAnimator.mUseLindenTime)
if(LLWLParamManager::getInstance()->mAnimator.mUseLindenTime)
{
childDisable("EnvUseEstateTimeButton");
} else {
@@ -218,8 +218,8 @@ void LLFloaterEnvSettings::onChangeDayTime(LLUICtrl* ctrl, void* userData)
sldr = sEnvSettings->getChild<LLSliderCtrl>("EnvTimeSlider");
// deactivate animator
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
F32 val = sldr->getValueF32() + 0.25f;
if(val > 1.0)
@@ -227,9 +227,9 @@ void LLFloaterEnvSettings::onChangeDayTime(LLUICtrl* ctrl, void* userData)
val--;
}
LLWLParamManager::instance()->mAnimator.setDayTime((F64)val);
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.setDayTime((F64)val);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
void LLFloaterEnvSettings::onChangeCloudCoverage(LLUICtrl* ctrl, void* userData)
@@ -238,11 +238,11 @@ void LLFloaterEnvSettings::onChangeCloudCoverage(LLUICtrl* ctrl, void* userData)
sldr = sEnvSettings->getChild<LLSliderCtrl>("EnvCloudSlider");
// deactivate animator
//LLWLParamManager::instance()->mAnimator.mIsRunning = false;
//LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
//LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
//LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
F32 val = sldr->getValueF32();
LLWLParamManager::instance()->mCurParams.set("cloud_shadow", val);
LLWLParamManager::getInstance()->mCurParams.set("cloud_shadow", val);
}
void LLFloaterEnvSettings::onChangeWaterFogDensity(LLUICtrl* ctrl, void* userData)
@@ -259,10 +259,10 @@ void LLFloaterEnvSettings::onChangeWaterFogDensity(LLUICtrl* ctrl, void* userDat
F32 val = sldr->getValueF32();
expFloatControl->mExp = val;
LLWaterParamManager::instance()->setDensitySliderValue(val);
LLWaterParamManager::getInstance()->setDensitySliderValue(val);
expFloatControl->update(LLWaterParamManager::instance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
expFloatControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterEnvSettings::onChangeWaterColor(LLUICtrl* ctrl, void* userData)
@@ -271,8 +271,8 @@ void LLFloaterEnvSettings::onChangeWaterColor(LLUICtrl* ctrl, void* userData)
WaterColorControl * colorControl = static_cast<WaterColorControl *>(userData);
*colorControl = swatch->get();
colorControl->update(LLWaterParamManager::instance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::getInstance()->propagateParameters();
}
@@ -290,7 +290,7 @@ void LLFloaterEnvSettings::onSubmitWindlight(void* userData)
{
Meta7WindlightPacket * wl = new Meta7WindlightPacket();
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
wl->reflectionWaveletScale.X = param_mgr->mNormalScale.mX;
wl->reflectionWaveletScale.Y = param_mgr->mNormalScale.mY;
wl->reflectionWaveletScale.Z = param_mgr->mNormalScale.mZ;
@@ -311,8 +311,8 @@ void LLFloaterEnvSettings::onUseEstateTime(void* userData)
box->selectByValue("");
}
LLWLParamManager::instance()->mAnimator.mIsRunning = true;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = true;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = true;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = true;
}
std::string LLFloaterEnvSettings::timeToString(F32 curTime)

View File

@@ -74,9 +74,9 @@ LLFloaterWater::LLFloaterWater() : LLFloater(std::string("water floater"))
if(comboBox != NULL) {
std::map<std::string, LLWaterParamSet>::iterator mIt =
LLWaterParamManager::instance()->mParamList.begin();
for(; mIt != LLWaterParamManager::instance()->mParamList.end(); mIt++)
std::map<std::string, LLWaterParamSet>::const_iterator mIt =
LLWaterParamManager::getInstance()->getPresets().begin();
for(; mIt != LLWaterParamManager::getInstance()->getPresets().end(); mIt++)
{
comboBox->add(mIt->first);
}
@@ -123,7 +123,7 @@ void LLFloaterWater::initCallbacks(void) {
initHelpBtn("WaterWave1Help", "HelpWaterWave1");
initHelpBtn("WaterWave2Help", "HelpWaterWave2");
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
childSetCommitCallback("WaterFogColor", onWaterFogColorMoved, &param_mgr->mFogColor);
@@ -197,15 +197,15 @@ bool LLFloaterWater::newPromptCallback(const LLSD& notification, const LLSD& res
if(option == 0) {
LLComboBox* comboBox = sWaterMenu->getChild<LLComboBox>( "WaterPresetsCombo");
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
// add the current parameters to the list
// see if it's there first
std::map<std::string, LLWaterParamSet>::iterator mIt =
param_mgr->mParamList.find(text);
std::map<std::string, LLWaterParamSet>::const_iterator mIt =
param_mgr->getPresets().find(text);
// if not there, add a new one
if(mIt == param_mgr->mParamList.end())
if(mIt == param_mgr->getPresets().end())
{
param_mgr->addParamSet(text, param_mgr->mCurParams);
comboBox->add(text);
@@ -229,7 +229,7 @@ void LLFloaterWater::syncMenu()
{
bool err;
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
LLWaterParamSet & current_params = param_mgr->mCurParams;
@@ -337,9 +337,9 @@ void LLFloaterWater::onVector3ControlXMoved(LLUICtrl* ctrl, void* userData)
vectorControl->mX = sldrCtrl->getValueF32();
vectorControl->update(LLWaterParamManager::instance()->mCurParams);
vectorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
// vector control callbacks
@@ -350,9 +350,9 @@ void LLFloaterWater::onVector3ControlYMoved(LLUICtrl* ctrl, void* userData)
vectorControl->mY = sldrCtrl->getValueF32();
vectorControl->update(LLWaterParamManager::instance()->mCurParams);
vectorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
// vector control callbacks
@@ -363,9 +363,9 @@ void LLFloaterWater::onVector3ControlZMoved(LLUICtrl* ctrl, void* userData)
vectorControl->mZ = sldrCtrl->getValueF32();
vectorControl->update(LLWaterParamManager::instance()->mCurParams);
vectorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
@@ -377,9 +377,9 @@ void LLFloaterWater::onVector2ControlXMoved(LLUICtrl* ctrl, void* userData)
vectorControl->mX = sldrCtrl->getValueF32();
vectorControl->update(LLWaterParamManager::instance()->mCurParams);
vectorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
// vector control callbacks
@@ -390,9 +390,9 @@ void LLFloaterWater::onVector2ControlYMoved(LLUICtrl* ctrl, void* userData)
vectorControl->mY = sldrCtrl->getValueF32();
vectorControl->update(LLWaterParamManager::instance()->mCurParams);
vectorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
// color control callbacks
@@ -415,9 +415,9 @@ void LLFloaterWater::onColorControlRMoved(LLUICtrl* ctrl, void* userData)
sWaterMenu->childSetValue(name, colorControl->mR);
}
colorControl->update(LLWaterParamManager::instance()->mCurParams);
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onColorControlGMoved(LLUICtrl* ctrl, void* userData)
@@ -440,9 +440,9 @@ void LLFloaterWater::onColorControlGMoved(LLUICtrl* ctrl, void* userData)
}
colorControl->update(LLWaterParamManager::instance()->mCurParams);
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onColorControlBMoved(LLUICtrl* ctrl, void* userData)
@@ -464,9 +464,9 @@ void LLFloaterWater::onColorControlBMoved(LLUICtrl* ctrl, void* userData)
sWaterMenu->childSetValue(name, colorControl->mB);
}
colorControl->update(LLWaterParamManager::instance()->mCurParams);
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onColorControlAMoved(LLUICtrl* ctrl, void* userData)
@@ -476,9 +476,9 @@ void LLFloaterWater::onColorControlAMoved(LLUICtrl* ctrl, void* userData)
colorControl->mA = sldrCtrl->getValueF32();
colorControl->update(LLWaterParamManager::instance()->mCurParams);
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::getInstance()->propagateParameters();
}
@@ -538,8 +538,8 @@ void LLFloaterWater::onColorControlIMoved(LLUICtrl* ctrl, void* userData)
}
// now update the current parameters and send them to shaders
colorControl->update(LLWaterParamManager::instance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onExpFloatControlMoved(LLUICtrl* ctrl, void* userData)
@@ -549,10 +549,10 @@ void LLFloaterWater::onExpFloatControlMoved(LLUICtrl* ctrl, void* userData)
F32 val = sldrCtrl->getValueF32();
expFloatControl->mExp = val;
LLWaterParamManager::instance()->setDensitySliderValue(val);
LLWaterParamManager::getInstance()->setDensitySliderValue(val);
expFloatControl->update(LLWaterParamManager::instance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
expFloatControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onFloatControlMoved(LLUICtrl* ctrl, void* userData)
@@ -562,8 +562,8 @@ void LLFloaterWater::onFloatControlMoved(LLUICtrl* ctrl, void* userData)
floatControl->mX = sldrCtrl->getValueF32() / floatControl->mMult;
floatControl->update(LLWaterParamManager::instance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
floatControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onWaterFogColorMoved(LLUICtrl* ctrl, void* userData)
{
@@ -571,8 +571,8 @@ void LLFloaterWater::onWaterFogColorMoved(LLUICtrl* ctrl, void* userData)
WaterColorControl * colorControl = static_cast<WaterColorControl *>(userData);
*colorControl = swatch->get();
colorControl->update(LLWaterParamManager::instance()->mCurParams);
LLWaterParamManager::instance()->propagateParameters();
colorControl->update(LLWaterParamManager::getInstance()->mCurParams);
LLWaterParamManager::getInstance()->propagateParameters();
}
void LLFloaterWater::onBoolToggle(LLUICtrl* ctrl, void* userData)
@@ -587,7 +587,7 @@ void LLFloaterWater::onNormalMapPicked(LLUICtrl* ctrl, void* userData)
{
LLTextureCtrl* textCtrl = static_cast<LLTextureCtrl*>(ctrl);
LLUUID textID = textCtrl->getImageAssetID();
LLWaterParamManager::instance()->setNormalMapID(textID);
LLWaterParamManager::getInstance()->setNormalMapID(textID);
}
void LLFloaterWater::onNewPreset(void* userData)
@@ -606,7 +606,7 @@ void LLFloaterWater::onSavePreset(void* userData)
return;
}
LLWaterParamManager::instance()->mCurParams.mName =
LLWaterParamManager::getInstance()->mCurParams.mName =
comboBox->getSelectedItemLabel();
// check to see if it's a default and shouldn't be overwritten
@@ -627,7 +627,7 @@ bool LLFloaterWater::saveAlertCallback(const LLSD& notification, const LLSD& res
// if they choose save, do it. Otherwise, don't do anything
if(option == 0)
{
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
param_mgr->setParamSet(
param_mgr->mCurParams.mName,
@@ -681,7 +681,7 @@ bool LLFloaterWater::deleteAlertCallback(const LLSD& notification, const LLSD& r
return false;
}
LLWaterParamManager::instance()->removeParamSet(name, true);
LLWaterParamManager::getInstance()->removeParamSet(name, true);
// remove and choose another
S32 new_index = combo_box->getCurrentIndex();
@@ -720,7 +720,7 @@ void LLFloaterWater::onChangePresetName(LLUICtrl* ctrl, void * userData)
return;
}
LLWaterParamManager::instance()->loadPreset(
LLWaterParamManager::getInstance()->loadPreset(
combo_box->getSelectedValue().asString());
sWaterMenu->syncMenu();
}

View File

@@ -75,9 +75,9 @@ LLFloaterWindLight::LLFloaterWindLight() : LLFloater(std::string("windlight floa
if(comboBox != NULL) {
std::map<std::string, LLWLParamSet>::iterator mIt =
LLWLParamManager::instance()->mParamList.begin();
for(; mIt != LLWLParamManager::instance()->mParamList.end(); mIt++)
std::map<std::string, LLWLParamSet>::const_iterator mIt =
LLWLParamManager::getInstance()->getPresets().begin();
for(; mIt != LLWLParamManager::getInstance()->getPresets().end(); mIt++)
{
comboBox->add(mIt->first);
}
@@ -141,7 +141,7 @@ void LLFloaterWindLight::initCallbacks(void) {
initHelpBtn("WLClassicCloudsHelp", "HelpClassicClouds");
LLWLParamManager * param_mgr = LLWLParamManager::instance();
LLWLParamManager * param_mgr = LLWLParamManager::getInstance();
// blue horizon
childSetCommitCallback("WLBlueHorizonR", onColorControlRMoved, &param_mgr->mBlueHorizon);
@@ -267,14 +267,14 @@ bool LLFloaterWindLight::newPromptCallback(const LLSD& notification, const LLSD&
// add the current parameters to the list
// see if it's there first
std::map<std::string, LLWLParamSet>::iterator mIt =
LLWLParamManager::instance()->mParamList.find(text);
std::map<std::string, LLWLParamSet>::const_iterator mIt =
LLWLParamManager::getInstance()->getPresets().find(text);
// if not there, add a new one
if(mIt == LLWLParamManager::instance()->mParamList.end())
if(mIt == LLWLParamManager::getInstance()->getPresets().end())
{
LLWLParamManager::instance()->addParamSet(text,
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->addParamSet(text,
LLWLParamManager::getInstance()->mCurParams);
comboBox->add(text);
comboBox->sortByName();
@@ -292,7 +292,7 @@ bool LLFloaterWindLight::newPromptCallback(const LLSD& notification, const LLSD&
keyCombo->add(text);
keyCombo->sortByName();
}
LLWLParamManager::instance()->savePreset(text);
LLWLParamManager::getInstance()->savePreset(text);
// otherwise, send a message to the user
}
@@ -308,7 +308,7 @@ void LLFloaterWindLight::syncMenu()
{
bool err;
LLWLParamManager * param_mgr = LLWLParamManager::instance();
LLWLParamManager * param_mgr = LLWLParamManager::getInstance();
LLWLParamSet& currentParams = param_mgr->mCurParams;
//std::map<std::string, LLVector4> & currentParams = param_mgr->mCurParams.mParamValues;
@@ -518,9 +518,9 @@ void LLFloaterWindLight::onColorControlRMoved(LLUICtrl* ctrl, void* userData)
}
}
colorControl->update(LLWLParamManager::instance()->mCurParams);
colorControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
LLWLParamManager::getInstance()->propagateParameters();
}
void LLFloaterWindLight::onColorControlGMoved(LLUICtrl* ctrl, void* userData)
@@ -554,9 +554,9 @@ void LLFloaterWindLight::onColorControlGMoved(LLUICtrl* ctrl, void* userData)
}
}
colorControl->update(LLWLParamManager::instance()->mCurParams);
colorControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
LLWLParamManager::getInstance()->propagateParameters();
}
void LLFloaterWindLight::onColorControlBMoved(LLUICtrl* ctrl, void* userData)
@@ -590,9 +590,9 @@ void LLFloaterWindLight::onColorControlBMoved(LLUICtrl* ctrl, void* userData)
}
}
colorControl->update(LLWLParamManager::instance()->mCurParams);
colorControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
LLWLParamManager::getInstance()->propagateParameters();
}
void LLFloaterWindLight::onColorControlIMoved(LLUICtrl* ctrl, void* userData)
@@ -679,8 +679,8 @@ void LLFloaterWindLight::onColorControlIMoved(LLUICtrl* ctrl, void* userData)
}
// now update the current parameters and send them to shaders
colorControl->update(LLWLParamManager::instance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
colorControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::getInstance()->propagateParameters();
}
/// GLOW SPECIFIC CODE
@@ -694,8 +694,8 @@ void LLFloaterWindLight::onGlowRMoved(LLUICtrl* ctrl, void* userData)
// scaled by 20
colorControl->r = (2 - sldrCtrl->getValueF32()) * 20;
colorControl->update(LLWLParamManager::instance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
colorControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::getInstance()->propagateParameters();
}
/// \NOTE that we want NEGATIVE (-) B
@@ -709,8 +709,8 @@ void LLFloaterWindLight::onGlowBMoved(LLUICtrl* ctrl, void* userData)
/// \NOTE that we want NEGATIVE (-) B and NOT by 20 as 20 is too big
colorControl->b = -sldrCtrl->getValueF32() * 5;
colorControl->update(LLWLParamManager::instance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
colorControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::getInstance()->propagateParameters();
}
void LLFloaterWindLight::onFloatControlMoved(LLUICtrl* ctrl, void* userData)
@@ -722,8 +722,8 @@ void LLFloaterWindLight::onFloatControlMoved(LLUICtrl* ctrl, void* userData)
floatControl->x = sldrCtrl->getValueF32() / floatControl->mult;
floatControl->update(LLWLParamManager::instance()->mCurParams);
LLWLParamManager::instance()->propagateParameters();
floatControl->update(LLWLParamManager::getInstance()->mCurParams);
LLWLParamManager::getInstance()->propagateParameters();
}
void LLFloaterWindLight::onBoolToggle(LLUICtrl* ctrl, void* userData)
@@ -750,7 +750,7 @@ void LLFloaterWindLight::onSunMoved(LLUICtrl* ctrl, void* userData)
WLColorControl * colorControl = static_cast<WLColorControl *>(userData);
// get the two angles
LLWLParamManager * param_mgr = LLWLParamManager::instance();
LLWLParamManager * param_mgr = LLWLParamManager::getInstance();
param_mgr->mCurParams.setSunAngle(F_TWO_PI * sunSldr->getValueF32());
param_mgr->mCurParams.setEastAngle(F_TWO_PI * eastSldr->getValueF32());
@@ -775,7 +775,7 @@ void LLFloaterWindLight::onFloatTweakMoved(LLUICtrl* ctrl, void* userData)
F32 * tweak = static_cast<F32 *>(userData);
(*tweak) = sldrCtrl->getValueF32();
LLWLParamManager::instance()->propagateParameters();
LLWLParamManager::getInstance()->propagateParameters();
}
void LLFloaterWindLight::onStarAlphaMoved(LLUICtrl* ctrl, void* userData)
@@ -784,7 +784,7 @@ void LLFloaterWindLight::onStarAlphaMoved(LLUICtrl* ctrl, void* userData)
LLSliderCtrl* sldrCtrl = static_cast<LLSliderCtrl*>(ctrl);
LLWLParamManager::instance()->mCurParams.setStarBrightness(sldrCtrl->getValueF32());
LLWLParamManager::getInstance()->mCurParams.setStarBrightness(sldrCtrl->getValueF32());
}
void LLFloaterWindLight::onNewPreset(void* userData)
@@ -813,7 +813,7 @@ void LLFloaterWindLight::onSavePreset(void* userData)
return;
}
LLWLParamManager::instance()->mCurParams.mName =
LLWLParamManager::getInstance()->mCurParams.mName =
comboBox->getSelectedItemLabel();
LLNotifications::instance().add("WLSavePresetAlert", LLSD(), LLSD(), saveAlertCallback);
@@ -825,7 +825,7 @@ bool LLFloaterWindLight::saveAlertCallback(const LLSD& notification, const LLSD&
// if they choose save, do it. Otherwise, don't do anything
if(option == 0)
{
LLWLParamManager * param_mgr = LLWLParamManager::instance();
LLWLParamManager * param_mgr = LLWLParamManager::getInstance();
param_mgr->setParamSet(param_mgr->mCurParams.mName, param_mgr->mCurParams);
@@ -882,7 +882,7 @@ bool LLFloaterWindLight::deleteAlertCallback(const LLSD& notification, const LLS
return false;
}
LLWLParamManager::instance()->removeParamSet(name, true);
LLWLParamManager::getInstance()->removeParamSet(name, true);
// remove and choose another
S32 new_index = combo_box->getCurrentIndex();
@@ -922,7 +922,7 @@ void LLFloaterWindLight::onChangePresetName(LLUICtrl* ctrl, void * userData)
return;
}
LLWLParamManager::instance()->loadPreset(
LLWLParamManager::getInstance()->loadPreset(
combo_box->getSelectedValue().asString());
sWindLight->syncMenu();
}
@@ -939,7 +939,7 @@ void LLFloaterWindLight::onCloudScrollXMoved(LLUICtrl* ctrl, void* userData)
LLSliderCtrl* sldrCtrl = static_cast<LLSliderCtrl*>(ctrl);
// *HACK all cloud scrolling is off by an additive of 10.
LLWLParamManager::instance()->mCurParams.setCloudScrollX(sldrCtrl->getValueF32() + 10.0f);
LLWLParamManager::getInstance()->mCurParams.setCloudScrollX(sldrCtrl->getValueF32() + 10.0f);
}
void LLFloaterWindLight::onCloudScrollYMoved(LLUICtrl* ctrl, void* userData)
@@ -949,7 +949,7 @@ void LLFloaterWindLight::onCloudScrollYMoved(LLUICtrl* ctrl, void* userData)
LLSliderCtrl* sldrCtrl = static_cast<LLSliderCtrl*>(ctrl);
// *HACK all cloud scrolling is off by an additive of 10.
LLWLParamManager::instance()->mCurParams.setCloudScrollY(sldrCtrl->getValueF32() + 10.0f);
LLWLParamManager::getInstance()->mCurParams.setCloudScrollY(sldrCtrl->getValueF32() + 10.0f);
}
void LLFloaterWindLight::onCloudScrollXToggled(LLUICtrl* ctrl, void* userData)
@@ -959,7 +959,7 @@ void LLFloaterWindLight::onCloudScrollXToggled(LLUICtrl* ctrl, void* userData)
LLCheckBoxCtrl* cbCtrl = static_cast<LLCheckBoxCtrl*>(ctrl);
bool lock = cbCtrl->get();
LLWLParamManager::instance()->mCurParams.setEnableCloudScrollX(!lock);
LLWLParamManager::getInstance()->mCurParams.setEnableCloudScrollX(!lock);
LLSliderCtrl* sldr = sWindLight->getChild<LLSliderCtrl>(
"WLCloudScrollX");
@@ -981,7 +981,7 @@ void LLFloaterWindLight::onCloudScrollYToggled(LLUICtrl* ctrl, void* userData)
LLCheckBoxCtrl* cbCtrl = static_cast<LLCheckBoxCtrl*>(ctrl);
bool lock = cbCtrl->get();
LLWLParamManager::instance()->mCurParams.setEnableCloudScrollY(!lock);
LLWLParamManager::getInstance()->mCurParams.setEnableCloudScrollY(!lock);
LLSliderCtrl* sldr = sWindLight->getChild<LLSliderCtrl>(
"WLCloudScrollY");
@@ -998,6 +998,6 @@ void LLFloaterWindLight::onCloudScrollYToggled(LLUICtrl* ctrl, void* userData)
void LLFloaterWindLight::deactivateAnimator()
{
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
}

View File

@@ -1925,9 +1925,7 @@ bool idle_startup()
// init the shader managers
LLPostProcess::initClass();
LLWLParamManager::initClass();
AscentDayCycleManager::initClass();
LLWaterParamManager::initClass();
// RN: don't initialize VO classes in drone mode, they are too closely tied to rendering
LLViewerObject::initVOClasses();

View File

@@ -191,8 +191,8 @@ void display_update_camera(bool tiling=false)
gViewerWindow->setup3DRender();
// update all the sky/atmospheric/water settings
LLWLParamManager::instance()->update(LLViewerCamera::getInstance());
LLWaterParamManager::instance()->update(LLViewerCamera::getInstance());
LLWLParamManager::getInstance()->update(LLViewerCamera::getInstance());
LLWaterParamManager::getInstance()->update(LLViewerCamera::getInstance());
// Update land visibility too
LLWorld::getInstance()->setLandFarClip(final_far);

View File

@@ -109,7 +109,7 @@ void process_generic_message(LLMessageSystem* msg, void**)
Meta7WindlightPacket* wl = (Meta7WindlightPacket*)buf;
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
LLWaterParamManager * param_mgr = LLWaterParamManager::getInstance();
LLWaterParamSet & param_set = param_mgr->mCurParams;
LLWaterParamSet backup;
if(!param_mgr->getParamSet("LightShare-Backup", backup)) {
@@ -154,7 +154,7 @@ void process_generic_message(LLMessageSystem* msg, void**)
param_mgr->setParamSet( "LightShare-CurrentRegion", param_set);
param_mgr->setNormalMapID(normalMapTexture);
LLWLParamManager * wl_param_mgr = LLWLParamManager::instance();
LLWLParamManager * wl_param_mgr = LLWLParamManager::getInstance();
LLWLParamSet & wl_param_set = wl_param_mgr->mCurParams;
LLWLParamSet wl_backup;
if(!wl_param_mgr->getParamSet("LightShare-Backup", wl_backup)) {
@@ -187,8 +187,8 @@ void process_generic_message(LLMessageSystem* msg, void**)
wl_param_mgr->removeParamSet("LightShare-CurrentRegion",true);
wl_param_mgr->addParamSet( "LightShare-CurrentRegion", wl_param_set);
wl_param_mgr->savePreset( "LightShare-CurrentRegion");
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
wl_param_mgr->loadPreset( "LightShare-CurrentRegion",true);
}
}

View File

@@ -9359,51 +9359,51 @@ class LLWorldEnvSettings : public view_listener_t
if (tod == "sunrise")
{
// set the value, turn off animation
LLWLParamManager::instance()->mAnimator.setDayTime(0.25);
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.setDayTime(0.25);
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
// then call update once
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
else if (tod == "noon")
{
// set the value, turn off animation
LLWLParamManager::instance()->mAnimator.setDayTime(0.567);
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.setDayTime(0.567);
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
// then call update once
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
else if (tod == "sunset")
{
// set the value, turn off animation
LLWLParamManager::instance()->mAnimator.setDayTime(0.75);
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.setDayTime(0.75);
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
// then call update once
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
else if (tod == "midnight")
{
// set the value, turn off animation
LLWLParamManager::instance()->mAnimator.setDayTime(0.0);
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.setDayTime(0.0);
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
// then call update once
LLWLParamManager::instance()->mAnimator.update(
LLWLParamManager::instance()->mCurParams);
LLWLParamManager::getInstance()->mAnimator.update(
LLWLParamManager::getInstance()->mCurParams);
}
else
{
LLWLParamManager::instance()->mAnimator.mIsRunning = true;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = true;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = true;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = true;
}
return true;
}

View File

@@ -3746,17 +3746,17 @@ void process_teleport_finish(LLMessageSystem* msg, void**)
*/
//Reset the windlight profile to default
//LLWLParamManager::instance()->mAnimator.mIsRunning = false;
//LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
//LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
//LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
LLWLParamSet wl_backup;
if(LLWLParamManager::instance()->getParamSet("LightShare-Backup", wl_backup)) {
LLWLParamManager::instance()->propagateParameters();
LLWLParamManager::instance()->removeParamSet("LightShare-Backup", true);
if(LLWLParamManager::getInstance()->getParamSet("LightShare-Backup", wl_backup)) {
LLWLParamManager::getInstance()->propagateParameters();
LLWLParamManager::getInstance()->removeParamSet("LightShare-Backup", true);
}
LLWaterParamSet backup;
if(LLWaterParamManager::instance()->getParamSet("LightShare-Backup", backup)) {
LLWaterParamManager::instance()->propagateParameters();
LLWaterParamManager::instance()->removeParamSet("LightShare-Backup", true);
if(LLWaterParamManager::getInstance()->getParamSet("LightShare-Backup", backup)) {
LLWaterParamManager::getInstance()->propagateParameters();
LLWaterParamManager::getInstance()->removeParamSet("LightShare-Backup", true);
}
// now, use the circuit info to tell simulator about us!

View File

@@ -567,8 +567,8 @@ void LLViewerShaderMgr::setShaders()
gViewerWindow->setCursor(UI_CURSOR_ARROW);
}
LLWaterParamManager::instance()->updateShaderLinks();
LLWLParamManager::instance()->updateShaderLinks();
LLWaterParamManager::getInstance()->updateShaderLinks();
LLWLParamManager::getInstance()->updateShaderLinks();
gPipeline.createGLBuffers();
reentrance = false;
@@ -2197,8 +2197,8 @@ std::string LLViewerShaderMgr::getShaderDirPrefix(void)
void LLViewerShaderMgr::updateShaderUniforms(LLGLSLShader * shader)
{
LLWLParamManager::instance()->updateShaderUniforms(shader);
LLWaterParamManager::instance()->updateShaderUniforms(shader);
LLWLParamManager::getInstance()->updateShaderUniforms(shader);
LLWaterParamManager::getInstance()->updateShaderUniforms(shader);
}
/*static*/ void LLShaderMgr::unloadShaderClass(int shader_class)

View File

@@ -377,7 +377,7 @@ LLVOSky::LLVOSky(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
mAtmHeight = ATM_HEIGHT;
mEarthCenter = LLVector3(mCameraPosAgent.mV[0], mCameraPosAgent.mV[1], -EARTH_RADIUS);
mSunDefaultPosition = LLVector3(LLWLParamManager::instance()->mCurParams.getVector("lightnorm", error));
mSunDefaultPosition = LLVector3(LLWLParamManager::getInstance()->mCurParams.getVector("lightnorm", error));
if (gSavedSettings.getBOOL("SkyOverrideSimSunPosition"))
{
initSunDirection(mSunDefaultPosition, LLVector3(0, 0, 0));
@@ -654,24 +654,24 @@ void LLVOSky::initAtmospherics(void)
bool error;
// uniform parameters for convenience
dome_radius = LLWLParamManager::instance()->getDomeRadius();
dome_offset_ratio = LLWLParamManager::instance()->getDomeOffset();
sunlight_color = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("sunlight_color", error));
ambient = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("ambient", error));
//lightnorm = LLWLParamManager::instance()->mCurParams.getVector("lightnorm", error);
gamma = LLWLParamManager::instance()->mCurParams.getVector("gamma", error)[0];
blue_density = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("blue_density", error));
blue_horizon = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("blue_horizon", error));
haze_density = LLWLParamManager::instance()->mCurParams.getVector("haze_density", error)[0];
haze_horizon = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("haze_horizon", error));
density_multiplier = LLWLParamManager::instance()->mCurParams.getVector("density_multiplier", error)[0];
max_y = LLWLParamManager::instance()->mCurParams.getVector("max_y", error)[0];
glow = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("glow", error));
cloud_shadow = LLWLParamManager::instance()->mCurParams.getVector("cloud_shadow", error)[0];
cloud_color = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("cloud_color", error));
cloud_scale = LLWLParamManager::instance()->mCurParams.getVector("cloud_scale", error)[0];
cloud_pos_density1 = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("cloud_pos_density1", error));
cloud_pos_density2 = LLColor3(LLWLParamManager::instance()->mCurParams.getVector("cloud_pos_density2", error));
dome_radius = LLWLParamManager::getInstance()->getDomeRadius();
dome_offset_ratio = LLWLParamManager::getInstance()->getDomeOffset();
sunlight_color = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("sunlight_color", error));
ambient = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("ambient", error));
//lightnorm = LLWLParamManager::getInstance()->mCurParams.getVector("lightnorm", error);
gamma = LLWLParamManager::getInstance()->mCurParams.getVector("gamma", error)[0];
blue_density = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("blue_density", error));
blue_horizon = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("blue_horizon", error));
haze_density = LLWLParamManager::getInstance()->mCurParams.getVector("haze_density", error)[0];
haze_horizon = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("haze_horizon", error));
density_multiplier = LLWLParamManager::getInstance()->mCurParams.getVector("density_multiplier", error)[0];
max_y = LLWLParamManager::getInstance()->mCurParams.getVector("max_y", error)[0];
glow = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("glow", error));
cloud_shadow = LLWLParamManager::getInstance()->mCurParams.getVector("cloud_shadow", error)[0];
cloud_color = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("cloud_color", error));
cloud_scale = LLWLParamManager::getInstance()->mCurParams.getVector("cloud_scale", error)[0];
cloud_pos_density1 = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("cloud_pos_density1", error));
cloud_pos_density2 = LLColor3(LLWLParamManager::getInstance()->mCurParams.getVector("cloud_pos_density2", error));
// light norm is different. We need the sun's direction, not the light direction
// which could be from the moon. And we need to clamp it
@@ -1047,7 +1047,7 @@ void LLVOSky::calcAtmospherics(void)
// between sunlight and point lights in windlight to normalize point lights.
static const LLCachedControl<F32> render_sun_dynamic_range("RenderSunDynamicRange", 1.f);
F32 sun_dynamic_range = llmax((float)render_sun_dynamic_range, 0.0001f);
LLWLParamManager::instance()->mSceneLightStrength = 2.0f * (1.0f + sun_dynamic_range * dp);
LLWLParamManager::getInstance()->mSceneLightStrength = 2.0f * (1.0f + sun_dynamic_range * dp);
mSunDiffuse = vary_SunlightColor;
mSunAmbient = vary_AmbientColor;
@@ -2139,7 +2139,7 @@ void LLVOSky::updateFog(const F32 distance)
F32 depth = water_height - camera_height;
// get the water param manager variables
float water_fog_density = LLWaterParamManager::instance()->getFogDensity();
float water_fog_density = LLWaterParamManager::getInstance()->getFogDensity();
LLColor4 water_fog_color = LLDrawPoolWater::sWaterFogColor.mV;
// adjust the color based on depth. We're doing linear approximations

View File

@@ -73,6 +73,7 @@
#include "lldrawpoolavatar.h"
#include "llmeshrepository.h"
#include "lldatapacker.h"
#include "llviewershadermgr.h"
#include "llvoavatar.h"
#include "llfloatertools.h"
#endif //MESH_ENABLED

View File

@@ -571,7 +571,7 @@ void LLVOWLSky::buildFanBuffer(LLStrider<LLVector3> & vertices,
LLStrider<LLVector2> & texCoords,
LLStrider<U16> & indices)
{
const F32 RADIUS = LLWLParamManager::instance()->getDomeRadius();
const F32 RADIUS = LLWLParamManager::getInstance()->getDomeRadius();
U32 i, num_slices;
F32 phi0, theta, x0, y0, z0;
@@ -632,7 +632,7 @@ void LLVOWLSky::buildStripsBuffer(U32 begin_stack, U32 end_stack,
LLStrider<LLVector2> & texCoords,
LLStrider<U16> & indices)
{
const F32 RADIUS = LLWLParamManager::instance()->getDomeRadius();
const F32 RADIUS = LLWLParamManager::getInstance()->getDomeRadius();
U32 i, j, num_slices, num_stacks;
F32 phi0, theta, x0, y0, z0;

View File

@@ -66,8 +66,6 @@
#include "curl/curl.h"
LLWaterParamManager * LLWaterParamManager::sInstance = NULL;
LLWaterParamManager::LLWaterParamManager() :
mFogColor(22.f/255.f, 43.f/255.f, 54.f/255.f, 0.0f, 0.0f, "waterFogColor", "WaterFogColor"),
mFogDensity(4, "waterFogDensity", 2),
@@ -246,7 +244,7 @@ void LLWaterParamManager::updateShaderUniforms(LLGLSLShader * shader)
{
if (shader->mShaderGroup == LLGLSLShader::SG_WATER)
{
shader->uniform4fv(LLViewerShaderMgr::LIGHTNORM, 1, LLWLParamManager::instance()->getRotatedLightDir().mV);
shader->uniform4fv(LLViewerShaderMgr::LIGHTNORM, 1, LLWLParamManager::getInstance()->getRotatedLightDir().mV);
shader->uniform3fv("camPosLocal", 1, LLViewerCamera::getInstance()->getOrigin().mV);
shader->uniform4fv("waterFogColor", 1, LLDrawPoolWater::sWaterFogColor.mV);
shader->uniform4fv("waterPlane", 1, mWaterPlane.mV);
@@ -342,18 +340,6 @@ void LLWaterParamManager::update(LLViewerCamera * cam)
}
}
// static
void LLWaterParamManager::initClass(void)
{
instance();
}
// static
void LLWaterParamManager::cleanupClass(void)
{
delete sInstance;
sInstance = NULL;
}
bool LLWaterParamManager::addParamSet(const std::string& name, LLWaterParamSet& param)
{
@@ -459,16 +445,11 @@ F32 LLWaterParamManager::getFogDensity(void)
}
// static
LLWaterParamManager * LLWaterParamManager::instance()
void LLWaterParamManager::initSingleton()
{
if(NULL == sInstance)
{
sInstance = new LLWaterParamManager();
loadAllPresets(LLStringUtil::null);
sInstance->loadAllPresets(LLStringUtil::null);
sInstance->getParamSet("Default", sInstance->mCurParams);
}
return sInstance;
getParamSet("Default", mCurParams);
}

View File

@@ -218,22 +218,15 @@ struct WaterExpFloatControl
/// WindLight parameter manager class - what controls all the wind light shaders
class LLWaterParamManager
class LLWaterParamManager : public LLSingleton<LLWaterParamManager>
{
LOG_CLASS(LLWaterParamManager);
public:
LLWaterParamManager();
~LLWaterParamManager();
typedef std::map<std::string, LLWaterParamSet> preset_map_t;
void updateShaderLinks();
/// load a preset file
void loadAllPresets(const std::string & fileName);
/// load an individual preset into the sky
void loadPreset(const std::string & name,bool propagate=true);
/// save the parameter presets to file
void savePreset(const std::string & name);
@@ -246,12 +239,6 @@ public:
/// Update shader uniforms that have changed.
void updateShaderUniforms(LLGLSLShader * shader);
/// Perform global initialization for this class.
static void initClass(void);
// Cleanup of global data that's only inited once per class.
static void cleanupClass();
/// add a param to the list
bool addParamSet(const std::string& name, LLWaterParamSet& param);
@@ -270,6 +257,9 @@ public:
/// gets rid of a parameter and any references to it
/// returns true if successful
bool removeParamSet(const std::string& name, bool delete_from_disk);
/// @return all named water presets.
const preset_map_t& getPresets() const { return mParamList; }
/// set the normap map we want for water
bool setNormalMapID(const LLUUID& img);
@@ -313,18 +303,29 @@ public:
WaterFloatControl mScaleBelow;
WaterFloatControl mBlurMultiplier;
// list of all the parameters, listed by name
std::map<std::string, LLWaterParamSet> mParamList;
F32 mDensitySliderValue;
/// load an individual preset into the sky
void loadPreset(const std::string & name,bool propagate=true);
private:
friend class LLSingleton<LLWaterParamManager>;
/*virtual*/ void initSingleton();
LLWaterParamManager();
~LLWaterParamManager();
/// load a preset file
void loadAllPresets(const std::string & fileName);
LLVector4 mWaterPlane;
F32 mWaterFogKS;
std::vector<LLGLSLShader *> mShaderList;
// our parameter manager singleton instance
static LLWaterParamManager * sInstance;
// list of all the parameters, listed by name
std::map<std::string, LLWaterParamSet> mParamList;
std::vector<LLGLSLShader *> mShaderList;
};
inline void LLWaterParamManager::setDensitySliderValue(F32 val)

View File

@@ -230,3 +230,46 @@ F32 LLWaterParamSet::getFloat(const std::string& paramName, bool& error)
return 0;
}
// Added for interpolation effect in DEV-33645
// Based on LLWLParamSet::mix, but written by Jacob without an intimate knowledge of how WindLight works.
// The function definition existed in the header but was never implemented. If you think there is something
// wrong with this, you're probably right. Ask Jacob, Q, or a member of the original WindLight team.
void LLWaterParamSet::mix(LLWaterParamSet& src, LLWaterParamSet& dest, F32 weight)
{
// Setup
LLSD srcVal, destVal; // LLSD holders for get/set calls, reusable
// Iterate through values
for(LLSD::map_iterator iter = mParamValues.beginMap(); iter != mParamValues.endMap(); ++iter)
{
// If param exists in both src and dest, set the holder variables, otherwise skip
if(src.mParamValues.has(iter->first) && dest.mParamValues.has(iter->first))
{
srcVal = src.mParamValues[iter->first];
destVal = dest.mParamValues[iter->first];
}
else
{
continue;
}
if(iter->second.isReal()) // If it's a real, interpolate directly
{
iter->second = srcVal.asReal() + ((destVal.asReal() - srcVal.asReal()) * weight);
}
else if(iter->second.isArray() && iter->second[0].isReal() // If it's an array of reals, loop through the reals and interpolate on those
&& iter->second.size() == srcVal.size() && iter->second.size() == destVal.size())
{
// Actually do interpolation: old value + (difference in values * factor)
for(int i=0; i < iter->second.size(); ++i)
{
// iter->second[i] = (1.f-weight)*(F32)srcVal[i].asReal() + weight*(F32)destVal[i].asReal(); // old way of doing it -- equivalent but one more operation
iter->second[i] = srcVal[i].asReal() + ((destVal[i].asReal() - srcVal[i].asReal()) * weight);
}
}
else // Else, skip
{
continue;
}
}
}

View File

@@ -40,7 +40,6 @@
#include "v4color.h"
#include "llviewershadermgr.h"
class LLFloaterWater;
class LLWaterParamSet;
/// A class representing a set of parameter values for the Water shaders.

View File

@@ -49,7 +49,8 @@ void LLWLAnimator::update(LLWLParamSet& curParams)
curTime = getDayTime();
// don't do anything if empty
if(mTimeTrack.size() == 0) {
if(mTimeTrack.size() == 0)
{
return;
}
@@ -59,13 +60,15 @@ void LLWLAnimator::update(LLWLParamSet& curParams)
mSecondIt++;
// grab the two tween iterators
while(mSecondIt != mTimeTrack.end() && curTime > mSecondIt->first) {
while(mSecondIt != mTimeTrack.end() && curTime > mSecondIt->first)
{
mFirstIt++;
mSecondIt++;
}
// scroll it around when you get to the end
if(mSecondIt == mTimeTrack.end() || mFirstIt->first > curTime) {
if(mSecondIt == mTimeTrack.end() || mFirstIt->first > curTime)
{
mSecondIt = mTimeTrack.begin();
mFirstIt = mTimeTrack.end();
mFirstIt--;
@@ -73,56 +76,66 @@ void LLWLAnimator::update(LLWLParamSet& curParams)
F32 weight = 0;
if(mFirstIt->first < mSecondIt->first) {
if(mFirstIt->first < mSecondIt->first)
{
// get the delta time and the proper weight
weight = F32 (curTime - mFirstIt->first) /
(mSecondIt->first - mFirstIt->first);
// handle the ends
} else if(mFirstIt->first > mSecondIt->first) {
}
else if(mFirstIt->first > mSecondIt->first)
{
// right edge of time line
if(curTime >= mFirstIt->first) {
if(curTime >= mFirstIt->first)
{
weight = F32 (curTime - mFirstIt->first) /
((1 + mSecondIt->first) - mFirstIt->first);
// left edge of time line
} else {
}
else
{
weight = F32 ((1 + curTime) - mFirstIt->first) /
((1 + mSecondIt->first) - mFirstIt->first);
}
// handle same as whatever the last one is
} else {
}
else
{
weight = 1;
}
// do the interpolation and set the parameters
curParams.mix(LLWLParamManager::instance()->mParamList[mFirstIt->second],
LLWLParamManager::instance()->mParamList[mSecondIt->second], weight);
curParams.mix(LLWLParamManager::getInstance()->mParamList[mFirstIt->second],
LLWLParamManager::getInstance()->mParamList[mSecondIt->second], weight);
}
F64 LLWLAnimator::getDayTime()
{
if(!mIsRunning) {
if(!mIsRunning)
{
return mDayTime;
}
if(mUseLindenTime) {
if(mUseLindenTime)
{
F32 phase = gSky.getSunPhase() / F_PI;
// we're not solving the non-linear equation that determines sun phase
// we're just linearly interpolating between the major points
if (phase <= 5.0 / 4.0) {
mDayTime = (1.0 / 3.0) * phase + (1.0 / 3.0);
} else {
}
else
{
mDayTime = phase - (1.0 / 2.0);
}
if(mDayTime > 1) {
if(mDayTime > 1)
{
mDayTime--;
}
@@ -133,10 +146,12 @@ F64 LLWLAnimator::getDayTime()
mDayTime = (LLTimer::getElapsedSeconds() - mStartTime) / mDayRate;
// clamp it
if(mDayTime < 0) {
if(mDayTime < 0)
{
mDayTime = 0;
}
while(mDayTime > 1) {
while(mDayTime > 1)
{
mDayTime--;
}
@@ -150,9 +165,12 @@ void LLWLAnimator::setDayTime(F64 dayTime)
mDayTime = dayTime;
// clamp it
if(mDayTime < 0) {
if(mDayTime < 0)
{
mDayTime = 0;
} else if(mDayTime > 1) {
}
else if(mDayTime > 1)
{
mDayTime = 1;
}
}

View File

@@ -96,7 +96,7 @@ void LLWLDayCycle::loadDayCycle(const std::string & fileName)
// check each param name exists in param manager
bool success;
LLWLParamSet pset;
success = LLWLParamManager::instance()->getParamSet(day_data[i][1].asString(), pset);
success = LLWLParamManager::getInstance()->getParamSet(day_data[i][1].asString(), pset);
if(!success)
{
// alert the user
@@ -203,7 +203,7 @@ bool LLWLDayCycle::changeKeyParam(F32 time, const std::string & name)
// just remove and add back
// make sure param exists
LLWLParamSet tmp;
bool stat = LLWLParamManager::instance()->getParamSet(name, tmp);
bool stat = LLWLParamManager::getInstance()->getParamSet(name, tmp);
if(stat == false)
{
return stat;
@@ -249,7 +249,7 @@ bool LLWLDayCycle::getKeyedParam(F32 time, LLWLParamSet& param)
std::map<F32, std::string>::iterator mIt = mTimeMap.find(time);
if(mIt != mTimeMap.end())
{
return LLWLParamManager::instance()->getParamSet(mIt->second, param);
return LLWLParamManager::getInstance()->getParamSet(mIt->second, param);
}
// return error if not found

View File

@@ -61,9 +61,10 @@
#include "llfloaterdaycycle.h"
#include "llfloaterenvsettings.h"
#include "curl/curl.h"
#include "llviewershadermgr.h"
#include "llglslshader.h"
LLWLParamManager * LLWLParamManager::sInstance = NULL;
#include "curl/curl.h"
LLWLParamManager::LLWLParamManager() :
@@ -423,18 +424,6 @@ void LLWLParamManager::update(LLViewerCamera * cam)
}
}
// static
void LLWLParamManager::initClass(void)
{
instance();
}
// static
void LLWLParamManager::cleanupClass()
{
delete sInstance;
sInstance = NULL;
}
void LLWLParamManager::resetAnimator(F32 curTime, bool run)
{
@@ -546,27 +535,22 @@ bool LLWLParamManager::removeParamSet(const std::string& name, bool delete_from_
}
// static
LLWLParamManager * LLWLParamManager::instance()
// virtual static
void LLWLParamManager::initSingleton()
{
if(NULL == sInstance)
{
sInstance = new LLWLParamManager();
sInstance->loadPresets(LLStringUtil::null);
loadPresets(LLStringUtil::null);
// load the day
sInstance->mDay.loadDayCycle(gSavedSettings.getString("AscentActiveDayCycle"));
// load the day
mDay.loadDayCycle(gSavedSettings.getString("AscentActiveDayCycle"));
// *HACK - sets cloud scrolling to what we want... fix this better in the future
sInstance->getParamSet("Default", sInstance->mCurParams);
// *HACK - sets cloud scrolling to what we want... fix this better in the future
getParamSet("Default", mCurParams);
// set it to noon
sInstance->resetAnimator(0.5, true);
// set it to noon
resetAnimator(0.5, true);
// but use linden time sets it to what the estate is
sInstance->mAnimator.mUseLindenTime = true;
}
// but use linden time sets it to what the estate is
mAnimator.mUseLindenTime = true;
return sInstance;
}

View File

@@ -122,17 +122,14 @@ struct WLFloatControl {
};
/// WindLight parameter manager class - what controls all the wind light shaders
class LLWLParamManager
class LLWLParamManager : public LLSingleton<LLWLParamManager>
{
public:
LOG_CLASS(LLWLParamManager);
LLWLParamManager();
~LLWLParamManager();
public:
void updateShaderLinks();
/// load a preset file
void loadPresets(const std::string & fileName);
/// save the preset file
void savePresets(const std::string & fileName);
@@ -195,8 +192,8 @@ public:
/// returns true if successful
bool removeParamSet(const std::string& name, bool delete_from_disk);
// singleton pattern implementation
static LLWLParamManager * instance();
/// @return all named windlight presets.
const std::map<std::string, LLWLParamSet>& getPresets() const { return mParamList; }
public:
@@ -251,14 +248,22 @@ public:
F32 mDomeOffset;
F32 mDomeRadius;
// list of all the parameters, listed by name
std::map<std::string, LLWLParamSet> mParamList;
private:
/// load a preset file
friend class LLWLAnimator;
void loadPresets(const std::string & fileName);
friend class LLSingleton<LLWLParamManager>;
/*virtual*/ void initSingleton();
LLWLParamManager();
~LLWLParamManager();
// list of all the parameters, listed by name
std::map<std::string, LLWLParamSet> mParamList;
std::vector<LLGLSLShader *> mShaderList;
// our parameter manager singleton instance
static LLWLParamManager * sInstance;
};

View File

@@ -266,7 +266,6 @@ void LLWLParamSet::setEastAngle(float val)
void LLWLParamSet::mix(LLWLParamSet& src, LLWLParamSet& dest, F32 weight)
{
// set up the iterators
LLSD::map_iterator cIt = mParamValues.beginMap();
// keep cloud positions and coverage the same
/// TODO masking will do this later
@@ -279,55 +278,39 @@ void LLWLParamSet::mix(LLWLParamSet& src, LLWLParamSet& dest, F32 weight)
LLSD srcVal;
LLSD destVal;
// do the interpolation for all the ones saved as vectors
// skip the weird ones
for(; cIt != mParamValues.endMap(); cIt++) {
// Iterate through values
for(LLSD::map_iterator iter = mParamValues.beginMap(); iter != mParamValues.endMap(); ++iter)
{
// check params to make sure they're actually there
if(src.mParamValues.has(cIt->first))
// If param exists in both src and dest, set the holder variables, otherwise skip
if(src.mParamValues.has(iter->first) && dest.mParamValues.has(iter->first))
{
srcVal = src.mParamValues[cIt->first];
srcVal = src.mParamValues[iter->first];
destVal = dest.mParamValues[iter->first];
}
else
{
continue;
}
if(dest.mParamValues.has(cIt->first))
if(iter->second.isReal()) // If it's a real, interpolate directly
{
destVal = dest.mParamValues[cIt->first];
iter->second = srcVal.asReal() + ((destVal.asReal() - srcVal.asReal()) * weight);
}
else
else if(iter->second.isArray() && iter->second[0].isReal() // If it's an array of reals, loop through the reals and interpolate on those
&& iter->second.size() == srcVal.size() && iter->second.size() == destVal.size())
{
// Actually do interpolation: old value + (difference in values * factor)
for(int i=0; i < iter->second.size(); ++i)
{
// iter->second[i] = (1.f-weight)*(F32)srcVal[i].asReal() + weight*(F32)destVal[i].asReal(); // old way of doing it -- equivalent but one more operation
iter->second[i] = srcVal[i].asReal() + ((destVal[i].asReal() - srcVal[i].asReal()) * weight);
}
}
else // Else, skip
{
continue;
}
// skip if not a vector
if(!cIt->second.isArray())
{
continue;
}
// only Real vectors allowed
if(!cIt->second[0].isReal())
{
continue;
}
// make sure all the same size
if( cIt->second.size() != srcVal.size() ||
cIt->second.size() != destVal.size())
{
continue;
}
// more error checking might be necessary;
for(int i=0; i < cIt->second.size(); ++i)
{
cIt->second[i] = (1.0f - weight) * (F32) srcVal[i].asReal() +
weight * (F32) destVal[i].asReal();
}
}
// now mix the extra parameters

View File

@@ -38,10 +38,9 @@
#include "v4math.h"
#include "v4color.h"
#include "llviewershadermgr.h"
class LLFloaterWindLight;
class LLWLParamSet;
class LLGLSLShader;
/// A class representing a set of parameter values for the WindLight shaders.
class LLWLParamSet {

View File

@@ -307,7 +307,7 @@ std::string RlvExtGetSet::onGetEnv(std::string strSetting)
LLFloaterWindLight::instance()->syncMenu();
}
LLWLParamManager* pWLParams = LLWLParamManager::instance();
LLWLParamManager* pWLParams = LLWLParamManager::getInstance();
F32 nValue = 0.0f;
if ("daytime" == strSetting)
@@ -380,7 +380,7 @@ ERlvCmdRet RlvExtGetSet::onSetEnv(std::string strSetting, const std::string& str
LLFloaterWindLight::instance()->syncMenu();
}
LLWLParamManager* pWLParams = LLWLParamManager::instance();
LLWLParamManager* pWLParams = LLWLParamManager::getInstance();
WLFloatControl* pFloat = NULL;
WLColorControl* pColour = NULL;

View File

@@ -954,7 +954,7 @@ void RlvBehaviourNotifyHandler::sendNotification(const std::string& strText, con
// Checked: 2009-06-03 (RLVa-0.2.0h) | Added: RLVa-0.2.0h
void RlvWLSnapshot::restoreSnapshot(const RlvWLSnapshot* pWLSnapshot)
{
LLWLParamManager* pWLParams = LLWLParamManager::instance();
LLWLParamManager* pWLParams = LLWLParamManager::getInstance();
if ( (pWLSnapshot) && (pWLParams) )
{
pWLParams->mAnimator.mIsRunning = pWLSnapshot->fIsRunning;
@@ -975,7 +975,7 @@ RlvWLSnapshot* RlvWLSnapshot::takeSnapshot()
}
RlvWLSnapshot* pWLSnapshot = NULL;
LLWLParamManager* pWLParams = LLWLParamManager::instance();
LLWLParamManager* pWLParams = LLWLParamManager::getInstance();
if (pWLParams)
{
pWLSnapshot = new RlvWLSnapshot();

View File

@@ -96,8 +96,8 @@ BOOL wlfPanel_AdvSettings::postBuild()
LLComboBox* comboBoxSky = getChild<LLComboBox>("WLSkyPresetsCombo");
if(comboBoxSky != NULL)
{
std::map<std::string, LLWLParamSet>::iterator mIt = LLWLParamManager::instance()->mParamList.begin();
for(; mIt != LLWLParamManager::instance()->mParamList.end(); mIt++)
std::map<std::string, LLWLParamSet>::const_iterator mIt = LLWLParamManager::getInstance()->getPresets().begin();
for(; mIt != LLWLParamManager::getInstance()->getPresets().end(); mIt++)
{
if (mIt->first.length() > 0)
comboBoxSky->add(mIt->first);
@@ -110,8 +110,8 @@ BOOL wlfPanel_AdvSettings::postBuild()
LLComboBox* comboBoxWater = getChild<LLComboBox>("WLWaterPresetsCombo");
if(comboBoxWater != NULL)
{
std::map<std::string, LLWaterParamSet>::iterator mIt = LLWaterParamManager::instance()->mParamList.begin();
for(; mIt != LLWaterParamManager::instance()->mParamList.end(); mIt++)
std::map<std::string, LLWaterParamSet>::const_iterator mIt = LLWaterParamManager::getInstance()->getPresets().begin();
for(; mIt != LLWaterParamManager::getInstance()->getPresets().end(); mIt++)
{
if (mIt->first.length() > 0)
comboBoxWater->add(mIt->first);
@@ -155,8 +155,8 @@ void wlfPanel_AdvSettings::onClickExpandBtn(void* user_data)
}
void wlfPanel_AdvSettings::onChangePresetName(LLUICtrl* ctrl, void * userData)
{
LLWLParamManager::instance()->mAnimator.mIsRunning = false;
LLWLParamManager::instance()->mAnimator.mUseLindenTime = false;
LLWLParamManager::getInstance()->mAnimator.mIsRunning = false;
LLWLParamManager::getInstance()->mAnimator.mUseLindenTime = false;
LLComboBox * combo_box = static_cast<LLComboBox*>(ctrl);
llinfos << "Combobox is " << combo_box->getControlName() << " aka " << combo_box->getName() << llendl;
@@ -167,7 +167,7 @@ void wlfPanel_AdvSettings::onChangePresetName(LLUICtrl* ctrl, void * userData)
return;
}
current_preset = combo_box->getSelectedValue().asString();
LLWLParamManager::instance()->loadPreset(current_preset);
LLWLParamManager::getInstance()->loadPreset(current_preset);
}
else if (combo_box->getName() == "WLWaterPresetsCombo")
{
@@ -176,6 +176,6 @@ void wlfPanel_AdvSettings::onChangePresetName(LLUICtrl* ctrl, void * userData)
return;
}
current_preset = combo_box->getSelectedValue().asString();
LLWaterParamManager::instance()->loadPreset(current_preset);
LLWaterParamManager::getInstance()->loadPreset(current_preset);
}
}