DeferredShadingSystem::~DeferredShadingSystem() { // Delete mini lights for(std::set<MLight*>::iterator i=mLights.begin(); i!=mLights.end(); ++i) { delete (*i); } // Delete the ambient light delete mAmbientLight; if (mCurrentMode==DSM_SHOWLIT && mInstance[mCurrentMode]->getEnabled()) { RenderTarget* renderTarget = mInstance[mCurrentMode]->getRenderTarget("mrt_output"); assert(renderTarget); LogManager::getSingleton().logMessage("Removing Listener from:"); LogManager::getSingleton().logMessage(renderTarget->getName()); renderTarget->removeListener(this); } CompositorChain *chain = CompositorManager::getSingleton().getCompositorChain(mViewport); for(int i=0; i<DSM_COUNT; ++i) chain->_removeInstance(mInstance[i]); delete mLightMaterialGenerator; }
DeferredShadingSystem::~DeferredShadingSystem() { CompositorChain *chain = CompositorManager::getSingleton().getCompositorChain(mViewport); for(int i=0; i<DSM_COUNT; ++i) chain->_removeInstance(mInstance[i]); CompositorManager::getSingleton().removeCompositorChain(mViewport); }
DeferredShadingSystem::~DeferredShadingSystem() { CompositorChain *chain = CompositorManager::getSingleton().getCompositorChain(mViewport); for(int i=0; i<DSM_COUNT; ++i) chain->_removeInstance(mInstance[i]); CompositorManager::getSingleton().removeCompositorChain(mViewport); Ogre::CompositorManager& compMgr = Ogre::CompositorManager::getSingleton(); CompositorLogicMap::const_iterator itor = mCompositorLogics.begin(); CompositorLogicMap::const_iterator end = mCompositorLogics.end(); while( itor != end ) { compMgr.unregisterCompositorLogic( itor->first ); delete itor->second; ++itor; } mCompositorLogics.clear(); }