diff --git a/apps/openmw/mwrender/refraction.cpp b/apps/openmw/mwrender/refraction.cpp index 7d728b721d..164380866a 100644 --- a/apps/openmw/mwrender/refraction.cpp +++ b/apps/openmw/mwrender/refraction.cpp @@ -50,7 +50,8 @@ namespace MWRender void Refraction::preRenderTargetUpdate(const Ogre::RenderTargetEvent& evt) { - mParentCamera->getParentSceneNode ()->needUpdate (); + if (mParentCamera->isAttached()) + mParentCamera->getParentSceneNode ()->needUpdate (); mCamera->setOrientation(mParentCamera->getDerivedOrientation()); mCamera->setPosition(mParentCamera->getDerivedPosition()); mCamera->setNearClipDistance(mParentCamera->getNearClipDistance()); diff --git a/apps/openmw/mwrender/water.cpp b/apps/openmw/mwrender/water.cpp index 752da30df8..fd790b363a 100644 --- a/apps/openmw/mwrender/water.cpp +++ b/apps/openmw/mwrender/water.cpp @@ -74,7 +74,8 @@ CubeReflection::~CubeReflection () void CubeReflection::update () { - mParentCamera->getParentSceneNode ()->needUpdate (); + if (mParentCamera->isAttached()) + mParentCamera->getParentSceneNode ()->needUpdate (); mCamera->setPosition(mParentCamera->getDerivedPosition()); } @@ -133,7 +134,8 @@ void PlaneReflection::renderQueueEnded (Ogre::uint8 queueGroupId, const Ogre::St void PlaneReflection::preRenderTargetUpdate(const Ogre::RenderTargetEvent& evt) { - mParentCamera->getParentSceneNode ()->needUpdate (); + if (mParentCamera->isAttached()) + mParentCamera->getParentSceneNode ()->needUpdate (); mCamera->setOrientation(mParentCamera->getDerivedOrientation()); mCamera->setPosition(mParentCamera->getDerivedPosition()); mCamera->setNearClipDistance(mParentCamera->getNearClipDistance());