void OgreApp::setupResources(void){ Ogre::ResourceGroupManager* res_manager = Ogre::ResourceGroupManager::getSingletonPtr(); #if 0 std::string res_path = respath + "materials/programs"; res_manager->addResourceLocation(res_path, "FileSystem", "General"); res_path = respath + "materials/scripts"; res_manager->addResourceLocation(res_path, "FileSystem", "General"); res_path = respath + "materials/textures"; res_manager->addResourceLocation(res_path, "FileSystem", "General"); res_path = respath + "models"; res_manager->addResourceLocation(res_path, "FileSystem", "General"); #endif // Load resource paths from config file ConfigFile cf; #if( CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID ) if (gAssetMgr) { ArchiveManager::getSingleton().addArchiveFactory( new APKFileSystemArchiveFactory(gAssetMgr) ); ArchiveManager::getSingleton().addArchiveFactory( new APKZipArchiveFactory(gAssetMgr) ); } cf.load(openAPKFile(resource_cfg_file)); #else cf.load(mResourcePath + resource_cfg_file); #endif // Go through all sections & settings in the file ConfigFile::SectionIterator seci = cf.getSectionIterator(); String sec, type, arch; while (seci.hasMoreElements()){ sec = seci.peekNextKey(); ConfigFile::SettingsMultiMap *settings = seci.getNext(); ConfigFile::SettingsMultiMap::iterator i; for (i = settings->begin(); i != settings->end(); ++i){ type = i->first; arch = i->second; #if CC_TARGET_PLATFORM == CC_PLATFORM_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 arch = String(macBundlePath) + "/" + arch; #elif CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID // arch= "assets/" + arch; #else //notice: mResourcePath must be prefix arch= mResourcePath + arch; #endif res_manager->addResourceLocation(arch, type, sec); } } #if( CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID ) res_manager->initialiseResourceGroup(Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); #endif }
static void setupScene() { LOGI("------->setupScene()"); Ogre::ConfigFile cf; cf.load(openAPKFile("resources.cfg")); Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator(); while (seci.hasMoreElements()) { Ogre::String sec, type, arch; sec = seci.peekNextKey(); Ogre::ConfigFile::SettingsMultiMap* settings = seci.getNext(); Ogre::ConfigFile::SettingsMultiMap::iterator i; for (i = settings->begin(); i != settings->end(); i++) { type = i->first; arch = i->second; Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch, type, sec); } } Ogre::ResourceGroupManager::getSingletonPtr()->initialiseResourceGroup( Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); gSceneMgr = gRoot->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* camera = gSceneMgr->createCamera("MyCam"); Ogre::Entity* pEntity = gSceneMgr->createEntity("SinbadInstance", "Sinbad.mesh"); Ogre::SceneNode* pNode = gSceneMgr->getRootSceneNode()->createChildSceneNode(); pNode->attachObject(pEntity); Ogre::Light* pDirLight = gSceneMgr->createLight(); pDirLight->setDirection(Ogre::Vector3(0, -1, 0)); pDirLight->setType(Ogre::Light::LT_DIRECTIONAL); pNode->attachObject(pDirLight); camera->setNearClipDistance(1.0f); camera->setFarClipDistance(100000.0f); camera->setPosition(0, 0, 20.0f); camera->lookAt(0, 0, 0); camera->setAutoAspectRatio(true); Ogre::Viewport* vp = gRenderWnd->addViewport(camera); vp->setBackgroundColour(Ogre::ColourValue(1, 0, 0)); LOGI("<-------setupScene()"); }
static void loadResources(const char *name) { cf.load(openAPKFile(name)); Ogre::ConfigFile::SectionIterator seci = cf.getSectionIterator(); while (seci.hasMoreElements()) { Ogre::String sec, type, arch; sec = seci.peekNextKey(); Ogre::ConfigFile::SettingsMultiMap* settings = seci.getNext(); Ogre::ConfigFile::SettingsMultiMap::iterator i; for (i = settings->begin(); i != settings->end(); i++) { type = i->first; arch = i->second; Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch, type, sec); } } }
void ApplicationContext::locateResources() { #if OGRE_PLATFORM == OGRE_PLATFORM_NACL Ogre::ResourceGroupManager::getSingleton().addResourceLocation("Essential.zip", "EmbeddedZip", "Essential"); Ogre::ResourceGroupManager::getSingleton().addResourceLocation("Popular.zip", "EmbeddedZip", "General"); #else // load resource paths from config file Ogre::ConfigFile cf; # if OGRE_PLATFORM == OGRE_PLATFORM_ANDROID Ogre::ArchiveManager::getSingleton().addArchiveFactory( new Ogre::APKFileSystemArchiveFactory(mAAssetMgr) ); Ogre::ArchiveManager::getSingleton().addArchiveFactory( new Ogre::APKZipArchiveFactory(mAAssetMgr) ); cf.load(openAPKFile(mFSLayer->getConfigFilePath("resources.cfg"))); # else cf.load(mFSLayer->getConfigFilePath("resources.cfg")); # endif Ogre::String sec, type, arch; // go through all specified resource groups Ogre::ConfigFile::SettingsBySection_::const_iterator seci; for(seci = cf.getSettingsBySection().begin(); seci != cf.getSettingsBySection().end(); ++seci) { sec = seci->first; const Ogre::ConfigFile::SettingsMultiMap& settings = seci->second; Ogre::ConfigFile::SettingsMultiMap::const_iterator i; // go through all resource paths for (i = settings.begin(); i != settings.end(); i++) { type = i->first; arch = Ogre::FileSystemLayer::resolveBundlePath(i->second); Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch, type, sec); } } sec = Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME; const Ogre::ResourceGroupManager::LocationList genLocs = Ogre::ResourceGroupManager::getSingleton().getResourceLocationList(sec); OgreAssert(!genLocs.empty(), ("Resource Group '"+sec+"' must contain at least one entry").c_str()); arch = genLocs.front()->archive->getName(); #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE arch = Ogre::macBundlePath() + "/Contents/Resources/Media"; #elif OGRE_PLATFORM == OGRE_PLATFORM_APPLE_IOS arch = Ogre::macBundlePath() + "/Media"; #else arch = Ogre::StringUtil::replaceAll(arch, "Media/../../Tests/Media", ""); arch = Ogre::StringUtil::replaceAll(arch, "media/../../Tests/Media", ""); # endif type = genLocs.front()->archive->getType(); #ifdef OGRE_BUILD_PLUGIN_CG bool use_HLSL_Cg_shared = true; #else bool use_HLSL_Cg_shared = Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("hlsl"); #endif // Add locations for supported shader languages if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("glsles")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/GLSLES", type, sec); } else if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("glsl")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/GLSL120", type, sec); if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("glsl150")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/GLSL150", type, sec); } else { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/GLSL", type, sec); } if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("glsl400")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/GLSL400", type, sec); } } else if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("hlsl")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/HLSL", type, sec); } #ifdef OGRE_BUILD_PLUGIN_CG Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/Cg", type, sec); #endif if (use_HLSL_Cg_shared) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(arch + "/materials/programs/HLSL_Cg", type, sec); } #ifdef OGRE_BUILD_COMPONENT_RTSHADERSYSTEM mRTShaderLibPath = arch + "/RTShaderLib"; Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/materials", type, sec); if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("glsles")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/GLSL", type, sec); Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/GLSLES", type, sec); } else if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("glsl")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/GLSL", type, sec); } else if(Ogre::GpuProgramManager::getSingleton().isSyntaxSupported("hlsl")) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/HLSL", type, sec); } # ifdef OGRE_BUILD_PLUGIN_CG Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/Cg", type, sec); # endif if (use_HLSL_Cg_shared) { Ogre::ResourceGroupManager::getSingleton().addResourceLocation(mRTShaderLibPath + "/HLSL_Cg", type, sec); } #endif /* OGRE_BUILD_COMPONENT_RTSHADERSYSTEM */ #endif /* OGRE_PLATFORM == OGRE_PLATFORM_NACL */ }