diff options
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/lldrawpoolwater.cpp | 19 | ||||
| -rw-r--r-- | indra/newview/llfloatereditextdaycycle.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llsettingspicker.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llsettingsvo.cpp | 24 | ||||
| -rw-r--r-- | indra/newview/llsettingsvo.h | 1 | 
5 files changed, 45 insertions, 6 deletions
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index e3dcc44c4d..ad4df751fd 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -589,19 +589,32 @@ void LLDrawPoolWater::shade()  	//bind normal map  	S32 bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP); -    if (mWaterNormp[0] && mWaterNormp[1]) +    if (mWaterNormp[0])      {  	    gGL.getTexUnit(bumpTex)->bind(mWaterNormp[0]) ; -        gGL.getTexUnit(bumpTex + 1)->bind(mWaterNormp[1]) ;  	    if (gSavedSettings.getBOOL("RenderWaterMipNormal"))  	    {  		    mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC); -            mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);  	    }  	    else   	    {  		    mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_POINT); +	    } +	} + +    if (mWaterNormp[1]) +    { +        bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP2); + +        gGL.getTexUnit(bumpTex)->bind(mWaterNormp[1]) ; + +	    if (gSavedSettings.getBOOL("RenderWaterMipNormal")) +	    { +            mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC); +	    } +	    else  +	    {              mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_POINT);  	    }  	} diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index bcae9d2476..cf1d59e514 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -908,7 +908,7 @@ void LLFloaterEditExtDayCycle::onAssetLoaded(LLUUID asset_id, LLSettingsBase::pt          closeFloater();          return;      } -    mEditDay = std::dynamic_pointer_cast<LLSettingsDay>(settings); +    mEditDay = std::dynamic_pointer_cast<LLSettingsDay>(settings)->buildDeepCloneAndUncompress();      updateEditEnvironment();      LLEnvironment::instance().setSelectedEnvironment(LLEnvironment::ENV_EDIT, LLEnvironment::TRANSITION_INSTANT);      LLEnvironment::instance().updateEnvironment(LLEnvironment::TRANSITION_INSTANT); @@ -925,7 +925,7 @@ void LLFloaterEditExtDayCycle::loadLiveEnvironment(LLEnvironment::EnvSelection_t          if (day)          { -            mEditDay = day->buildClone(); +            mEditDay = day->buildDeepCloneAndUncompress();              break;          }      } diff --git a/indra/newview/llsettingspicker.cpp b/indra/newview/llsettingspicker.cpp index fedd3f387c..c882e7dbbb 100644 --- a/indra/newview/llsettingspicker.cpp +++ b/indra/newview/llsettingspicker.cpp @@ -63,7 +63,8 @@ LLFloaterSettingsPicker::LLFloaterSettingsPicker(LLView * owner, LLUUID initial_      mLabel(label),      mActive(true),      mContextConeOpacity(0.0f), -    mSettingAssetID(initial_asset_id) +    mSettingAssetID(initial_asset_id), +    mImmediateFilterPermMask(PERM_NONE)  {      buildFromFile(FLOATER_DEFINITION_XML);      setCanMinimize(FALSE); diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp index a9e801a2e1..55b4b88c7d 100644 --- a/indra/newview/llsettingsvo.cpp +++ b/indra/newview/llsettingsvo.cpp @@ -1131,6 +1131,30 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildClone()      return dayp;  } +LLSettingsDay::ptr_t LLSettingsVODay::buildDeepCloneAndUncompress() +{ +    // no need for SETTING_TRACKS or SETTING_FRAMES, so take base LLSD +    LLSD settings = llsd_clone(mSettings); + +    LLSettingsDay::ptr_t day_clone = std::make_shared<LLSettingsVODay>(settings); + +    for (S32 i = 0; i < LLSettingsDay::TRACK_MAX; ++i) +    { +        LLSettingsDay::CycleTrack_t track = getCycleTrack(i); +        LLSettingsDay::CycleTrack_t::iterator iter = track.begin(); +        while (iter != track.end()) +        { +            // 'Unpack', usually for editing +            // - frames 'share' settings multiple times +            // - settings can reuse LLSDs they were initialized from +            // We do not want for edited frame to change multiple frames in same track, so do a clone +            day_clone->setSettingsAtKeyframe(iter->second->buildDerivedClone(), iter->first, i); +            iter++; +        } +    } +    return day_clone; +} +  LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday)  {      CycleTrack_t &trackwater = pday->getCycleTrack(TRACK_WATER); diff --git a/indra/newview/llsettingsvo.h b/indra/newview/llsettingsvo.h index 789739e5af..65aba42fbe 100644 --- a/indra/newview/llsettingsvo.h +++ b/indra/newview/llsettingsvo.h @@ -159,6 +159,7 @@ public:      static ptr_t    buildFromEnvironmentMessage(LLSD settings);      static void     buildFromOtherSetting(LLSettingsBase::ptr_t settings, asset_built_fn cb);      virtual ptr_t   buildClone() override; +    virtual ptr_t   buildDeepCloneAndUncompress();      static LLSD     convertToLegacy(const ptr_t &);  | 
