Having almost finished our application, we are going to add compositors to make the application more interesting.
FrameListener
, so we need a member variable containing the viewport:Ogre::Viewport* _viewport;
Booleans
for this task:bool _comp1, _comp2, _comp3;
bool _down1, _down2, _down3;
FrameListener
to take the viewport as a parameter:MyFrameListener(Ogre::RenderWindow* win,Ogre::Camera* cam,Ogre::Viewport* viewport)
_viewport = viewport; _comp1 = false; _comp2 = false; _comp3 = false; _down1 = false; _down2 = false; _down3 = false;
frameStarted
function:if(_Keyboard->isKeyDown(OIS::KC_1) && ! _down1) { _down1 = true; _comp1 = !comp1; Ogre::CompositorManager::getSingleton().setCompositorEnabled(_viewport, "Compositor2", _comp1); }
if(_Keyboard->isKeyDown(OIS::KC_2) && ! _down2) { _down2 = true; _comp2 = !comp2; Ogre::CompositorManager::getSingleton().setCompositorEnabled(_viewport, "Compositor3", _comp2); } if(_Keyboard->isKeyDown(OIS::KC_3) && ! _down3) { _down3 = true; _comp3 = !comp3; Ogre::CompositorManager::getSingleton().setCompositorEnabled(_viewport, "Compositor7", _comp3); }
if(!_Keyboard->isKeyDown(OIS::KC_1)) { _down1 = false; } if(!_Keyboard->isKeyDown(OIS::KC_2)) { _down2 = false; } if(!_Keyboard->isKeyDown(OIS::KC_3)) { _down3 = false; }
startup()
function, add the three compositors to the viewport to the end of the function:Ogre::CompositorManager::getSingleton().addCompositor(viewport, "Compositor2"); Ogre::CompositorManager::getSingleton().addCompositor(viewport, "Compositor3"); Ogre::CompositorManager::getSingleton().addCompositor(viewport, "Compositor7");
FrameListener
to add the viewport pointer as parameter:_listener = new MyFrameListener(window,camera,viewport);
18.117.157.106