From 7989df1c3623f9402248aa74bdec20dff6d78fd1 Mon Sep 17 00:00:00 2001 From: Graham Linden <graham@lindenlab.com> Date: Thu, 21 Feb 2019 17:20:53 -0800 Subject: Merge --- indra/newview/app_settings/settings.xml | 2 +- indra/newview/lldrawpoolwater.cpp | 2 -- indra/newview/llviewershadermgr.cpp | 8 ++++---- indra/newview/pipeline.h | 3 ++- 4 files changed, 7 insertions(+), 8 deletions(-) (limited to 'indra') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index bb5ff19176..f591782694 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8763,7 +8763,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>0</integer> + <integer>1</integer> </map> <key>RenderLocalLights</key> <map> diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index b2f0d956c4..f5a41fd5f6 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -619,8 +619,6 @@ void LLDrawPoolWater::shade2(bool edge, LLGLSLShader* shader, const LLColor3& li { LLGLDisable cullface(GL_CULL_FACE); - - sNeedsReflectionUpdate = TRUE; sNeedsDistortionUpdate = TRUE; diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index 8a69376fe1..a81b20747d 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -3400,9 +3400,9 @@ BOOL LLViewerShaderMgr::loadShadersObject() BOOL LLViewerShaderMgr::loadShadersAvatar() { - BOOL success = TRUE; + BOOL success = TRUE; - if (mShaderLevel[SHADER_AVATAR] == 0) + if (mShaderLevel[SHADER_AVATAR] == 0) { gAvatarProgram.unload(); gAvatarWaterProgram.unload(); @@ -3411,7 +3411,7 @@ BOOL LLViewerShaderMgr::loadShadersAvatar() return TRUE; } - if (success) + if (success) { gAvatarProgram.mName = "Avatar Shader"; gAvatarProgram.mFeatures.hasSkinning = true; @@ -3455,7 +3455,7 @@ BOOL LLViewerShaderMgr::loadShadersAvatar() } } - if (success) + if (success) { gAvatarPickProgram.mName = "Avatar Pick Shader"; gAvatarPickProgram.mFeatures.hasSkinning = true; diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 5be6b73cc4..b3aa48e39f 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -281,7 +281,8 @@ public: void unbindDeferredShader(LLGLSLShader& shader); void renderDeferredLighting(LLRenderTarget* light_target); - + void postDeferredGammaCorrect(LLRenderTarget* screen_target); + void generateWaterReflection(LLCamera& camera); void generateSunShadow(LLCamera& camera); LLRenderTarget* getShadowTarget(U32 i); -- cgit v1.2.3 From 645651813520c29c9f898ad531e0b3de65f33b67 Mon Sep 17 00:00:00 2001 From: andreykproductengine <andreykproductengine@lindenlab.com> Date: Mon, 25 Feb 2019 16:51:29 +0200 Subject: SL-1945 Autoselection and some crash fixing --- indra/newview/llfloatereditextdaycycle.cpp | 7 ++++++- indra/newview/lltrackpicker.cpp | 10 +++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index 18f22bf2d2..f712901795 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -1322,6 +1322,11 @@ void LLFloaterEditExtDayCycle::updateSlider() mFramesSlider->clear(); mSliderKeyMap.clear(); + if (!mEditDay) + { + return; + } + LLSettingsDay::CycleTrack_t track = mEditDay->getCycleTrack(mCurrentTrack); for (auto &track_frame : track) { @@ -1723,7 +1728,7 @@ bool LLFloaterEditExtDayCycle::isRemovingFrameAllowed() bool LLFloaterEditExtDayCycle::isAddingFrameAllowed() { - if (!mFramesSlider->getCurSlider().empty()) return false; + if (!mFramesSlider->getCurSlider().empty() || !mEditDay) return false; LLSettingsBase::Seconds frame(mTimeSlider->getCurSliderValue()); if ((mEditDay->getSettingsNearKeyframe(frame, mCurrentTrack, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR)).second) diff --git a/indra/newview/lltrackpicker.cpp b/indra/newview/lltrackpicker.cpp index bc918f4bd7..15bc591b37 100644 --- a/indra/newview/lltrackpicker.cpp +++ b/indra/newview/lltrackpicker.cpp @@ -81,13 +81,21 @@ void LLFloaterTrackPicker::showPicker(const LLSD &args) LLSD::array_const_iterator iter; LLSD::array_const_iterator end = args.endArray(); + bool select_item = true; for (iter = args.beginArray(); iter != end; ++iter) { S32 track_id = (*iter)["id"].asInteger(); bool can_enable = (*iter)["enabled"].asBoolean(); - LLView *view = getChild<LLCheckBoxCtrl>(RDO_TRACK_PREFIX + llformat("%d", track_id), true); + LLCheckBoxCtrl *view = getChild<LLCheckBoxCtrl>(RDO_TRACK_PREFIX + llformat("%d", track_id), true); view->setEnabled(can_enable); view->setLabelArg("[ALT]", (*iter).has("altitude") ? ((*iter)["altitude"].asString() + "m") : " "); + + // Mark first avaliable item as selected + if (can_enable && select_item) + { + select_item = false; + view->set(TRUE); + } } openFloater(getKey()); -- cgit v1.2.3 From 5cd188840d968731047aa89459ff63f605709c6e Mon Sep 17 00:00:00 2001 From: Graham Linden <graham@lindenlab.com> Date: Mon, 25 Feb 2019 12:14:59 -0800 Subject: SL-9806 Remove fade effect on sun disc as it nears horizon (stars poke through). --- indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl | 3 ++- indra/newview/app_settings/shaders/class1/windlight/sunDiscF.glsl | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl index 5bb2020971..1fb337498c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/sunDiscF.glsl @@ -52,7 +52,8 @@ void main() c.rgb = fullbrightAtmosTransport(c.rgb); c.rgb = fullbrightScaleSoftClip(c.rgb); - c.a *= sun_fade; + // SL-9806 stars poke through + //c.a *= sun_fade; frag_data[0] = c; frag_data[1] = vec4(0.0f); diff --git a/indra/newview/app_settings/shaders/class1/windlight/sunDiscF.glsl b/indra/newview/app_settings/shaders/class1/windlight/sunDiscF.glsl index 668379164d..d85ce004a5 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/sunDiscF.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/sunDiscF.glsl @@ -47,7 +47,9 @@ void main() vec4 sunA = texture2D(diffuseMap, vary_texcoord0.xy); vec4 sunB = texture2D(altDiffuseMap, vary_texcoord0.xy); vec4 c = mix(sunA, sunB, blend_factor); - c.a *= sun_fade; + +// SL-9806 stars poke through +// c.a *= sun_fade; c.rgb = pow(c.rgb, vec3(0.7f)); c.rgb = fullbrightAtmosTransport(c.rgb); -- cgit v1.2.3 From 4879438b14612c6a4e8fb5a3b61dd793b7591ae1 Mon Sep 17 00:00:00 2001 From: Graham Linden <graham@lindenlab.com> Date: Mon, 25 Feb 2019 12:25:02 -0800 Subject: Disable nSight debug by default (breaks snapshots). --- indra/newview/app_settings/settings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index f591782694..bb5ff19176 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8763,7 +8763,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <integer>1</integer> + <integer>0</integer> </map> <key>RenderLocalLights</key> <map> -- cgit v1.2.3 From c42a364841f68e08bccb2ee288f34c8c3f4be733 Mon Sep 17 00:00:00 2001 From: Rider Linden <rider@lindenlab.com> Date: Mon, 25 Feb 2019 14:23:46 -0800 Subject: SL-10165: Using Load Sky/Water when over an existing keyframe replaces the old frame. --- indra/newview/llfloatereditextdaycycle.cpp | 31 ++++++++++++++++++++++-------- indra/newview/llfloatereditextdaycycle.h | 5 +++-- 2 files changed, 26 insertions(+), 10 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index 18f22bf2d2..f81b2177a8 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -1368,7 +1368,7 @@ void LLFloaterEditExtDayCycle::updateTimeAndLabel() // Update blender here: } -void LLFloaterEditExtDayCycle::addSliderFrame(const F32 frame, const LLSettingsBase::ptr_t &setting, bool update_ui) +void LLFloaterEditExtDayCycle::addSliderFrame(F32 frame, const LLSettingsBase::ptr_t &setting, bool update_ui) { // multi slider distinguishes elements by key/name in string format // store names to map to be able to recall dependencies @@ -1408,6 +1408,19 @@ void LLFloaterEditExtDayCycle::removeCurrentSliderFrame() updateTabs(); } +void LLFloaterEditExtDayCycle::removeSliderFrame(F32 frame) +{ + keymap_t::iterator it = std::find_if(mSliderKeyMap.begin(), mSliderKeyMap.end(), + [frame](const keymap_t::value_type &value) { return fabs(value.second.mFrame - frame) < LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR; }); + + if (it != mSliderKeyMap.end()) + { + mFramesSlider->deleteSlider((*it).first); + mSliderKeyMap.erase(it); + } + +} + //------------------------------------------------------------------------- LLFloaterEditExtDayCycle::connection_t LLFloaterEditExtDayCycle::setEditCommitSignal(LLFloaterEditExtDayCycle::edit_commit_signal_t::slot_type cb) @@ -1997,18 +2010,20 @@ void LLFloaterEditExtDayCycle::onAssetLoadedForInsertion(LLUUID item_id, LLUUID } else { - // load single frame - - if ((mEditDay->getSettingsNearKeyframe(frame, dest_track, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR)).second) - { - LL_WARNS("ENVDAYEDIT") << "Attempt to add new frame too close to existing frame." << LL_ENDL; - return; - } if (!mFramesSlider->canAddSliders()) { LL_WARNS("ENVDAYEDIT") << "Attempt to add new frame when slider is full." << LL_ENDL; return; } + + // load or replace single frame + LLSettingsDay::CycleTrack_t::value_type nearest = mEditDay->getSettingsNearKeyframe(frame, dest_track, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR); + if (nearest.first != LLSettingsDay::INVALID_TRACKPOS) + { // There is already a frame near the target location. Remove it so we can put the new one in its place. + mEditDay->removeTrackKeyframe(dest_track, nearest.first); + removeSliderFrame(nearest.first); + } + // Don't forget to clone (we might reuse/load it couple times) if (settings->getSettingsType() == "sky") { diff --git a/indra/newview/llfloatereditextdaycycle.h b/indra/newview/llfloatereditextdaycycle.h index 311bbd52dc..c271f15840 100644 --- a/indra/newview/llfloatereditextdaycycle.h +++ b/indra/newview/llfloatereditextdaycycle.h @@ -144,8 +144,9 @@ private: void updateLabels(); void updateSlider(); //generate sliders from current track void updateTimeAndLabel(); - void addSliderFrame(const F32 frame, const LLSettingsBase::ptr_t &setting, bool update_ui = true); - void removeCurrentSliderFrame(); + void addSliderFrame(F32 frame, const LLSettingsBase::ptr_t &setting, bool update_ui = true); + void removeCurrentSliderFrame(); + void removeSliderFrame(F32 frame); void loadInventoryItem(const LLUUID &inventoryId); void onAssetLoaded(LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status); -- cgit v1.2.3 From 48d1facd90e4112d58b249e0cbca354c81f18764 Mon Sep 17 00:00:00 2001 From: andreykproductengine <andreykproductengine@lindenlab.com> Date: Tue, 26 Feb 2019 15:22:00 +0200 Subject: SL-10635 Crash when loading day cycle from asset --- indra/newview/llfloatereditextdaycycle.cpp | 76 +++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 22 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index a64a3d46ff..3f2a89be88 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -555,7 +555,11 @@ void LLFloaterEditExtDayCycle::setEditName(const std::string &name) /* virtual */ BOOL LLFloaterEditExtDayCycle::handleKeyUp(KEY key, MASK mask, BOOL called_from_parent) { - if (mask == MASK_SHIFT && mShiftCopyEnabled) + if (!mEditDay) + { + mShiftCopyEnabled = false; + } + else if (mask == MASK_SHIFT && mShiftCopyEnabled) { mShiftCopyEnabled = false; std::string curslider = mFramesSlider->getCurSlider(); @@ -770,6 +774,11 @@ void LLFloaterEditExtDayCycle::onAddFrame() { LLSettingsBase::Seconds frame(mTimeSlider->getCurSliderValue()); LLSettingsBase::ptr_t setting; + if (!mEditDay) + { + LL_WARNS("ENVDAYEDIT") << "Attempt to add new frame while waiting for day(asset) to load." << LL_ENDL; + return; + } if ((mEditDay->getSettingsNearKeyframe(frame, mCurrentTrack, LLSettingsDay::DEFAULT_FRAME_SLOP_FACTOR)).second) { LL_WARNS("ENVDAYEDIT") << "Attempt to add new frame too close to existing frame." << LL_ENDL; @@ -815,6 +824,11 @@ void LLFloaterEditExtDayCycle::onRemoveFrame() void LLFloaterEditExtDayCycle::onCloneTrack() { + if (!mEditDay) + { + LL_WARNS("ENVDAYEDIT") << "Attempt to copy track while waiting for day(asset) to load." << LL_ENDL; + return; + } const LLEnvironment::altitude_list_t &altitudes = LLEnvironment::instance().getRegionAltitudes(); bool use_altitudes = altitudes.size() > 0 && ((mEditContext == CONTEXT_PARCEL) || (mEditContext == CONTEXT_REGION)); @@ -865,6 +879,12 @@ void LLFloaterEditExtDayCycle::onLoadTrack() void LLFloaterEditExtDayCycle::onClearTrack() { + if (!mEditDay) + { + LL_WARNS("ENVDAYEDIT") << "Attempt to clear track while waiting for day(asset) to load." << LL_ENDL; + return; + } + if (mCurrentTrack > 1) mEditDay->getCycleTrack(mCurrentTrack).clear(); else @@ -887,6 +907,12 @@ void LLFloaterEditExtDayCycle::onClearTrack() void LLFloaterEditExtDayCycle::onCommitName(class LLLineEditor* caller, void* user_data) { + if (!mEditDay) + { + LL_WARNS("ENVDAYEDIT") << "Attempt to rename day while waiting for day(asset) to load." << LL_ENDL; + return; + } + mEditDay->setName(caller->getText()); } @@ -1274,37 +1300,36 @@ void LLFloaterEditExtDayCycle::updateButtons() // This logic appears to work in reverse, the add frame button // is only enabled when you're on an existing frame and disabled // in all the interim positions where you'd want to add a frame... - //LLSettingsBase::Seconds frame(mTimeSlider->getCurSliderValue()); - //LLSettingsBase::ptr_t settings = mEditDay->getSettingsAtKeyframe(frame, mCurrentTrack); - //bool can_add = static_cast<bool>(settings); - //mAddFrameButton->setEnabled(can_add); - //mDeleteFrameButton->setEnabled(!can_add); - mAddFrameButton->setEnabled(!mIsPlaying && isAddingFrameAllowed() && mCanMod); - mDeleteFrameButton->setEnabled(!mIsPlaying && isRemovingFrameAllowed() && mCanMod); - mLoadFrame->setEnabled(!mIsPlaying && mCanMod); + bool can_manipulate = mEditDay && !mIsPlaying && mCanMod; bool can_clone(false); - bool can_load(true); - bool can_clear(true); + bool can_clear(false); - if (mCurrentTrack == 0) + if (can_manipulate) { - can_clone = false; - } - else - { - for (S32 track = 1; track < LLSettingsDay::TRACK_MAX; ++track) + if (mCurrentTrack == 0) + { + can_clone = false; + } + else { - if (track == mCurrentTrack) - continue; - can_clone |= !mEditDay->getCycleTrack(track).empty(); + for (S32 track = 1; track < LLSettingsDay::TRACK_MAX; ++track) + { + if (track == mCurrentTrack) + continue; + can_clone |= !mEditDay->getCycleTrack(track).empty(); + } } + + can_clear = (mCurrentTrack > 1) ? (!mEditDay->getCycleTrack(mCurrentTrack).empty()) : (mEditDay->getCycleTrack(mCurrentTrack).size() > 1); } - can_clear = (mCurrentTrack > 1) ? (!mEditDay->getCycleTrack(mCurrentTrack).empty()) : (mEditDay->getCycleTrack(mCurrentTrack).size() > 1); mCloneTrack->setEnabled(can_clone); - mLoadTrack->setEnabled(can_load); + mLoadTrack->setEnabled(can_manipulate); mClearTrack->setEnabled(can_clear); + mAddFrameButton->setEnabled(can_manipulate && isAddingFrameAllowed()); + mDeleteFrameButton->setEnabled(can_manipulate && isRemovingFrameAllowed()); + mLoadFrame->setEnabled(can_manipulate); // update track buttons bool extended_env = LLEnvironment::instance().isExtendedEnvironmentEnabled(); @@ -1324,6 +1349,7 @@ void LLFloaterEditExtDayCycle::updateSlider() if (!mEditDay) { + // floater is waiting for asset return; } @@ -2067,6 +2093,12 @@ void LLFloaterEditExtDayCycle::onAssetLoadedForInsertion(LLUUID item_id, LLUUID return; } + if (!mEditDay) + { + // day got reset while we were waiting for response + return; + } + LLInventoryItem *inv_item = gInventory.getItem(item_id); if (inv_item && !inv_item->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID())) -- cgit v1.2.3 From 6b9b8a627f5923084bd5c519bd51801cbd3aa568 Mon Sep 17 00:00:00 2001 From: maxim_productengine <mnikolenko@productengine.com> Date: Tue, 26 Feb 2019 15:51:33 +0200 Subject: SL-1945 Autoselection fix --- indra/newview/lltrackpicker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/lltrackpicker.cpp b/indra/newview/lltrackpicker.cpp index 15bc591b37..fe6256a8a9 100644 --- a/indra/newview/lltrackpicker.cpp +++ b/indra/newview/lltrackpicker.cpp @@ -94,7 +94,7 @@ void LLFloaterTrackPicker::showPicker(const LLSD &args) if (can_enable && select_item) { select_item = false; - view->set(TRUE); + getChild<LLRadioGroup>(RDO_TRACK_SELECTION, true)->setSelectedByValue(LLSD(track_id), TRUE); } } -- cgit v1.2.3