zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    洛谷 P1886 滑动窗口 (单调队列)
    Acwing 288.休息时间 (环形DP)
    Acwing 287.积蓄程度 (树形DP换根)
    2020 Multi-University Training Contest 5 Tree (树形DP)
    剑指offer-JZ50-数组中的重复数字(C++)
    假设以下有一个结构体存放的是学生的记录,每条记录包括:学号、姓名、成绩
    剑指offer-JZ48-不用加减乘除做加法(C++)
    剑指offer-JZ51-构建乘积数组
    数据结构与算法->递归
    力扣(LeetCode)试题6-Z字形变换 C++代码
  • 原文地址:https://www.cnblogs.com/gamesky/p/2862354.html
Copyright © 2011-2022 走看看