Irrlicht引擎源码剖析——第十八天

今天开始看GUI(图像用户界面)模块的实现部分了。首先是BuildInFont.h,内置字体,在这个头文件里作者使用了Bin2H。Bin2H是免费软件,可以从www.code3d.com 免费下载,一个将二进制文件转换到 C 头文件中的Win32命令行实用工具,数据块作为代表该文件的内容。GUIIcons.h中建立了15种图标,并注明在BuidInFont中还有13种。

 

接下来是各个GUI组件的实现部分了。首先看CGUIWindow.h/.cpp,除去构造及析构函数,还增加事件处理函数以及绘制元素函数,成员变量中包含了按钮元素(组件)。由此可知GUI各个元素(组件)都会包含事件处理以及绘制元素的方法。

CGUIButton.h/.cpp,增加了一个设置字体的方法。

CGUICheckbox.h/.cpp,增加了设置选定状态以及查询选定状态对的方法。

CGUIFont.h/.cpp,增加了载入字体文件和绘制文本等方法。

CGUIFileOpenDialog.h/.cpp,增加获取所选文件的文件名及用文件填充列表框等方法。

CGUIImage.h/.cpp,没有事件处理方法,增加设置图像的方法。

CGUIListBox.h/.cpp,增加了对列表项的处理以及设置图标字体等方法。

CGUIMeshViewer.h/.cpp,增加网格和材质的设置方法。

CGUIScrollBar.h/.cpp,增加设置或获取滚动条及设置滚动条最大数目等方法。

CGUISkin.h/.cpp,没有事件处理和绘制方法。拥有获取或设置皮肤颜色、大小、字体等方法。

CGUIStaticText.h/.cpp,没有事件处理方法。

 

最后看CGUIEnvironment.h/.cpp文件,它作为GUI所有元素的管理器,将所有GUI元素(组件)的建立操作封装在一起。并有处理鼠标、键盘焦点消息的方法。这样GUI模块的实现全部完成。

 

最后这个引擎还剩下CIrrDeviceWin32.h/.cpp还未解决,在这个文件里,实现了一个派生类,基类在IrrlichtDevice.h中,该类封装了视频驱动设备、文件系统、场景管理器、GUI环境,使用该类实例来创建这些功能模块的对象,该类还含有创建窗口、运行设备、关闭设备、全屏切换等方法。

 

今天解决28个代码文件,还剩0个。至此Irrlight1.0版的源码剖析活动全部完成,接下来是用这个版本的引擎和最新版本的引擎进行对照,看看新增了哪些功能,修改了哪些东西等等。然后在利用该引擎做几个例题,熟悉应用。OVER!!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值