//----------------------------------------------------------------------------------- void CompositorDemo_FrameListener::registerCompositors(void) { Ogre::Viewport *vp = mMain->getRenderWindow()->getViewport(0); mCompositorSelectorViewManager = new ItemSelectorViewManager("CompositorSelectorWin"); // tell view manager to notify us when an item changes selection state mCompositorSelectorViewManager->setItemSelectorController(this); //iterate through Compositor Managers resources and add name keys ast Item selectors to Compositor selector view manager Ogre::CompositorManager::ResourceMapIterator resourceIterator = Ogre::CompositorManager::getSingleton().getResourceIterator(); // add all compositor resources to the view container while (resourceIterator.hasMoreElements()) { Ogre::ResourcePtr resource = resourceIterator.getNext(); const Ogre::String& compositorName = resource->getName(); // Don't add base Ogre/Scene compositor to view if (compositorName == "Ogre/Scene") continue; // Don't add the deferred shading compositors, thats a different demo. if (Ogre::StringUtil::startsWith(compositorName, "DeferredShading", false)) continue; mCompositorSelectorViewManager->addItemSelector(compositorName); int addPosition = -1; if (compositorName == "HDR") { // HDR must be first in the chain addPosition = 0; } try { Ogre::CompositorInstance *instance = Ogre::CompositorManager::getSingleton().addCompositor(vp, compositorName, addPosition); Ogre::CompositorManager::getSingleton().setCompositorEnabled(vp, compositorName, false); } catch (...) { } } }
//----------------------------------------------------------------------------------- void Sample_Compositor::registerCompositors(void) { Ogre::Viewport *vp = mViewport; //iterate through Compositor Managers resources and add name keys to menu Ogre::CompositorManager::ResourceMapIterator resourceIterator = Ogre::CompositorManager::getSingleton().getResourceIterator(); // add all compositor resources to the view container while (resourceIterator.hasMoreElements()) { Ogre::ResourcePtr resource = resourceIterator.getNext(); const Ogre::String& compositorName = resource->getName(); // Don't add base Ogre/Scene compositor to view if (compositorName == "Ogre/Scene") continue; // Don't add the deferred shading compositors, thats a different demo. if (Ogre::StringUtil::startsWith(compositorName, "DeferredShading", false)) continue; mCompositorNames.push_back(compositorName); int addPosition = -1; if (compositorName == "HDR") { // HDR must be first in the chain addPosition = 0; } try { Ogre::CompositorManager::getSingleton().addCompositor(vp, compositorName, addPosition); Ogre::CompositorManager::getSingleton().setCompositorEnabled(vp, compositorName, false); } catch (...) { } } mNumCompositorPages = (mCompositorNames.size() / COMPOSITORS_PER_PAGE) + ((mCompositorNames.size() % COMPOSITORS_PER_PAGE == 0) ? 0 : 1); }