1、什么是Irrlicht
Irrlicht是一个3D游戏引擎。它具有高效,实时等特点,是个完全跨平台的引擎,使用D3D、OpenGL和它的自己的渲染程序。支持动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(http://www.oschina.net/p/irrlicht)
Irrlicht的源码写的非常棒,结构非常清晰,也非常简单易读,建议希望进一步学习软件或者C++的童鞋都读一下。
2、Irrlicht源码结构
gui impl:
对gui控件进行一些封装,当然都是自绘的控件。这样就可以在游戏中显示出不同的控件来。比如聊天系统,背包等。
io impl:
对文件系统,xml,zip,tar等进行封装,里面的文件系统都只采用了crt的函数,所以能够实现跨平台的支持。
irr impl:
这里对各个平台的窗口机制以及其他的一些API进行封装。
scene impl:
这里貌似对图形处理的一些类。
video impl:
对图形引擎进行封装,比如将d3d,Opengl等绘图的部分进行封装,对外部进行隔离起来。
3、Irrlicht窗口封装(仅分析Windows部分)
为了有个思路,这里我们用irr自带的example1(Hello World)来说明,下面是main的代码: