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();

你可能感兴趣的:(word)