mUpdateProxy->GetRootNode().RemoveObserver(*this);
}
- {
- Mutex::ScopedLock lock(mMutex);
- if(mFrameCallbackInterface)
- {
- FrameCallbackInterface::Impl::Get(*mFrameCallbackInterface).DisconnectFromSceneGraphObject();
- }
- }
+ Invalidate();
}
void FrameCallback::ConnectToSceneGraph(UpdateManager& updateManager, TransformManager& transformManager, Node& rootNode)
}
Mutex::ScopedLock lock(mMutex);
- if(mFrameCallbackInterface)
+ if(mFrameCallbackInterface && mValid)
{
Dali::UpdateProxy updateProxy(*mUpdateProxy);
mFrameCallbackInterface->Update(updateProxy, elapsedSeconds);
void FrameCallback::Invalidate()
{
Mutex::ScopedLock lock(mMutex);
- if(mFrameCallbackInterface)
+ if(mFrameCallbackInterface && mValid)
{
FrameCallbackInterface::Impl::Get(*mFrameCallbackInterface).DisconnectFromSceneGraphObject();
- mFrameCallbackInterface = nullptr;
+ mValid = false;
+ // Do not set mFrameCallbackInterface to nullptr as it is used for comparison checks by the comparison operator
}
}