本文整理汇总了C++中ogre::ConfigFile::getSectionIterator方法的典型用法代码示例。如果您正苦于以下问题:C++ ConfigFile::getSectionIterator方法的具体用法?C++ ConfigFile::getSectionIterator怎么用?C++ ConfigFile::getSectionIterator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ogre::ConfigFile
的用法示例。
在下文中一共展示了ConfigFile::getSectionIterator方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setupResources
void ServerGraphics::setupResources (void)
{
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load(mResourcesCfg);
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}
}
示例2: defineRessources
void GraphicsOgre::defineRessources()
{
Ogre::String secName, typeName, archName;
Ogre::ConfigFile cf;
Ogre::String resource_path = "./";
cf.load(resource_path + "resources.cfg");
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
}
示例3: setupResources
void RenderPump::setupResources()
{
Ogre::ConfigFile cf;
#if OGRE_DEBUG_MODE
cf.load("resources_d.cfg");
#else
cf.load("resources.cfg");
#endif
Ogre::ConfigFile::SectionIterator secIter = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
while(secIter.hasMoreElements())
{
secName = secIter.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = secIter.getNext();
Ogre::ConfigFile::SettingsMultiMap::iterator i;
for(i=settings->begin(); i!=settings->end(); i++)
{
typeName = i->first;
archName = i->second;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
}
示例4: loadResourcePathsFromConfigFile
//This function is based on code from the Ogre ExampleApplication.
//It is not constrained by the Ogre licence (free for any use).
void Application::loadResourcePathsFromConfigFile(const QString& filename)
{
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load(filename.toStdString());
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
}
示例5: setupResources
void OgreView::setupResources()
{
mRoot = new Ogre::Root();
Ogre::ConfigFile cf;
cf.load("resources.cfg");
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}
mRoot->restoreConfig();
mRoot->initialise(false);
}
示例6: init
/**
* @internal
* @brief Initializes the Resource Manager, which makes ogre aware of all resources directories
* @note This method does not actually load the resources, each subsystem of the library is in charche
* of loading the actual resources that they need.
* @note Ogre Root object is created here (to acces the resources management features), so this manager should be
* initialized before the rest of Ogre related managers
*/
void ResourceManager::init()
{
// Obtain the user execution directory
extractUserAppPath();
// Init Ogre Root
LOG( "Creating Ogre Root. Plugins path: %s", (resourcesPathInBundle + pluginsPath).c_str() );
new Ogre::Root( resourcesPathInBundle + pluginsPath );
// Store user data path in globals
dataFolder = userDataPath;
LOG("User Data Folder: %s", dataFolder.c_str() );
// Load Cing Config file
XMLElement xml;
xml.load( "CingConfig.xml" );
// Get cing data folder (the root is CingConfig)
if ( xml.isValid() )
{
XMLElement cingDataFolderXMLElement = xml.getChild("Cing_Data_Folder");
cingDataFolder = cingDataFolderXMLElement.getStringAttribute("relativePath");
}
else
LOG_ERROR( "CingConfig.xml not found in data folder -> using default paths" );
// Get Cing data path
LOG( "Cing Data Folder: %s", cingDataFolder.c_str());
if ( cingDataFolder != "" )
{
libDataPath = cingDataFolder;
}
else
LOG_ERROR( "Cing Data Folder is empty: libDataPath will use default value: %s", libDataPath.c_str() );
// Load resource paths from config file
Ogre::ConfigFile cf;
std::string resourcesFileAbsPath = libDataPath + resourcesFileName ;
LOG( "Trying to load Ogre Resources file (resources.cfg) at: %s", resourcesFileAbsPath.c_str() );
cf.load( resourcesFileAbsPath.c_str() );
// Go through all sections & settings in the file to add all library resource locations
Ogre::String secName, typeName, archName;
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
while (seci.hasMoreElements())
{
// Get section name and data
secName = seci.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = seci.getNext();
// Iterate through section elements
Ogre::ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i)
{
typeName = i->first;
archName = i->second;
// Add the resource location to the manager
Ogre::ResourceGroupManager::getSingleton().addResourceLocation( libDataPath + archName, typeName, secName );
}
}
m_bIsValid = true;
}
示例7: main
int main(int argc, char **argv)
#endif
{
try
{
//Iniciem el nostre carregador de classes
ClassLoader::init();
//Iniciem OGRE
#ifdef NO_LOGS
Ogre::Root *lRoot = new Ogre::Root("", "", "");
#else
Ogre::Root *lRoot = new Ogre::Root("", "", "skbl.log");
#endif
lRoot->loadPlugin("Plugin_OctreeSceneManager");
//provem de carregar els plugins de DirectX o OpenGL
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
try
{
lRoot->loadPlugin("RenderSystem_Direct3D9");
}catch (Ogre::Exception &e)
{
MessageBox( NULL, "Get it in our web page",
"Couldn't find shared library \"RenderSystem_Direct3D9\"\n",
MB_OK | MB_ICONERROR | MB_TASKMODAL);
}
#else //Win32
try
{
lRoot->loadPlugin("RenderSystem_GL");
}catch (Ogre::Exception &ee)
{
std::cerr << "Couldn't find shared library \"RenderSystem_GL\". Get it in our web page\n" << std::endl;
}
#endif //Win32
//ara seleccionem un render system d'entre els disponibles
const Ogre::RenderSystemList& lRenderSystemList = lRoot->getAvailableRenderers();
for(unsigned int i=0; i<lRenderSystemList.size(); i++)
{
Ogre::String rsysnm = lRenderSystemList[i]->getName();
//l'ordre d'ifs es el de preferencia
if(rsysnm=="Direct3D9 Rendering Subsystem")
{
lRoot->setRenderSystem(lRenderSystemList[i]);
break;
}
if(rsysnm=="OpenGL Rendering Subsystem")
{
lRoot->setRenderSystem(lRenderSystemList[i]);
break;
}
}
//Inicialitzem Root sense crear finestra
lRoot->initialise(false);
//TODO: Llegir fitxer de configuracio
Ogre::RenderWindow *lWindow;
Ogre::NameValuePairList lParams;
lParams["vsync"] = "true";
lWindow = lRoot->createRenderWindow("De-geso~~~", 1280, 720, false, &lParams);
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load("configScripts/resources.cfg");
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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
// 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(Ogre::macBundlePath() + archName);
#endif
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
//Creem un GameSetup --provisional
GameSetup *lGameSetup = ClassLoader::makeGameSetupLocalProva(lRoot, lWindow, "pl_Boxejador", "lv_Prova");
delete lGameSetup;
ClassLoader::unloadGameSetupLocalProva();
//.........这里部分代码省略.........
示例8: initOgre
void App::initOgre()
{
// Config file class is an utility that parses and stores values from a .cfg file
Ogre::ConfigFile cf;
std::string configFilePathPrefix = "cfg/"; // configuration files default location when app is installed
#ifdef _DEBUG
std::string pluginsFileName = "plugins_d.cfg"; // plugins config file name (Debug mode)
#else
std::string pluginsFileName = "plugins.cfg"; // plugins config file name (Release mode)
#endif
std::string resourcesFileName = "resources.cfg"; // resources config file name (Debug/Release mode)
// LOAD OGRE PLUGINS
// Try to load load up a valid config file (and don't start the program if none is found)
try
{
//This will work ONLY when application is installed (only Release application)!
cf.load(configFilePathPrefix + pluginsFileName);
}
catch (Ogre::FileNotFoundException &e)
{
try
{
// if no existing config, or could not restore it, try to load from a different location
configFilePathPrefix = "../cfg/";
//This will work ONLY when application is in development (Debug/Release configuration)
cf.load(configFilePathPrefix + pluginsFileName);
}
catch (Ogre::FileNotFoundException &e)
{
// launch exception if no valid config file is found! - PROGRAM WON'T START!
throw e;
}
}
// INSTANCIATE OGRE ROOT (IT INSTANCIATES ALSO ALL OTHER OGRE COMPONENTS)
// In Ogre, the singletons are instanciated explicitly (with new) the first time,
// then it can be accessed with Ogre::Root::getSingleton()
// Plugins are passed as argument to the "Root" constructor
mRoot = new Ogre::Root(configFilePathPrefix + pluginsFileName, configFilePathPrefix + "ogre.cfg", "ogre.log");
// No Ogre::FileNotFoundException is thrown by this, that's why we tried to open it first with ConfigFile::load()
// LOAD OGRE RESOURCES
// Load up resources according to resources.cfg ("cf" variable is reused)
try
{
//This will work ONLY when application is installed!
cf.load("cfg/resources.cfg");
}
catch (Ogre::FileNotFoundException &e) // It works, no need to change anything
{
try
{
//This will work ONLY when application is in development (Debug/Release configuration)
cf.load("../cfg/resources.cfg");
}
catch (Ogre::FileNotFoundException &e)
{
// launch exception if no valid config file is found! - PROGRAM WON'T START!
throw e;
}
}
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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;
//For each section/key-value, add a resource to ResourceGroupManager
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
// Then setup THIS CLASS INSTANCE as a frame listener
// This means that Ogre will call frameStarted(), frameRenderingQueued() and frameEnded()
// automatically and periodically if defined in this class
mRoot->addFrameListener(this);
// SELECT AND CUSTOMIZE OGRE RENDERING (OpenGL)
// Get a reference of the RenderSystem in Ogre that I want to customize
Ogre::RenderSystem* pRS = mRoot->getRenderSystemByName("OpenGL Rendering Subsystem");
// Get current config RenderSystem options in a ConfigOptionMap
Ogre::ConfigOptionMap cfgMap = pRS->getConfigOptions();
// Modify them
cfgMap["Full Screen"].currentValue = "No";
cfgMap["VSync"].currentValue = "Yes";
#ifdef _DEBUG
//.........这里部分代码省略.........
示例9: go
bool BasicWindow::go(void) {
// 1. define the root object:
mRoot = new Ogre::Root(mPluginsFileName);
// 2. define the resources that ogre will use:
Ogre::ConfigFile configFile;
configFile.load(mResourcesFileName);
Ogre::ConfigFile::SectionIterator sectionsIter = configFile.getSectionIterator();
Ogre::ConfigFile::SettingsMultiMap::iterator settingsIter;
Ogre::ConfigFile::SettingsMultiMap* settings;
Ogre::String secName, typeName, archName;
while(sectionsIter.hasMoreElements()) {
secName = sectionsIter.peekNextKey();
settings = sectionsIter.getNext();
for (settingsIter=settings->begin(); settingsIter!=settings->end(); ++settingsIter) {
typeName = settingsIter->first;
archName = settingsIter->second;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}
// 3. choose and setup the render system:
if (!(mRoot->restoreConfig() || mRoot->showConfigDialog())) {
return false;
}
// 4. create the render window:
mWindow = mRoot->initialise(true, "Testing");
// 5. initialise the required resources:
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
// 6. setup scene:
mSceneMgr = mRoot->createSceneManager("DefaultSceneManager");
mCamera = mSceneMgr->createCamera("mCamera");
mCamera->setNearClipDistance(1);
//mCamera->setFarClipDistance(10000);
mCameraMan = new OgreBites::SdkCameraMan(mCamera);
Ogre::Viewport* vp = mWindow->addViewport(mCamera);
//vp->setBackgroundColour(Ogre::ColourValue(1, 1, 1));
mCamera->setAspectRatio(Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight()));
mCameraNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("cameraNode");
mCameraNode->attachObject(mCamera);
createGUI();
createScene();
// 7. setup 3rd party libraries and plugins:
Utils::log("*** Initialising OIS ***");
OIS::ParamList paramList;
size_t windowHandle = 0;
std::ostringstream windowHandleString;
mWindow->getCustomAttribute("WINDOW", &windowHandle);
windowHandleString << windowHandle;
paramList.insert(std::make_pair(std::string("WINDOW"), windowHandleString.str()));
mInputManager = OIS::InputManager::createInputSystem(paramList);
mKeyboard = static_cast<OIS::Keyboard*>(mInputManager->createInputObject(OIS::OISKeyboard, true));
mMouse = static_cast<OIS::Mouse*>(mInputManager->createInputObject(OIS::OISMouse, true));
windowResized(mWindow); //<- sets mouse clipping size
// 8. add listeners and callbacks:
Ogre::WindowEventUtilities::addWindowEventListener(mWindow, this);
mRoot->addFrameListener(this);
mMouse->setEventCallback(this);
mKeyboard->setEventCallback(this);
// 9. start the render loop
mRoot->startRendering();
return true;
}
示例10: initOgre
bool OgreFramework::initOgre(Ogre::String wndTitle, OIS::KeyListener *pKeyListener, OIS::MouseListener *pMouseListener)
{
// PTR TuanNA [Create and initiate the Log- 10/7/2016]
Ogre::LogManager* logMgr = new Ogre::LogManager();
m_pLog = Ogre::LogManager::getSingleton().createLog("OgreLogfile.log", true, true, false);
m_pLog->setDebugOutputEnabled(true);
// PTR TuanNA [Create an Ogre Root- 10/7/2016]
m_pRoot = new Ogre::Root();
//PTR TuanNA begin comment
//[Add icon to app- 10/7/2016]
if(m_pRoot->showConfigDialog())
{
// If returned true, user clicked OK so initialise
// Here we choose to let the system create a default rendering window by passing 'true'
m_pRenderWnd = m_pRoot->initialise(true, "OgreFramework Render Window");
// Let's add a nice window icon
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
HWND hwnd;
m_pRenderWnd->getCustomAttribute("WINDOW", (void*)&hwnd);
LONG iconID = (LONG)LoadIcon( GetModuleHandle(0), MAKEINTRESOURCE(IDI_APPICON) );
SetClassLong( hwnd, GCL_HICON, iconID );
#endif
//PTR TuanNA end comment
// PTR TuanNA [Remove CM m_pRenderWnd- 10/7/2016] m_pRenderWnd = m_pRoot->initialise(true, wndTitle);
// PTR TuanNA [Add a viewport the to Render window- 11/7/2016]
m_pViewport = m_pRenderWnd->addViewport(0);
m_pViewport->setBackgroundColour(ColourValue(0.5f, 0.5f, 0.5f, 1.0f));
m_pViewport->setCamera(0);
//PTR TuanNA- Init Ogre Render Window... [16:37:20 4/9/2016 by TNA]
size_t hWnd = 0;
OIS::ParamList paramList;
m_pRenderWnd->getCustomAttribute("WINDOW", &hWnd);
paramList.insert(OIS::ParamList::value_type("WINDOW", Ogre::StringConverter::toString(hWnd)));
// PTR TuanNA [Create Input System- 11/7/2016]
m_pInputMgr = OIS::InputManager::createInputSystem(paramList);
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);
Ogre::String secName, typeName, archName;
Ogre::ConfigFile cf;
#ifdef _DEBUG
cf.load("resources_d.cfg");
#else
cf.load("resources.cfg");
#endif
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}
// PTR TuanNA [Configure the amount of MipMaps per texture(to avoid aliasing).- 11/7/2016]
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
/*
//PTR TuanNA begin comment
////Load cursor resources
Ogre::ResourceGroupManager::getSingleton().createResourceGroup("Cursor");
Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../Media/Cursor.zip","Zip","Cursor");
Ogre::ResourceGroupManager::getSingleton().initialiseResourceGroup("Cursor");
//Create the GUI handler
mpGui = new GuiHandler(mpRenderWnd);
#ifdef DEBUG
loadDebugResources();
mpGui->initDebugGui();
#endif
//.........这里部分代码省略.........
示例11: go
bool MinimalOgre::go(void)
{
#ifdef _DEBUG
mResourcesCfg = "resources_d.cfg";
mPluginsCfg = "plugins_d.cfg";
#else
mResourcesCfg = "resources.cfg";
mPluginsCfg = "plugins.cfg";
#endif
// construct Ogre::Root
mRoot = new Ogre::Root(mPluginsCfg);
//-------------------------------------------------------------------------------------
// setup resources
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load(mResourcesCfg);
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
//-------------------------------------------------------------------------------------
// configure
// Show the configuration dialog and initialise the system
// You can skip this and use root.restoreConfig() to load configuration
// settings if you were sure there are valid ones saved in ogre.cfg
if(mRoot->restoreConfig() || mRoot->showConfigDialog())
{
// If returned true, user clicked OK so initialise
// Here we choose to let the system create a default rendering window by passing 'true'
mWindow = mRoot->initialise(true, "MinimalOgre Render Window");
}
else
{
return false;
}
//new addition to 1.9, needs to be created for singleton instance.
overlaySystem = new Ogre::OverlaySystem();
//-------------------------------------------------------------------------------------
// choose scenemanager
// Get the SceneManager, in this case a generic one
mSceneMgr = mRoot->createSceneManager(Ogre::ST_GENERIC);
mSceneMgr->addRenderQueueListener(overlaySystem);
//-------------------------------------------------------------------------------------
// create camera
// Create the camera
mCamera = mSceneMgr->createCamera("PlayerCam");
// Position it at 500 in Z direction
mCamera->setPosition(Ogre::Vector3(0,0,80));
// Look back along -Z
mCamera->lookAt(Ogre::Vector3(0,0,-300));
mCamera->setNearClipDistance(5);
mCameraMan = new OgreBites::SdkCameraMan(mCamera); // create a default camera controller
//-------------------------------------------------------------------------------------
// create viewports
// Create one viewport, entire window
Ogre::Viewport* vp = mWindow->addViewport(mCamera);
vp->setBackgroundColour(Ogre::ColourValue(0,0,0));
// Alter the camera aspect ratio to match the viewport
mCamera->setAspectRatio(
Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight()));
//-------------------------------------------------------------------------------------
// Set default mipmap level (NB some APIs ignore this)
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
//-------------------------------------------------------------------------------------
// Create any resource listeners (for loading screens)
//createResourceListener();
//-------------------------------------------------------------------------------------
// load resources
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
//-------------------------------------------------------------------------------------
// Create the scene
Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "cube.mesh");
//Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();
//headNode->attachObject(ogreHead);
// Set ambient light
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));
//.........这里部分代码省略.........
示例12: InitOgre
BOOL InitOgre()
{
using namespace Ogre;
#ifdef _DEBUG
mOgreRoot = new Ogre::Root("plugins_d.cfg", "OgreMFC.cfg", "OgreMFC.log");
#else
mOgreRoot = new Ogre::Root("plugins.cfg", "OgreMFC.cfg", "OgreMFC.log");
#endif
//
// Setup paths to all resources
//
Ogre::ConfigFile cf;
cf.load("resources_d.cfg");
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
String secName, typeName, archName;
while (seci.hasMoreElements())
{
secName = seci.peekNextKey();
ConfigFile::SettingsMultiMap *settings = seci.getNext();
ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end(); ++i)
{
typeName = i->first;
archName = i->second;
ResourceGroupManager::getSingleton().addResourceLocation( archName, typeName, secName);
}
}
const RenderSystemList& render = mOgreRoot->getAvailableRenderers();
RenderSystemList::const_iterator pRend = render.begin();
while (pRend != render.end())
{
Ogre::String rName = (*pRend)->getName();
//if (rName == "OpenGL Rendering Subsystem") //
if (rName == "Direct3D9 Rendering Subsystem") //Direct3D9 Rendering Subsystem
break;
pRend++;
}
if (pRend == render.end())
{
// Unrecognised render system
//MessageBox("Unable to locate OpenGL rendering system. Application is terminating");
return FALSE;
}
Ogre::RenderSystem *rsys = *pRend;
rsys->setConfigOption("Full Screen", "No");
rsys->setConfigOption("VSync", "Yes");
// Set the rendering system.
mOgreRoot->setRenderSystem(rsys);
//
// Initialize the system, but don't create a render window.
//
mOgreRoot->initialise(false);
return TRUE;
}
示例13: go
bool OgreSmartBody::go(void)
{
#ifdef _DEBUG
mResourcesCfg = "resources_d.cfg";
mPluginsCfg = "plugins_d.cfg";
#else
mResourcesCfg = "resources.cfg";
mPluginsCfg = "plugins.cfg";
#endif
// construct Ogre::Root
mRoot = new Ogre::Root(mPluginsCfg);
// setup resources
// Load resource paths from config file
Ogre::ConfigFile cf;
cf.load(mResourcesCfg);
// Go through all sections & settings in the file
Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator();
Ogre::String secName, typeName, archName;
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;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
archName, typeName, secName);
}
}
// configure
// Show the configuration dialog and initialise the system
if(!(mRoot->restoreConfig() || mRoot->showConfigDialog()))
{
return false;
}
mWindow = mRoot->initialise(true, "OgreSmartBody Render Window");
// Set default mipmap level (NB some APIs ignore this)
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
// initialise all resource groups
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
// Create the SceneManager, in this case a generic one
mSceneMgr = mRoot->createSceneManager("DefaultSceneManager");
// Create the camera
mCamera = mSceneMgr->createCamera("PlayerCam");
// Position it at 500 in Z direction
mCamera->setPosition(Ogre::Vector3(0,10,60));
// Look back along -Z
mCamera->lookAt(Ogre::Vector3(0,0,-300));
mCamera->setNearClipDistance(5);
// Create one viewport, entire window
Ogre::Viewport* vp = mWindow->addViewport(mCamera);
vp->setBackgroundColour(Ogre::ColourValue(0,0,0));
// Alter the camera aspect ratio to match the viewport
mCamera->setAspectRatio(
Ogre::Real(vp->getActualWidth()) / Ogre::Real(vp->getActualHeight()));
// create a floor for better visualization
//adding plane entity to the scene
Ogre::Plane plane;
plane.normal = Ogre::Vector3::UNIT_Y;
plane.d = 0;
Ogre::MeshManager::getSingleton().createPlane( "Myplane", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane, 1500, 1500, 20, 20, true, 1, 60, 60, Ogre::Vector3::UNIT_Z );
Ogre::Entity * pPlaneEnt = mSceneMgr->createEntity( "plane", "Myplane" );
//pPlaneEnt->setMaterialName( "Examples/Rockwall" );
pPlaneEnt->setMaterialName( "Rockwall" );
pPlaneEnt->setCastShadows( false );
mSceneMgr->getRootSceneNode()->createChildSceneNode("plane_node", Ogre::Vector3( 0, 0, 0 ) )->attachObject( pPlaneEnt );
mSceneMgr->getSceneNode("plane_node")->setVisible(true);
// shadows
mSceneMgr->setShadowTechnique( Ogre::SHADOWTYPE_TEXTURE_MODULATIVE );
mSceneMgr->setShadowTextureSize( 4048 );
mSceneMgr->setShadowColour( Ogre::ColourValue( 0.3f, 0.3f, 0.3f ) );
// Set ambient light
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));
// Create a light
Ogre::Light* l = mSceneMgr->createLight("MainLight");
l->setPosition(20,80,50);
Ogre::LogManager::getSingletonPtr()->logMessage("*** Initializing OIS ***");
OIS::ParamList pl;
size_t windowHnd = 0;
std::ostringstream windowHndStr;
mWindow->getCustomAttribute("WINDOW", &windowHnd);
//.........这里部分代码省略.........
示例14: initOgre
bool OgreFramework::initOgre(Ogre::String wndTitle, 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");
#ifdef OGRE_STATIC_LIB
m_StaticPluginLoader.load();
#endif
if(!m_pRoot->showConfigDialog())
return false;
m_pRenderWnd = m_pRoot->initialise(true, wndTitle);
m_pSceneMgr = m_pRoot->createSceneManager(ST_GENERIC, "SceneManager");
m_pSceneMgr->setAmbientLight(Ogre::ColourValue(0.7f, 0.7f, 0.7f));
m_pCamera = m_pSceneMgr->createCamera("Camera");
m_pCamera->setPosition(Vector3(0, 60, 60));
m_pCamera->lookAt(Vector3(0, 0, 0));
m_pCamera->setNearClipDistance(1);
m_pViewport = m_pRenderWnd->addViewport(m_pCamera);
m_pViewport->setBackgroundColour(ColourValue(0.8f, 0.7f, 0.6f, 1.0f));
m_pCamera->setAspectRatio(Real(m_pViewport->getActualWidth()) / Real(m_pViewport->getActualHeight()));
m_pViewport->setCamera(m_pCamera);
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();
#else
m_pMouse = static_cast<OIS::MultiTouch*>(m_pInputMgr->createInputObject(OIS::OISMultiTouch, true));
#endif
#if !defined(OGRE_IS_IOS)
if(pKeyListener == 0)
m_pKeyboard->setEventCallback(this);
else
m_pKeyboard->setEventCallback(pKeyListener);
#endif
if(pMouseListener == 0)
m_pMouse->setEventCallback(this);
else
m_pMouse->setEventCallback(pMouseListener);
Ogre::String secName, typeName, archName;
Ogre::ConfigFile cf;
cf.load(m_ResourcePath + "resources.cfg");
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
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(archName, typeName, secName);
}
}
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
m_pTimer = OGRE_NEW Ogre::Timer();
m_pTimer->reset();
/*
//.........这里部分代码省略.........
示例15: initOgre
//.........这里部分代码省略.........
#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;
}