diff options
author | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-04-11 21:59:38 +0200 |
---|---|---|
committer | Ansariel <ansariel.hiller@phoenixviewer.com> | 2024-04-11 21:59:38 +0200 |
commit | d0102af56d3b1d5b1d9bf3c8eb9aeea77028b70e (patch) | |
tree | e31cee85f651a874c4b6edc7491efa0cb2ec93d5 /indra/newview/pipeline.cpp | |
parent | 17e1f3692c5c1e9cbc6ba6895b312a8baae9aec2 (diff) | |
parent | da9a1dcb55548a249ff7a1255f3e518696b81245 (diff) |
Merge branch 'main' of https://github.com/secondlife/viewer into DRTVWR-600-maint-A
# Conflicts:
# indra/llcommon/llapp.cpp
# indra/llcommon/llapp.h
# indra/llimage/llimageworker.cpp
# indra/llui/llcontainerview.cpp
# indra/llui/llcontainerview.h
# indra/llui/llkeywords.cpp
# indra/llui/lltabcontainer.cpp
# indra/llui/lltextbase.cpp
# indra/newview/llappviewer.cpp
# indra/newview/llfavoritesbar.cpp
# indra/newview/llfavoritesbar.h
# indra/newview/llfloaterimnearbychathandler.cpp
# indra/newview/llfloaterpreference.cpp
# indra/newview/llhudnametag.h
# indra/newview/llinventorypanel.cpp
# indra/newview/llinventorypanel.h
# indra/newview/llmeshrepository.cpp
# indra/newview/lloutfitgallery.cpp
# indra/newview/lloutfitslist.cpp
# indra/newview/llpaneleditwearable.cpp
# indra/newview/llpanelprofilepicks.cpp
# indra/newview/llpanelvoicedevicesettings.h
# indra/newview/llpreviewscript.cpp
# indra/newview/llpreviewscript.h
# indra/newview/llselectmgr.cpp
# indra/newview/lltranslate.cpp
# indra/newview/llviewerassetupload.cpp
# indra/newview/llviewermessage.cpp
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r-- | indra/newview/pipeline.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 989db6179f..53b879286a 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -1666,17 +1666,23 @@ void LLPipeline::unlinkDrawable(LLDrawable *drawable) void LLPipeline::removeMutedAVsLights(LLVOAvatar* muted_avatar) { LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE; - for (light_set_t::iterator iter = gPipeline.mNearbyLights.begin(); - iter != gPipeline.mNearbyLights.end(); iter++) - { - const LLViewerObject *vobj = iter->drawable->getVObj(); - if (vobj && vobj->getAvatar() - && vobj->isAttachment() && vobj->getAvatar() == muted_avatar) - { - gPipeline.mLights.erase(iter->drawable); - gPipeline.mNearbyLights.erase(iter); - } - } + light_set_t::iterator iter = gPipeline.mNearbyLights.begin(); + while (iter != gPipeline.mNearbyLights.end()) + { + const LLViewerObject* vobj = iter->drawable->getVObj(); + if (vobj + && vobj->getAvatar() + && vobj->isAttachment() + && vobj->getAvatar() == muted_avatar) + { + gPipeline.mLights.erase(iter->drawable); + iter = gPipeline.mNearbyLights.erase(iter); + } + else + { + iter++; + } + } } U32 LLPipeline::addObject(LLViewerObject *vobj) |