【c++】在DirectX 3D中使用CEGUI

一、CEGUI简介     CEGUI,为Crazy Eddie's GUI的缩写,它是一个用C++开发的面向对象的免费界面库,针对游戏开发者,提供了3D环境中的窗口及其部件的图形API。CEGUI在0.4.1之前(包括0.4.1),使用LGPL授权协议,从0.5版本开始则采用了更为宽松的MIT协议。目前使用CEGUI的项目(摘自http://www.cegui.org.uk): Project Xenocide BlitzMax Plant covered GUI 你可以从下面链接得到更多关于CEGUI的知识: (1)    http://www.cegui.org.uk/wiki/index.php/Main_Page (2)    http://sourceforge.net/projects/crayzedsgui/ (3)    http://www.cegui.org.uk/wiki/index.php/FAQ 二、CEGUI结构概览     从上一小节中给出的链接,你可以下载CEGUI的SDK。该SDK以DLL的形式提供,下面简单介绍一下这些DLL的作用及分类: 三、在DirectX中使用CEGUI     CEGUI是一个跨平台的图形界面库,其平台无关性是通过对平台的封装实现的。在上一节中我们分析了CEGUI的SDK结构,在其渲染子系统中提供了Windows平台上的DirectX8.1/9.0的支持,因此不难推断在自己写的程序中应该可以使用CEGUI。 3.1 CEGUI的资源组织     CEGUI的资源目录为datafiles,其组织情况如下: configs:资源配置文件 fonts:字体资源 imagesets:各种图片资源(如:皮肤图片等) layouts:布局文件(可以利用CEGUILayout得到) lookfeel:皮肤配置文件 lua_scripts:Lua脚本文件 schemes:xml配置文件的scheme     我们主要关注的是layouts中的文件,这些xml文件可以由CEGUI的附带界面设计工具CEGUILayout得到。如下图所示: 3.2 程序中使用CEGUI     在这一小节中,我将使用MFC+DirectX9.0c+CEGUI创建一个DEMO,下面仅列出一些关键代码,在文章最后给出了DEMO的源代码下载链接。如果你对在MFC或者Win32 SDK中使用DirectX 3D还不熟悉,可以参考Direct3D入门之框架的搭建一文。 (1)    创建DirectX 3D设备m_d3dDevice; (2)    创建CEGUI::Render对象:       m_pCEGUIRender = new CEGUI::DirectX9Renderer(m_d3dDevice , 0);    … Continue reading “【c++】在DirectX 3D中使用CEGUI”