void Scene::setActiveCamera(Camera* camera) { // Make sure we don't release the camera if the same camera is set twice. if (_activeCamera != camera) { AudioListener* audioListener = AudioListener::getInstance(); if (_activeCamera) { // Unbind the active camera from the audio listener if (audioListener && (audioListener->getCamera() == _activeCamera)) { audioListener->setCamera(NULL); } SAFE_RELEASE(_activeCamera); } _activeCamera = camera; if (_activeCamera) { _activeCamera->addRef(); if (audioListener && _bindAudioListenerToCamera) { audioListener->setCamera(_activeCamera); } } } }
Scene::~Scene() { // Unbind our active camera from the audio listener if (_activeCamera) { AudioListener* audioListener = AudioListener::getInstance(); if (audioListener && (audioListener->getCamera() == _activeCamera)) { audioListener->setCamera(NULL); } SAFE_RELEASE(_activeCamera); } // Remove all nodes from the scene removeAllNodes(); }
Scene::~Scene() { // Unbind our active camera from the audio listener if (_activeCamera) { AudioListener* audioListener = AudioListener::getInstance(); if (audioListener && (audioListener->getCamera() == _activeCamera)) { audioListener->setCamera(NULL); } SAFE_RELEASE(_activeCamera); } // Remove all nodes from the scene removeAllNodes(); // Remove the scene from global list std::vector<Scene*>::iterator itr = std::find(__sceneList.begin(), __sceneList.end(), this); if (itr != __sceneList.end()) __sceneList.erase(itr); }