1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-03-31 14:36:39 +00:00

Do not lose existing callbacks for sky node

This commit is contained in:
Andrei Kortunov 2023-06-22 15:18:53 +04:00
parent 7d6c33d283
commit aad7c5066d
2 changed files with 5 additions and 2 deletions

View file

@ -147,7 +147,8 @@ namespace MWRender
void PrecipitationOccluder::enable() void PrecipitationOccluder::enable()
{ {
mSkyNode->setCullCallback(new PrecipitationOcclusionUpdater(mDepthTexture)); mSkyCullCallback = new PrecipitationOcclusionUpdater(mDepthTexture);
mSkyNode->addCullCallback(mSkyCullCallback);
mCamera->setCullCallback(new DepthCameraUpdater); mCamera->setCullCallback(new DepthCameraUpdater);
mRootNode->removeChild(mCamera); mRootNode->removeChild(mCamera);
@ -156,8 +157,9 @@ namespace MWRender
void PrecipitationOccluder::disable() void PrecipitationOccluder::disable()
{ {
mSkyNode->setCullCallback(nullptr); mSkyNode->removeCullCallback(mSkyCullCallback);
mCamera->setCullCallback(nullptr); mCamera->setCullCallback(nullptr);
mSkyCullCallback = nullptr;
mRootNode->removeChild(mCamera); mRootNode->removeChild(mCamera);
} }

View file

@ -23,6 +23,7 @@ namespace MWRender
osg::Group* mSkyNode; osg::Group* mSkyNode;
osg::Group* mSceneNode; osg::Group* mSceneNode;
osg::Group* mRootNode; osg::Group* mRootNode;
osg::ref_ptr<osg::Callback> mSkyCullCallback;
osg::ref_ptr<osg::Camera> mCamera; osg::ref_ptr<osg::Camera> mCamera;
osg::ref_ptr<osg::Camera> mSceneCamera; osg::ref_ptr<osg::Camera> mSceneCamera;
osg::ref_ptr<osg::Texture2D> mDepthTexture; osg::ref_ptr<osg::Texture2D> mDepthTexture;