void EC_OgreCamera::SetActive() { if (renderer_.expired()) return; RendererPtr renderer = renderer_.lock(); renderer->SetCurrentCamera(camera_); }
EC_OgreCamera::~EC_OgreCamera() { if (renderer_.expired()) return; DetachCamera(); if (camera_) { RendererPtr renderer = renderer_.lock(); if (renderer->GetCurrentCamera() == camera_) renderer->SetCurrentCamera(0); Ogre::SceneManager* scene_mgr = renderer->GetSceneManager(); scene_mgr->destroyCamera(camera_); camera_ = 0; } }