diff options
author | psi29a <psi29a@gmail.com> | 2022-01-05 08:37:27 +0000 |
---|---|---|
committer | psi29a <psi29a@gmail.com> | 2022-01-05 08:37:27 +0000 |
commit | d8cc08a7a049319f184e4a08b41203f7e83eba4f (patch) | |
tree | 217d64b1455147e176c4425a106739ee6a244897 | |
parent | c3d3535ffd471f03cdc48939d7ab3fca496aff70 (diff) | |
parent | 909aa43ba12b1d06cf822783215ac84ee6a3730d (diff) |
Merge branch 'ripple_fix' into 'master'
Fix persistent ripples (#6531)
Closes #6531
See merge request OpenMW/openmw!1535
-rw-r--r-- | apps/openmw/mwrender/sky.cpp | 7 | ||||
-rw-r--r-- | apps/openmw/mwrender/sky.hpp | 1 |
2 files changed, 5 insertions, 3 deletions
diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp index c0a071c062..7b124b018c 100644 --- a/apps/openmw/mwrender/sky.cpp +++ b/apps/openmw/mwrender/sky.cpp @@ -248,6 +248,7 @@ namespace MWRender , mEnabled(true) , mSunEnabled(true) , mPrecipitationAlpha(0.f) + , mDirtyParticlesEffect(false) { osg::ref_ptr<CameraRelativeTransform> skyroot = new CameraRelativeTransform; skyroot->setName("Sky Root"); @@ -537,8 +538,7 @@ namespace MWRender if (!enabled && mParticleNode && mParticleEffect) { mCurrentParticleEffect.clear(); - mParticleNode->removeChild(mParticleEffect); - mParticleEffect = nullptr; + mDirtyParticlesEffect = true; } mEnabled = enabled; @@ -610,8 +610,9 @@ namespace MWRender if (mIsStorm) mStormDirection = weather.mStormDirection; - if (mCurrentParticleEffect != weather.mParticleEffect) + if (mDirtyParticlesEffect || (mCurrentParticleEffect != weather.mParticleEffect)) { + mDirtyParticlesEffect = false; mCurrentParticleEffect = weather.mParticleEffect; // cleanup old particles diff --git a/apps/openmw/mwrender/sky.hpp b/apps/openmw/mwrender/sky.hpp index 1a30633886..e2ceae45f4 100644 --- a/apps/openmw/mwrender/sky.hpp +++ b/apps/openmw/mwrender/sky.hpp @@ -186,6 +186,7 @@ namespace MWRender bool mSunEnabled; float mPrecipitationAlpha; + bool mDirtyParticlesEffect; osg::Vec4f mMoonScriptColor; }; |