Enfin, nous retournons true pour indiquer que Ogre a été initialisé avec succès
return true;}La fonction d'arrêt nettoie toutes les ressources Ogre. Nous commençons par enlever l'objet OgreEngineManager de la liste des FrameListeners et WindowEventListeners. Ceci est un peu redondant, car détruire l'objet racine le fera de toute façon, mais il ne fait pas mal au travers
annuler OgreEngineManager :: shutdown () {root-> removeFrameListener (this).; WindowEventUtilities :: removeWindowEventListener (fenêtre, this);
L'Ogre Racine est ensuite supprimé
root.reset ();.Et les variables restantes sont remises à NULL
genericCamera = NULL; window = NULL;}La boucle de rendu est une boucle continue qui calcule l'image suivante et puis l'affiche sur l'écran. La boucle de rendu est commencé avec la fonction StartRenderLoop
vide OgreEngineManager :: StartRenderLoop () {if (root.get ()) root-> startRendering ();}.La fonction SetupInputDevices initialise OIS.
Ce code est pris d'une page Wiki sur OIS, qui a une ventilation détaillée du processus d'initialisation
vides OgreEngineManager :: SetupInputDevices () {OIS :: ParamList pl.; size_t windowHnd = 0; std :: ostringstream windowHndStr; window-> GetCustomAttribute ("fenêtre", et windowHnd;); windowHndStr 0) mKeyboard = static_cast (mInputManager-> createInputObject (OIS :: OISKeyboard, false)); si (mInputManager-> getNumberOfDevices (OIS :: OISMouse)> 0) = mmouse static_cast (mInputManager-> createInputObject (OIS :: OISMouse, false));}Le ShutdownInput nettoie OIS. .
Encore une fois, reportez-vous à la page Wiki pour plus d'informations sur ce code
annuler OgreEngineManager :: ShutdownInput () {if (mInputManager) {if (mmouse) mInputManager-> destroyInputObject (mmouse); if (mKeyboard) mInputManager-> destroyInputObject (mKeyboard); OIS :: :: InputManager destroyInputSystem (mInputManager); mInputManager = NULL; }}La fonction SetupResources est là tous les fichiers de ressources Ogre sont chargés.
Ces fichiers de ressources sont définis par la fonction de AddNewResourceLocation, qui sera utilisé dans les didacticiels plus tard
annuler OgreEngineManager :: SetupResources () {for (ResourceLocationDefinitionVector :: const_iterator iter = resourceLocationDefinitionVector.begin ();.! Iter = resourceLocationDefinitionVector .end (); ++ iter) {ResourceGroupMaFaire un jeu en 3D avec Ogre - Chargement d'un Scene
- Mise en œuvre de base de données dans Mysql
- AS3IsoLib Tutorial Series - Moving Boxes
- Manipulation de données dans Mysql
- Sybase Créer table SQL Statement
- Création d'objets JavaScript par Inheritance
- Résumé Factory Design Pattern
- L'égalité et Opérateurs relationnels en C ++
- Faire un clone de Space Invaders avec PushButton - Tuer le Player
- Données MySQL Types
- Qu'est-ce jailbreak (iPhone)?