void OgreFramework::requestResize() { m_pRenderWnd->windowMovedOrResized(); m_pCameraMain->setAspectRatio(Real(m_pViewportMain->getActualWidth()) / Real(m_pViewportMain->getActualHeight())); globals.screenWidth = m_pRenderWnd->getWidth(); globals.screenHeight = m_pRenderWnd->getHeight(); globals.set(); }
bool OgreFramework::initOgre(OIS::KeyListener *pKeyListener, OIS::MouseListener *pMouseListener, Ogre::RenderTargetListener *pRenderTargetListener) #endif { new Ogre::LogManager(); m_pLog = Ogre::LogManager::getSingleton().createLog("OgreLogfile.log", true, true, false); m_pLog->setDebugOutputEnabled(true); String pluginsPath; // only use plugins.cfg if not static #ifndef OGRE_STATIC_LIB pluginsPath = m_ResourcePath + "plugins.cfg"; #endif m_pRoot = new Ogre::Root(pluginsPath, Ogre::macBundlePath() + "/ogre.cfg"); #ifdef OGRE_STATIC_LIB m_StaticPluginLoader.load(); #endif if(m_pRoot->restoreConfig() || m_pRoot->showConfigDialog()) m_pRenderWnd = m_pRoot->initialise(true, ""); else return false; m_pRenderWnd->resize(600, 800); m_pRenderWnd->windowMovedOrResized(); //m_pRenderWnd->setFullscreen(true, 800, 600); globals.screenWidth = m_pRenderWnd->getWidth(); globals.screenHeight = m_pRenderWnd->getHeight(); globals.set(); /* Ogre::NameValuePairList paramsWnd; paramsWnd["border"] = "fixed"; m_pRenderWnd = m_pRoot->createRenderWindow(wndTitle, Util::SCREEN_WIDTH, Util::SCREEN_HEIGHT, false, ¶msWnd); */ m_pSceneMgrMain = m_pRoot->createSceneManager(ST_GENERIC, "SceneManagerMain"); //m_pSceneMgrSide = m_pRoot->createSceneManager(ST_GENERIC, "SceneManagerSide"); m_pSceneMgrMain->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5)); //m_pSceneMgrSide->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5)); m_pCameraMain = m_pSceneMgrMain->createCamera("CameraMain"); m_pCameraMain->setPosition(Vector3(0, 0, 50)); m_pCameraMain->lookAt(Vector3(0, 0, 0)); m_pCameraMain->setNearClipDistance(0.1); // m_pCameraMain->setFOVy(Degree(45)); //m_pCameraMain->setFarClipDistance(500.0); m_pViewportMain = m_pRenderWnd->addViewport(m_pCameraMain, 1, 0.0, 0.0, float(globals.viewportMainWidth_modeNone) / globals.screenWidth, float(globals.viewportMainHeight_modeNone) / globals.screenHeight); m_pCameraMain->setAspectRatio(Real(m_pViewportMain->getActualWidth()) / Real(m_pViewportMain->getActualHeight())); m_pViewportMain->setCamera(m_pCameraMain); m_pViewportMain->getTarget()->addListener(pRenderTargetListener); /* m_pCameraSide = m_pSceneMgrSide->createCamera("CameraSide"); m_pCameraSide->setPosition(Vector3(0, 0, 30)); m_pCameraSide->lookAt(Vector3(0, 0, 0)); m_pCameraSide->setNearClipDistance(1); m_pCameraSide->setOrthoWindow(10.0, 25.0); m_pCameraSide->setProjectionType(Ogre::PT_ORTHOGRAPHIC); m_pViewportSide = m_pRenderWnd->addViewport(m_pCameraSide, 0, float(globals.viewportMainWidth_modeNone) / globals.screenWidth, 0.0, float(globals.viewportSideWidth_modeNone) / globals.screenWidth, float(globals.viewportSideHeight_modeNone) / globals.screenHeight); m_pViewportSide->setBackgroundColour(ColourValue(0.0f, 0.0f, 0.0f, 1.0f)); m_pCameraSide->setAspectRatio(Real(m_pViewportSide->getActualWidth()) / Real(m_pViewportSide->getActualHeight())); m_pViewportSide->setCamera(m_pCameraSide); m_pViewportSide->getTarget()->addListener(pRenderTargetListener); */ unsigned long hWnd = 0; OIS::ParamList paramList; m_pRenderWnd->getCustomAttribute("WINDOW", &hWnd); paramList.insert(OIS::ParamList::value_type("WINDOW", Ogre::StringConverter::toString(hWnd))); m_pInputMgr = OIS::InputManager::createInputSystem(paramList); #if !defined(OGRE_IS_IOS) m_pKeyboard = static_cast<OIS::Keyboard*>(m_pInputMgr->createInputObject(OIS::OISKeyboard, true)); m_pMouse = static_cast<OIS::Mouse*>(m_pInputMgr->createInputObject(OIS::OISMouse, true)); m_pMouse->getMouseState().height = m_pRenderWnd->getHeight(); m_pMouse->getMouseState().width = m_pRenderWnd->getWidth(); if(pKeyListener == 0) m_pKeyboard->setEventCallback(this); else m_pKeyboard->setEventCallback(pKeyListener); if(pMouseListener == 0) m_pMouse->setEventCallback(this); else m_pMouse->setEventCallback(pMouseListener); #else // m_pMouse = static_cast<OIS::MultiTouch*>(m_pInputMgr->createInputObject(OIS::OISMultiTouch, true)); //if(pMouseListener == 0) // m_pMouse->setEventCallback(this); //else // m_pMouse->setEventCallback(pMouseListener); #endif Ogre::String secName, typeName, archName; Ogre::ConfigFile cf; cf.load(m_ResourcePath + "resources.cfg"); m_pResourceGroupMgr = Ogre::ResourceGroupManager::getSingletonPtr(); m_pOverlayMgr = Ogre::OverlayManager::getSingletonPtr(); m_pFontMgr = Ogre::FontManager::getSingletonPtr(); m_pMeshMgr = Ogre::MeshManager::getSingletonPtr(); m_pMaterialMgr = Ogre::MaterialManager::getSingletonPtr(); m_pTextureMgr = Ogre::TextureManager::getSingletonPtr(); m_pCompositeMgr = CompositorManager::getSingletonPtr(); Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator(); while (seci.hasMoreElements()) { secName = seci.peekNextKey(); Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext(); Ogre::ConfigFile::SettingsMultiMap::iterator i; for (i = settings->begin(); i != settings->end(); ++i) { typeName = i->first; archName = i->second; #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE || defined(OGRE_IS_IOS) // OS X does not set the working directory relative to the app, // In order to make things portable on OS X we need to provide // the loading with it's own bundle path location if (!Ogre::StringUtil::startsWith(archName, "/", false)) // only adjust relative dirs archName = Ogre::String(m_ResourcePath + archName); #endif m_pResourceGroupMgr->addResourceLocation(archName, typeName, secName); } } Ogre::ResourceGroupManager::getSingleton().initialiseResourceGroup("Bootstrap"); m_pTrayMgr = new OgreBites::SdkTrayManager("TrayMgr", m_pRenderWnd, m_pMouse, this); //m_pTrayMgr->showFrameStats(OgreBites::TL_BOTTOMLEFT); //m_pTrayMgr->showLogo(OgreBites::TL_BOTTOMRIGHT); m_pTrayMgr->hideCursor(); m_pTrayMgr->setListener(this); m_pTrayMgr->setTrayPadding(10.0); Ogre::FontManager::getSingleton().getByName("SdkTrays/Caption")->load(); // m_quitButton = OgreFramework::getSingletonPtr()->m_pTrayMgr->createButton(OgreBites::TL_BOTTOMLEFT, "sdkQuitButton", "QUIT", 250); m_pSoundMgr = OgreOggSound::OgreOggSoundManager::getSingletonPtr(); m_pSoundMgr->init(); m_pSoundMgr->createSound("Music1", "pianomusic2.ogg", false, true, true); m_pSoundMgr->createSound("Music4", "pianomusic5.ogg", false, true, true); m_pSoundMgr->createSound("Music5", "pianomusic.ogg", false, true, true); //m_pSoundMgr->createSound("SoundGreatFeedback", "GoodFeedback.wav", false, false, true); m_pSoundMgr->createSound("SoundGreatFeedback", "ding3up3.wav", false, false, true); m_pSoundMgr->createSound("SoundGoodFeedback", "energyup.wav", false, false, true); m_pSoundMgr->createSound("SoundBadFeedback", "BadFeedback.wav", false, false, true); m_pSoundMgr->createSound("SoundCollision", "wrong_answer_feedback.wav", false, false, true); m_pSoundMgr->createSound("SoundPod1", "pod4.wav", false, false, true); // Rose m_pSoundMgr->createSound("SoundPod2", "pod3.wav", false, false, true); // Iris m_pSoundMgr->createSound("SoundPod3", "bubbleSound.wav", false, false, true); // Bubble Flower m_pSoundMgr->createSound("SoundPod4", "pod2.wav", false, false, true); // Daisy m_pSoundMgr->createSound("SoundStartup", "beeTakeoff.wav", false, false, true); Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); m_pTimer = OGRE_NEW Ogre::Timer(); m_pTimer->reset(); m_pRenderWnd->setActive(true); return true; }
bool OgreFramework::initOgre(OIS::KeyListener *pKeyListener, OIS::MouseListener *pMouseListener) #endif { new Ogre::LogManager(); m_pLog = Ogre::LogManager::getSingleton().createLog("OgreLogfile.log", true, true, false); m_pLog->setDebugOutputEnabled(true); String pluginsPath; // only use plugins.cfg if not static #ifndef OGRE_STATIC_LIB pluginsPath = m_ResourcePath + "plugins.cfg"; #endif m_pRoot = new Ogre::Root(pluginsPath, Ogre::macBundlePath() + "/ogre.cfg"); // OgreOggSound is still a dynamic library (dylib) // OgreOggSound::OgreOggSoundPlugin* mOgreOggSoundPlugin = OGRE_NEW OgreOggSound::OgreOggSoundPlugin(); // m_pRoot->installPlugin(mOgreOggSoundPlugin); #ifdef OGRE_STATIC_LIB m_StaticPluginLoader.load(); #endif if(m_pRoot->restoreConfig() || m_pRoot->showConfigDialog()) m_pRenderWnd = m_pRoot->initialise(true, ""); else return false; //m_pRenderWnd->resize(800, 600); //m_pRenderWnd->setFullscreen(true, 1024, 800); globals.screenWidth = m_pRenderWnd->getWidth(); globals.screenHeight = m_pRenderWnd->getHeight(); globals.set(); m_pSceneMgrMain = m_pRoot->createSceneManager(ST_GENERIC, "SceneManagerMain"); m_pSceneMgrMain->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5)); m_pCameraMain = m_pSceneMgrMain->createCamera("CameraMain"); m_pCameraMain->setPosition(Vector3(0, 0, 50)); m_pCameraMain->lookAt(Vector3(0, 0, 0)); m_pCameraMain->setNearClipDistance(0.1); m_pViewportMain = m_pRenderWnd->addViewport(m_pCameraMain); m_pViewportMain->setCamera(m_pCameraMain); Ogre::OverlaySystem* m_pOverlaySystem = new Ogre::OverlaySystem(); m_pSceneMgrMain->addRenderQueueListener(m_pOverlaySystem); unsigned long hWnd = 0; OIS::ParamList paramList; m_pRenderWnd->getCustomAttribute("WINDOW", &hWnd); paramList.insert(OIS::ParamList::value_type("WINDOW", Ogre::StringConverter::toString(hWnd))); m_pInputMgr = OIS::InputManager::createInputSystem(paramList); #if !defined(OGRE_IS_IOS) m_pKeyboard = static_cast<OIS::Keyboard*>(m_pInputMgr->createInputObject(OIS::OISKeyboard, true)); m_pMouse = static_cast<OIS::Mouse*>(m_pInputMgr->createInputObject(OIS::OISMouse, true)); m_pMouse->getMouseState().height = m_pRenderWnd->getHeight(); m_pMouse->getMouseState().width = m_pRenderWnd->getWidth(); if(pKeyListener == 0) m_pKeyboard->setEventCallback(this); else m_pKeyboard->setEventCallback(pKeyListener); if(pMouseListener == 0) m_pMouse->setEventCallback(this); else m_pMouse->setEventCallback(pMouseListener); #endif Ogre::String secName, typeName, archName; Ogre::ConfigFile cf; cf.load(m_ResourcePath + "resources.cfg"); m_pResourceGroupMgr = Ogre::ResourceGroupManager::getSingletonPtr(); m_pOverlayMgr = Ogre::OverlayManager::getSingletonPtr(); m_pFontMgr = Ogre::FontManager::getSingletonPtr(); m_pMeshMgr = Ogre::MeshManager::getSingletonPtr(); m_pMaterialMgr = Ogre::MaterialManager::getSingletonPtr(); m_pTextureMgr = Ogre::TextureManager::getSingletonPtr(); m_pCompositeMgr = CompositorManager::getSingletonPtr(); Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator(); while (seci.hasMoreElements()) { secName = seci.peekNextKey(); Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext(); Ogre::ConfigFile::SettingsMultiMap::iterator i; for (i = settings->begin(); i != settings->end(); ++i) { typeName = i->first; archName = i->second; #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE || defined(OGRE_IS_IOS) // OS X does not set the working directory relative to the app, // In order to make things portable on OS X we need to provide // the loading with it's own bundle path location if (!Ogre::StringUtil::startsWith(archName, "/", false)) // only adjust relative dirs archName = Ogre::String(m_ResourcePath + archName); #endif m_pResourceGroupMgr->addResourceLocation(archName, typeName, secName); } } Ogre::ResourceGroupManager::getSingleton().initialiseResourceGroup("Bootstrap"); m_pSoundMgr = OgreOggSound::OgreOggSoundManager::getSingletonPtr(); m_pSoundMgr->init(); m_pSoundMgr->createSound("SoundGreatFeedback", "ding3up3.wav", false, false, true); m_pSoundMgr->createSound("SoundGoodFeedback", "energyup.wav", false, false, true); m_pSoundMgr->createSound("SoundBadFeedback", "wrongtriangle.wav", false, false, true); m_pSoundMgr->createSound("SoundMissFeedback", "misstriangle.wav", false, false, true); m_pSoundMgr->createSound("SoundCollision", "laser.wav", false, false, true); m_pSoundMgr->createSound("SoundStartup", "shipstartup.wav", false, false, true); m_pSoundMgr->createSound("SoundBoost", "ExhaustSound.wav", false, true, true); m_pSoundMgr->createSound("SoundButtonPress", "menuButton.wav", false, false, true); m_pSoundMgr->createSound("SoundFirework", "distantboom.wav", false, false, true); m_pSoundMgr->createSound("SoundDing", "positiveding.wav", false, false, true); m_pSoundMgr->createSound("GateOpen", "gateopen.wav", false, false, true); m_pSoundMgr->createSound("GateClose", "gateclose.wav", false, false, true); m_pSoundMgr->createSound("LevelFail", "down.wav", false, false, true); m_pSoundMgr->createSound("LevelPass", "LevelPass.wav", false, false, true); Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); m_pTimer = OGRE_NEW Ogre::Timer(); m_pTimer->reset(); OgreBites::InputContext inputContext; inputContext.mMouse = m_pMouse; inputContext.mKeyboard = m_pKeyboard; m_pTrayMgr = new OgreBites::SdkTrayManager("TrayMgr", m_pRenderWnd, inputContext, this); //m_pTrayMgr->showFrameStats(OgreBites::TL_BOTTOMLEFT); //m_pTrayMgr->showLogo(OgreBites::TL_BOTTOMRIGHT); //m_pTrayMgr->hideCursor(); m_pRenderWnd->setActive(true); return true; }