CEGUI 的HelloWord


下面使用CEGUI-0.7.7簡述下CEGUI的初始化過程:

1.編譯好CEGUI的SDK,設置好環境變量

2.創建一個win32應用程序,自己寫好winmain和消息處理,嫌麻煩的可以到下面網頁拷貝使用

winmain代碼:http://www.cnblogs.com/gamesky/archive/2012/07/28/2612911.html

3.初始化一個IDirect3DDevice,詳細過程網上多得是,我也給出一個

device初始化:http://www.cnblogs.com/gamesky/archive/2012/07/28/2612865.html

4.設置包含和依賴路徑、依賴庫

設置CEGUI 和DX的包含路徑 :

"$(DXSDK_DIR)\Include;"..\CEGUI-0.7.7\cegui\include";"..\CEGUI-0.7.7\Samples\common\include"

設置依賴路徑:

"$(DXSDK_DIR)\Lib\x86;"..\CEGUI-0.7.7\lib"

設置依賴庫:

d3d9.lib
d3dx9.lib
winmm.lib
CEGUIBase_d.lib
CEGUIDirect3D9Renderer_d.lib

注意:我用了相對路徑,請根據自己的實際情況修改

5.創建CEGUI的Renderer和System,設置相關資源具體代碼如下:

頭文件:

#include"CEGUI.h"
#include "RendererModules/Direct3D9/CEGUIDirect3D9Renderer.h"

        //創建Direct3D9Renderer,注意:bootstrapSystem中創建了system
        myRenderer= &CEGUI::Direct3D9Renderer::bootstrapSystem(pDevice);

        // bootstrapSystem與下面2句等價
        //myRenderer =&CEGUI::Direct3D9Renderer::create(pDevice);
        //CEGUI::System::create( *myRenderer );

        //設置圖片解析模塊setImageCodec
        CEGUI::System::getSingleton().setImageCodec("FreeImageImageCodec");

        //設置默認資源路徑
        resPro = static_cast<CEGUI::DefaultResourceProvider*>
            (CEGUI::System::getSingleton().getResourceProvider());
        resPro->setResourceGroupDirectory("schemes", "../datafiles/schemes/");
        resPro->setResourceGroupDirectory("imagesets", "../datafiles/imagesets/");
        resPro->setResourceGroupDirectory("fonts", "../datafiles/fonts/");
        resPro->setResourceGroupDirectory("layouts", "../datafiles/layouts/");
        resPro->setResourceGroupDirectory("looknfeels", "../datafiles/looknfeel/");
        resPro->setResourceGroupDirectory("lua_scripts", "../datafiles/lua_scripts/");
        resPro->setResourceGroupDirectory("schemas", "../datafiles/xml_schemas/");
        resPro->setResourceGroupDirectory("animations", "../datafiles/animations/");
        CEGUI::AnimationManager::setDefaultResourceGroup("animations");
        CEGUI::Imageset::setDefaultResourceGroup("imagesets");
        CEGUI::Font::setDefaultResourceGroup("fonts");
        CEGUI::Scheme::setDefaultResourceGroup("schemes");
        CEGUI::WidgetLookManager::setDefaultResourceGroup("looknfeels");
        CEGUI::WindowManager::setDefaultResourceGroup("layouts");
        CEGUI::ScriptModule::setDefaultResourceGroup("lua_scripts");
        CEGUI::XMLParser* parser = CEGUI::System::getSingleton().getXMLParser();

        if (parser->isPropertyPresent("SchemaDefaultResourceGroup"))
            parser->setProperty("SchemaDefaultResourceGroup", "schemas");

        //加載方案
        CEGUI::SchemeManager::getSingleton().create( "GuiLookSkin.scheme" );

        //設置默認字體
        CEGUI::System::getSingleton().setDefaultFont( "Serif" );

        //設置默認鼠標圖標
        CEGUI::System::getSingleton().setDefaultMouseCursor( "WindowsLook", "MouseArrow" );
        WindowManager& wmgr = WindowManager::getSingleton();
        //創建跟窗口
        w_root= wmgr.createWindow( "DefaultWindow","MainRoot");
        //加載布局文件
        CEGUI::Window *pUI=wmgr.loadWindowLayout("bottomhud.layout");
        w_root->addChildWindow(pUI);
        //設置GUI的底部窗口
        System::getSingleton().setGUISheet( w_root );

6.繪制GUI,在每一幀的繪制函數中加入

CEGUI::System::getSingleton().renderGUI();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM