int main(int argc, char *argv[]) #endif { TRACE_APPNAME("Ogre_App"); TRACE_CONNECT(); TRACE_MSG(trace::e_Info, trace::CTX_Default, "Initialized main application"); // redirect Ogre log to our listener LogRedir redir; Ogre::LogManager * mLogManager = OGRE_NEW Ogre::LogManager(); Ogre::Log * log = Ogre::LogManager::getSingleton().createLog("", true, false, false); if (log) log->addListener(&redir); // Create application object TutorialApplication app; try { app.go(); } catch( Ogre::Exception& e ) { #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL); #else std::cerr << "An exception has occured: " << e.getFullDescription().c_str() << std::endl; #endif } if (log) log->removeListener(&redir); return 0; }
bool OgreAndroidBaseFramework::initOgreRoot() { try { // Create logs that funnel to android logs mLogManager = OGRE_NEW Ogre::LogManager(); Ogre::Log *l = mLogManager->createLog("AndroidLog", true, true, true); mAndroidLogListener = new AndroidLogListener(); l->addListener(mAndroidLogListener); // Create a root object mRoot = new Ogre::Root("", "", ""); // Register the ES2 plugin mGles2Plugin = new Ogre::GLES2Plugin(); Ogre::Root::getSingleton().installPlugin(mGles2Plugin); // Register particle plugin mPfxPlugin = new Ogre::ParticleFXPlugin(); Ogre::Root::getSingleton().installPlugin(mPfxPlugin); // Grab the available render systems const Ogre::RenderSystemList &renderSystemList = mRoot->getAvailableRenderers(); if(renderSystemList.empty()) return false; // Set the render system and init Ogre::RenderSystem *system = renderSystemList.front(); mRoot->setRenderSystem(system); mRoot->initialise(false); mLastTime = mTimer.getMilliseconds(); mAndroidArchiveFactory = new AndroidArchiveFactory(mJni); Ogre::ArchiveManager::getSingletonPtr()->addArchiveFactory(mAndroidArchiveFactory); createResourceGroup("Essential"); // From android assets addResourceLocation("RTShaderLib.mp3", "Essential", "Android"); addResourceLocation("SdkTrays.mp3", "Essential", "Android"); addResourceLocation("Sinbad.mp3", "Essential", "Android"); // From filesystem addResourceLocation("/sdcard/ogre_media/textures", "Essential", "FileSystem"); addResourceLocation("/sdcard/ogre_media/shaders", "Essential", "FileSystem"); addResourceLocation("/sdcard/ogre_media/materials", "Essential", "FileSystem"); addResourceLocation("/sdcard/ogre_media/meshes", "Essential", "FileSystem"); mRoot->addFrameListener(this); mKeyboard = new AndroidKeyboard(); return true; } catch(Ogre::Exception &e) { } return false; }
void dmz::RenderModuleCoreOgreBasic::_init_root (Config &local) { String logName ("ogre.log"); Boolean suppressLogFileOutput (True); Config logData; if (local.lookup_config ("log", logData)) { suppressLogFileOutput = False; logName = config_to_string ("name", logData, logName); } Ogre::LogManager *logManager = new Ogre::LogManager; Ogre::Log *log = Ogre::LogManager::getSingleton ().createLog ( logName.get_buffer (), True, False, suppressLogFileOutput); if (suppressLogFileOutput) { //Ogre::LogManager::getSingleton ().setLogDetail(Ogre::LL_LOW); log->addListener (&_ogreLogger); } _root = new Ogre::Root("", ""); ConfigIterator it; Config cd; Config pluginList; if (local.lookup_all_config ("plugins.plugin", pluginList)) { Boolean done (!pluginList.get_first_config (it, cd)); while (!done) { String name; if (cd.lookup_attribute ("name", name)) { try { _root->loadPlugin (name.get_buffer ()); } catch (Ogre::Exception e) { String msg (e.getFullDescription ().c_str ()); _log.error << msg << endl; } } done = !pluginList.get_next_config (it, cd); } } }
bool initOgreRoot(){ try{ // Create logs that funnel to android logs Ogre::LogManager *lm = OGRE_NEW Ogre::LogManager(); Ogre::Log *l = lm->createLog("AndroidLog", true, true, true); g_ll = OGRE_NEW AndroidLogListener(); l->addListener(g_ll); // Create a root object g_root = OGRE_NEW Ogre::Root("", "", ""); // Register the ES2 plugin g_gles2Plugin = OGRE_NEW Ogre::GLES2Plugin(); Ogre::Root::getSingleton().installPlugin(g_gles2Plugin); // Register particle plugin g_pfxPlugin = OGRE_NEW Ogre::ParticleFXPlugin(); Ogre::Root::getSingleton().installPlugin(g_pfxPlugin); // Grab the available render systems const Ogre::RenderSystemList &renderSystemList = g_root->getAvailableRenderers(); if(renderSystemList.empty()) { return false; } // Set the render system and init Ogre::RenderSystem *system = renderSystemList.front(); g_root->setRenderSystem(system); g_root->initialise(false); g_lastTime = g_timer.getMilliseconds(); return true; }catch(Ogre::Exception &e){ } return false; }
/*! * Initialize the application, in particular initialize OGRE and OIS * (the input system, see \ref InputHandler). * * \return TRUE on success, otherwise FALSE. The application should be * quit, if initializing failed. */ bool TestApp::initialize() { if (mOgreRoot) { // already initialized return true; } Ogre::String pluginFileName = "plugins.cfg"; // don't use any plugin config file // (we specify everything by code) Ogre::String configFileName = "ogre.cfg"; // don't use any config file // (we specify everything by code) // AB: we create our own logmanager - ogre will use that one. Ogre::String logFileName = "Ogre.log"; // AB: name to identify the log - won't necessarily write to a file! mOgreLogManager = new Ogre::LogManager(); // create a default log that ogre itself is going to use. bool suppressFileOutput = false; bool outputToConsole = true; Ogre::Log* log = mOgreLogManager->createLog(logFileName, true, outputToConsole, suppressFileOutput); log->addListener(mMyOgreLogListener); // AB: atm we don't specify the 3rd parameter and thus use the default Ogre // log filename (Ogre.log in the current dir) // we could just use "" to disable the logfile. mOgreRoot = new Ogre::Root(pluginFileName, configFileName); // we use OpenGL //#if defined __APPLE__ || defined WIN32 // mOgreRoot->loadPlugin("RenderSystem_GL"); //#else // mOgreRoot->loadPlugin(DCOLLIDE_OGRE_PLUGIN_DIR "/RenderSystem_GL"); //#endif Ogre::RenderSystemList* renderSystemList = mOgreRoot->getAvailableRenderers(); if (renderSystemList->empty()) { std::cerr << "Could not load any renderers?!" << std::endl; return false; } Ogre::RenderSystem* renderSystem = renderSystemList->at(0); mOgreRoot->setRenderSystem(renderSystem); mOgreRoot->initialise(false); // Create a window int width = 1024; int height = 768; bool fullscreen = false; mRenderWindow = mOgreRoot->createRenderWindow("d-collide test application", width, height, fullscreen); if (!mUseGUI) { mRenderWindow->setVisible(false); } mWindowEventListener = new MyWindowEventListener(mRenderWindow); mOgreRoot->addResourceLocation("../resources/textures", "FileSystem", "DCollideMaterials"); mOgreRoot->addResourceLocation("../resources/models", "FileSystem", "DCollideModels"); // input int windowHandle = 0; mRenderWindow->getCustomAttribute("WINDOW", &windowHandle); mInputHandler = new InputHandler(windowHandle); mInputHandler->setTestApp(this); mInputHandler->setWindowSize(width, height); mWindowEventListener->setInputHandler(mInputHandler); // GUI mGui = new Gui(mOgreRoot, mRenderWindow); mGui->setInputHandler(mInputHandler); mGui->addFrameHistory(mFrameHistory, false); mGui->addFrameHistory(mGraphicFrameHistory, true); mGui->addFrameHistory(mSceneUpdateHistory, true); mGui->addFrameHistory(mPhysicsStepHistory, true); mGui->addFrameHistory(mCollisionFrameHistory, true); if (!mGui->initialize()) { std::cerr << "Could not initialize the GUI" << std::endl; return false; } // our actual scene changeCurrentScene("default"); if (!mScene) { //error() << "NULL current scene: could not initialize default scene"; return false; } mInputHandler->initActions(); return true; }
bool BaseManager::init() { Ogre::String pluginsPath; mFrameCount = 0; mPickFrameCount = 0; mPickX = 0; mPickY = 0; #ifndef OGRE_STATIC_LIB pluginsPath = mResourcePath + mPluginCfgName; #endif mFastReset = false; mReset = false; mExit = false; mInputFilter = new InputFilter(); mRoot = new Ogre::Root(pluginsPath, mResourcePath + "ogre.cfg", mResourcePath + "Ogre.log"); Ogre::Log* plog = Ogre::LogManager::getSingleton().getDefaultLog(); if( plog ){ mCoutSource = new CoutSource(); plog->addListener( mCoutSource ); } //恢复Ogre配置,如果第一次配置启动一个Ogre配置对话框 if (!mRoot->restoreConfig()) { if (!mRoot->showConfigDialog()) return false; } mWindow = mRoot->initialise(true); createSceneManager(); // Set default mipmap level (NB some APIs ignore this) Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5); mRoot->addFrameListener(this); Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this); size_t handle = 0; mWindow->getCustomAttribute("WINDOW", &handle); mSceneQuery = mSceneManager->createRayQuery( Ogre::Ray() ); createGui(); createInput(handle); createPointerManager(handle); createScene(); windowResized(mWindow); mRoot->getRenderSystem()->_initRenderTargets(); setPointerVisible(false); return true; }
void NativeEnginePrivate::initOgre() { #if !defined(NDEBUG) Ogre::String pluginsCfg = "plugins_d.cfg"; #else Ogre::String pluginsCfg = "plugins.cfg"; #endif Ogre::LogManager * lm = new Ogre::LogManager(); Ogre::Log *log = lm->createLog("", true, false, false); log->addListener(this); /* Initialize Ogre */ ogreRoot = new Ogre::Root(pluginsCfg); /* Set OpenGL render system on Ogre */ Ogre::RenderSystem *renderSystem = ogreRoot->getRenderSystemByName("OpenGL Rendering Subsystem"); if (!renderSystem) throw std::exception("Unable to find OpenGL Render System!"); renderSystem->setConfigOption("Colour Depth", "32"); renderSystem->setConfigOption("Fixed Pipeline Enabled", "Yes"); renderSystem->setConfigOption("VSync", "No"); ogreRoot->setRenderSystem(renderSystem); ogreRoot->initialise(false); /* Initialize the render window to use the GLWidget internally */ Ogre::NameValuePairList params; params["externalGLControl"] = "true"; params["externalGLContext"] = QString::number((uint)wglGetCurrentContext()).toStdString(); // TODO: Platform dependent params["externalWindowHandle"] = QString::number((uint)glWidget->winId()).toStdString(); ogreWindow = ogreRoot->createRenderWindow("", glWidget->width(), glWidget->height(), false, ¶ms); /* We don't use mip maps since our camera distance from all objects is fixed */ Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(0); /* here we could load "builtin" resources, but all other resources should be controlled by c# */ /*Ogre::ResourceGroupManager &resourceManager = Ogre::ResourceGroupManager::getSingleton(); resourceManager.addResourceLocation("C:/Users/Sebastian/AppData/Local/EvilTemple/data.zip", "Zip", "General", true); resourceManager.initialiseAllResourceGroups();*/ /* Create the actual scene manager */ ogreRoot->addSceneManagerFactory(new SceneFactory); ogreRoot->addMovableObjectFactory(new GroundDiscFactory); sceneManager = static_cast<Scene*>(ogreRoot->createSceneManager("Scene")); sceneManager->resizeWindow(glWidget->width(), glWidget->height()); /* Create and initialize the main camera */ camera = sceneManager->getMainCamera(); /* Create the viewport */ viewport = ogreWindow->addViewport(camera); viewport->setBackgroundColour(Ogre::ColourValue(0.5, 0.5, 0.5)); sceneManager->setAmbientLight(Ogre::ColourValue(0, 0, 0)); /* TEST */ /*Ogre::Entity* model = sceneManager->createEntity("meshes/pcs/pc_human_male/pc_human_male.mesh"); Ogre::SceneNode* headNode = sceneManager->getRootSceneNode()->createChildSceneNode(); headNode->setPosition(0, 0, 0); headNode->attachObject(model); Ogre::AnimationState *animState = model->getAnimationState("unarmed_unarmed_idle"); animState->setEnabled(true); animState->setLoop(true); animState->setWeight(1.0f); sceneManager->setAmbientLight(Ogre::ColourValue(0, 0, 0)); // Create a light Ogre::Light* l = sceneManager->createLight("MainLight"); l->setType(Ogre::Light::LT_DIRECTIONAL); l->setDirection(-0.6324093645670703858428703903848, -0.77463436252716949786709498111783, 0);*/ /* /TEST */ }