void Menu::Show() { using namespace gui; using namespace scene; // draw overlay menu IrrlichtDevice* device = Device::Instance().IrrlichtDevice(); gui::IGUIEnvironment* guiEnvironment = device->getGUIEnvironment(); // change event receiver irr::IEventReceiver* eventReceiverBackup = device->getEventReceiver(); device->setEventReceiver(this); guiEnvironment->addButton(core::recti(10,10,100,30), 0, GUI_ID_CONTINUE, L"Continue"); guiEnvironment->addButton(core::recti(10,40,100,60), 0, GUI_ID_EXIT, L"Exit"); video::IVideoDriver* driver = Device::Instance().Driver(); ISceneManager* sceneManager = Device::Instance().SceneManager(); isShowing_ = true; do { driver->beginScene(true, true, video::SColor(255,0,0,0)); sceneManager->drawAll(); guiEnvironment->drawAll(); driver->endScene(); }while(device->run() && isShowing_); // return event receiver device->setEventReceiver(eventReceiverBackup); }