diff options
author | glassmancody.info <glassmancody.info@gmail.com> | 2022-01-04 14:10:39 -0800 |
---|---|---|
committer | glassmancody.info <glassmancody.info@gmail.com> | 2022-01-04 14:10:39 -0800 |
commit | 909aa43ba12b1d06cf822783215ac84ee6a3730d (patch) | |
tree | 32258759838a21f434d2ef751081237d87d8aca5 | |
parent | b6572fbe42e4c560c7beefe6544b3320a5cd70f9 (diff) |
update sky particle node correctly
-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; }; |