#include #include using namespace Ogre; class MyFrameListener : public Ogre::FrameListener { public: MyFrameListener(Ogre::InputReader* ir); virtual bool frameStarted(const Ogre::FrameEvent& evt); private: Ogre::InputReader* mInputReader; }; MyFrameListener::MyFrameListener(InputReader* ir) : mInputReader(ir) {} bool MyFrameListener::frameStarted(const FrameEvent& evt) { mInputReader->capture(); if (mInputReader->isKeyDown(KC_ESCAPE)) return false; return true; } int main() { try { Root* myroot = new Root("plugins.cfg","ogre.cfg","ogre.log"); if(!myroot->restoreConfig()) if (!myroot->showConfigDialog()) return 1; RenderWindow* mywindow = myroot->initialise(true,"LinuxMagazin Beispiel"); ResourceGroupManager::getSingleton().addResourceLocation("/ogrenew/Samples/Media/materials/programs", "FileSystem"); ResourceGroupManager::getSingleton().addResourceLocation("/ogrenew/Samples/Media/materials/scripts", "FileSystem"); ResourceGroupManager::getSingleton().addResourceLocation("/ogrenew/Samples/Media/materials/textures", "FileSystem"); ResourceGroupManager::getSingleton().addResourceLocation("/ogrenew/Samples/Media/models", "FileSystem"); ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); SceneManager* myscenemanager = myroot->getSceneManager(ST_GENERIC); Entity *robent = myscenemanager->createEntity("Roboter1", "robot.mesh"); SceneNode* robnode = myscenemanager->getRootSceneNode()->createChildSceneNode("Roboter1Node", Vector3( 0, 0, 0 )); robnode->attachObject(robent); Camera* mycamera = myscenemanager->createCamera("MeineKamera1"); mycamera->setPosition(Vector3(150,150,100)); mycamera->lookAt(Vector3(0,0,0)); Viewport* myviewport = mywindow->addViewport(mycamera); myviewport->setBackgroundColour(ColourValue(0.0f,0.0f,0.0f)); mCamera->setAspectRatio(Real(mViewport->getActualWidth()) / Real(mViewport->getActualHeight())); myscenemanager->setAmbientLight( ColourValue( 1, 1, 1 ) ); InputReader* myir = PlatformManager::getSingleton().createInputReader(); myir->initialise(mywindow,true,false); MyFrameListener* myfl = new MyFrameListener(myir); myroot->addFrameListener(myfl); myroot->startRendering(); delete myroot; } catch (Exception& e) { ErrorDialog *dlg = PlatformManager::getSingleton().createErrorDialog(); dlg->display(e.getFullDescription()); delete dlg; return 1; } return 0; }