1 //||||||||||||||||||||||||||||||||||||||||||||||| 2 3 #ifndef OGRE_FRAMEWORK_H 4 #define OGRE_FRAMEWORK_H 5 6 //||||||||||||||||||||||||||||||||||||||||||||||| 7 8 #include <OgreCamera.h> 9 #include <OgreEntity.h> 10 #include <OgreLogManager.h> 11 #include <OgreOverlay.h> 12 #include <OgreOverlayElement.h> 13 #include <OgreOverlayManager.h> 14 #include <OgreRoot.h> 15 #include <OgreViewport.h> 16 #include <OgreSceneManager.h> 17 #include <OgreRenderWindow.h> 18 #include <OgreConfigFile.h> 19 20 #include <OISEvents.h> 21 #include <OISInputManager.h> 22 #include <OISKeyboard.h> 23 #include <OISMouse.h> 24 25 #ifdef OGRE_STATIC_LIB 26 # define OGRE_STATIC_GL 27 # if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 28 # define OGRE_STATIC_Direct3D9 29 // dx10 will only work on vista, so be careful about statically linking 30 # if OGRE_USE_D3D10 31 # define OGRE_STATIC_Direct3D10 32 # endif 33 # endif 34 # define OGRE_STATIC_CgProgramManager 35 # ifdef OGRE_USE_PCZ 36 # define OGRE_STATIC_PCZSceneManager 37 # define OGRE_STATIC_OctreeZone 38 # endif 39 # if OGRE_VERSION >= 0x10800 40 # if OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS 41 # define OGRE_IS_IOS 1 42 # endif 43 # else 44 # if OGRE_PLATFORM == OGRE_PLATFORM_IPHONE 45 # define OGRE_IS_IOS 1 46 # endif 47 # endif 48 # ifdef OGRE_IS_IOS 49 # undef OGRE_STATIC_CgProgramManager 50 # undef OGRE_STATIC_GL 51 # define OGRE_STATIC_GLES 1 52 # ifdef OGRE_USE_GLES2 53 # define OGRE_STATIC_GLES2 1 54 # define INCLUDE_RTSHADER_SYSTEM 55 # undef OGRE_STATIC_GLES 56 # endif 57 # ifdef __OBJC__ 58 # import <UIKit/UIKit.h> 59 # endif 60 # endif 61 # include "OgreStaticPluginLoader.h" 62 #endif 63 64 #ifdef OGRE_IS_IOS 65 # include <OISMultiTouch.h> 66 #endif 67 68 #include <SdkTrays.h> 69 70 //||||||||||||||||||||||||||||||||||||||||||||||| 71 72 #ifdef OGRE_IS_IOS 73 class OgreFramework : public Ogre::Singleton<OgreFramework>, OIS::KeyListener, OIS::MultiTouchListener, OgreBites::SdkTrayListener 74 #else 75 class OgreFramework : public Ogre::Singleton<OgreFramework>, OIS::KeyListener, OIS::MouseListener, OgreBites::SdkTrayListener 76 #endif 77 { 78 public: 79 OgreFramework(); 80 ~OgreFramework(); 81 82 #ifdef OGRE_IS_IOS 83 bool initOgre(Ogre::String wndTitle, OIS::KeyListener *pKeyListener = 0, OIS::MultiTouchListener *pMouseListener = 0); 84 #else 85 bool initOgre(Ogre::String wndTitle, OIS::KeyListener *pKeyListener = 0, OIS::MouseListener *pMouseListener = 0); 86 #endif 87 void updateOgre(double timeSinceLastFrame); 88 void moveCamera(); 89 void getInput(); 90 isOgreToBeShutDown()91 bool isOgreToBeShutDown()const{return m_bShutDownOgre;} 92 93 bool keyPressed(const OIS::KeyEvent &keyEventRef); 94 bool keyReleased(const OIS::KeyEvent &keyEventRef); 95 96 #ifdef OGRE_IS_IOS 97 bool touchMoved(const OIS::MultiTouchEvent &evt); 98 bool touchPressed(const OIS::MultiTouchEvent &evt); 99 bool touchReleased(const OIS::MultiTouchEvent &evt); 100 bool touchCancelled(const OIS::MultiTouchEvent &evt); 101 #else 102 bool mouseMoved(const OIS::MouseEvent &evt); 103 bool mousePressed(const OIS::MouseEvent &evt, OIS::MouseButtonID id); 104 bool mouseReleased(const OIS::MouseEvent &evt, OIS::MouseButtonID id); 105 #endif 106 107 Ogre::Root* m_pRoot; 108 Ogre::SceneManager* m_pSceneMgr; 109 Ogre::RenderWindow* m_pRenderWnd; 110 Ogre::Camera* m_pCamera; 111 Ogre::Viewport* m_pViewport; 112 Ogre::Log* m_pLog; 113 Ogre::Timer* m_pTimer; 114 115 OIS::InputManager* m_pInputMgr; 116 OIS::Keyboard* m_pKeyboard; 117 #ifdef OGRE_IS_IOS 118 OIS::MultiTouch* m_pMouse; 119 #else 120 OIS::Mouse* m_pMouse; 121 #endif 122 123 protected: 124 // Added for Mac compatibility 125 Ogre::String m_ResourcePath; 126 127 private: 128 OgreFramework(const OgreFramework&); 129 OgreFramework& operator= (const OgreFramework&); 130 131 OgreBites::SdkTrayManager* m_pTrayMgr; 132 Ogre::FrameEvent m_FrameEvent; 133 int m_iNumScreenShots; 134 135 bool m_bShutDownOgre; 136 137 Ogre::Vector3 m_TranslateVector; 138 Ogre::Real m_MoveSpeed; 139 Ogre::Degree m_RotateSpeed; 140 float m_MoveScale; 141 Ogre::Degree m_RotScale; 142 #ifdef OGRE_STATIC_LIB 143 Ogre::StaticPluginLoader m_StaticPluginLoader; 144 #endif 145 }; 146 147 //||||||||||||||||||||||||||||||||||||||||||||||| 148 149 #endif 150 151 //||||||||||||||||||||||||||||||||||||||||||||||| 152