From 49f9195f4247b564186730e0cc95ec199e05127b Mon Sep 17 00:00:00 2001 From: Kitty Barnett <develop@catznip.com> Date: Sat, 24 Apr 2021 18:51:07 +0200 Subject: [PATCH] [FIXED] LLVisualEffectParams::step(bool isLast) will always be called with isLast == false (fixes RLVa spheres issues when AA is disabled) --- indra/newview/llvisualeffect.cpp | 7 ++++--- indra/newview/llvisualeffect.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/indra/newview/llvisualeffect.cpp b/indra/newview/llvisualeffect.cpp index af68a574136..efa0cbf2b11 100644 --- a/indra/newview/llvisualeffect.cpp +++ b/indra/newview/llvisualeffect.cpp @@ -114,11 +114,12 @@ void LLVfxManager::runEffect(EVisualEffect eCode, LLVisualEffectParams* pParams) auto itEffect = boost::make_filter_iterator(pred, m_Effects.begin(), m_Effects.end()), endEffect = boost::make_filter_iterator(pred, m_Effects.end(), m_Effects.end()); - for (; itEffect != endEffect; ++itEffect) + while (itEffect != endEffect) { + LLVisualEffect* pEffect = *itEffect; if (pParams) - pParams->step(itEffect == endEffect); - (*itEffect)->run(pParams); + pParams->step(++itEffect == endEffect); + pEffect->run(pParams); } } diff --git a/indra/newview/llvisualeffect.h b/indra/newview/llvisualeffect.h index 6419e26b297..69387d49af8 100644 --- a/indra/newview/llvisualeffect.h +++ b/indra/newview/llvisualeffect.h @@ -163,6 +163,7 @@ class LLVfxManager : public LLSingleton<LLVfxManager> template<typename T> T* getEffect(const LLUUID& idEffect) const { return dynamic_cast<T*>(getEffect(idEffect)); } LLVisualEffect* getEffect(EVisualEffect eCode) const; template<typename T> T* getEffect(EVisualEffect eCode) const { return dynamic_cast<T*>(getEffect(eCode)); } + bool hasEffect(EVisualEffect eCode) const { return getEffect(eCode); } bool removeEffect(const LLUUID& idEffect); void runEffect(EVisualEffect eCode, LLVisualEffectParams* pParams = nullptr); void runEffect(EVisualEffectType eType, LLVisualEffectParams* pParams = nullptr); -- GitLab