• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            fengyue

            OGRE資源管理分析

            OGRE的文件系統(tǒng)比較復(fù)雜,不熟悉的人不知道怎么使用,經(jīng)常出現(xiàn)找不到資源的問(wèn)題,在這里簡(jiǎn)單介紹一下資源路徑的設(shè)置:
            資源路徑可以通過(guò)程序設(shè)置也可以通過(guò)配置方式:
            配置方式
            resources.cfg就是用來(lái)配置資源的路徑的,內(nèi)容如下:
            # Resource locations to be added to the 'boostrap' path
            # This also contains the minimum you need to use the Ogre example framework
            [Bootstrap]
            Zip=../../Media/packs/OgreCore.zip

            # Resource locations to be added to the default path
            [General]
            FileSystem=../../Media
            FileSystem=../../Media/fonts
            FileSystem=../../Media/materials/programs
            FileSystem=../../Media/materials/scripts
            FileSystem=../../Media/materials/textures
            FileSystem=../../Media/models
            FileSystem=../../Media/overlays
            FileSystem=../../Media/particle
            FileSystem=../../Media/gui
            FileSystem=../../Media/DeferredShadingMedia
            Zip=../../Media/packs/cubemap.zip
            Zip=../../Media/packs/cubemapsJS.zip
            Zip=../../Media/packs/dragon.zip
            Zip=../../Media/packs/fresneldemo.zip
            Zip=../../Media/packs/ogretestmap.zip
            Zip=../../Media/packs/skybox.zip

            Bootstrap、General就是資源組名稱,F(xiàn)ileSystem、Zip就是文件系統(tǒng)類型,表示壓縮包還是文件系統(tǒng)。一般我們開(kāi)發(fā)時(shí)都是使用文件系統(tǒng),所以配置對(duì)應(yīng)的路徑就可以。OGRE是支持Zip壓縮包的,如果要實(shí)現(xiàn)自己的壓縮包需要實(shí)現(xiàn)對(duì)應(yīng)的Archive的子類,實(shí)現(xiàn)對(duì)應(yīng)接口就可以。可以參考ZipArchive、ZipArchiveFactory、ZipDataStream實(shí)現(xiàn)。

            程序方式
            其實(shí)配置方式最終也是調(diào)用程序來(lái)設(shè)置的,resources.cfg只是指定了ResourceGroupManager::getSingleton().addResourceLocation的參數(shù)。
            看下面的函數(shù)就很清楚了,就是讀取resources.cfg,將配置的路徑都添加到資源管理,設(shè)置完資源組路徑,調(diào)用ResourceGroupManager::getSingleton().initialiseAllResourceGroups()初始化就可以,后續(xù)就可以直接加載資源,很簡(jiǎn)單吧。

             1   virtual void setupResources(void)
             2    {
             3        // Load resource paths from config file
             4        ConfigFile cf;
             5        cf.load(mResourcePath + "resources.cfg");
             6
             7        // Go through all sections & settings in the file
             8        ConfigFile::SectionIterator seci = cf.getSectionIterator();
             9
            10        String secName, typeName, archName;
            11        while (seci.hasMoreElements())
            12        {
            13            secName = seci.peekNextKey();
            14            ConfigFile::SettingsMultiMap *settings = seci.getNext();
            15            ConfigFile::SettingsMultiMap::iterator i;
            16            for (i = settings->begin(); i != settings->end(); ++i)
            17            {
            18                typeName = i->first;
            19                archName = i->second;
            20#if OGRE_PLATFORM == OGRE_PLATFORM_APPLE
            21                // OS X does not set the working directory relative to the app,
            22                // In order to make things portable on OS X we need to provide
            23                // the loading with it's own bundle path location
            24                ResourceGroupManager::getSingleton().addResourceLocation(
            25                    String(macBundlePath() + "/" + archName), typeName, secName);
            26#else
            27                ResourceGroupManager::getSingleton().addResourceLocation(
            28                    archName, typeName, secName);
            29#endif
            30            }

            31        }

            32    }


             

            posted on 2011-11-23 11:07 風(fēng)悅 閱讀(2270) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            无码人妻久久一区二区三区免费 | 欧美精品丝袜久久久中文字幕| 999久久久无码国产精品| 国产精品99精品久久免费| 久久精品无码一区二区三区| 午夜精品久久久久成人| 久久精品aⅴ无码中文字字幕重口| 久久免费高清视频| 久久精品国产亚洲AV不卡| 好属妞这里只有精品久久| 欧美激情精品久久久久久久九九九 | 久久精品国产福利国产秒| 亚洲精品国精品久久99热| a级成人毛片久久| 大香伊人久久精品一区二区| 久久精品九九亚洲精品天堂| 亚洲综合伊人久久大杳蕉| 国产精品美女久久久网AV| 亚洲欧美伊人久久综合一区二区 | 久久综合丝袜日本网| 国产精品久久久香蕉| 国产69精品久久久久9999| 天堂久久天堂AV色综合| 香蕉久久永久视频| 久久久精品国产亚洲成人满18免费网站| 久久精品国产色蜜蜜麻豆| 中文字幕久久精品| 久久久久人妻精品一区三寸蜜桃| 成人久久综合网| 久久国产精品无码一区二区三区 | 国产综合精品久久亚洲| 久久免费精品视频| 免费精品99久久国产综合精品| 久久久av波多野一区二区| 亚洲午夜久久久久久久久电影网 | 久久久久国产日韩精品网站| 久久精品国产99国产电影网 | 无码精品久久久天天影视| 乱亲女H秽乱长久久久| 亚洲国产欧美国产综合久久| 色综合久久久久综合体桃花网|