Irrlicht_0.1源码学习(3)—Irrlicht.cpp & include/Irrlicht.h
从这一篇开始分析学习irrlicht源码,第一次就交给include目录下的Irrlicht.h头文件吧:)
文件的最开始是一大段绿油油的注释块,主要写了一些版权相关的东西,这里直接忽略...,有兴趣的自行阅读
然后是一连串预编译指令,没啥好说的,引用了n多的头文件,这里暂不作添加,以后分析完再一个一个慢慢添加进来就可以了。
继续向下看,这个文件包含的内容很简单,先声明一个创建引擎设备对象的函数(createDevice),然后建立一个命名空间irr,在该命名空间里又分别包含了:core、gui、io、scene、video等5个命名空间。
这里我们可以先看一下createDevice的函数原型以及这个函数到底是干嘛的:
//! Creates an Irrlicht device. The Irrlicht device is the root object for using the engine. /** \param deviceType: Type of the device. This can currently be video::DT_NULL, video::DT_SOFTWARE, video::DT_DIRECTX8 and video::DT_OPENGL. \param windowSize: Size of the window or the video mode in fullscreen mode. \param bits: Bits per pixel in fullscreen mode. Ignored if windowed mode. \param fullscreen: Should be set to true if the device should run in fullscreen. Otherwise the device runs in window mode. \param receiver: A user created event receiver. \return Returns pointer to the created IrrlichtDevice or null if the device could not be created. */ IRRLICHT_API IrrlichtDevice* createDevice(video::EDriverType deviceType, const core::dimension2d<s32>& windowSize, u32 bits, bool fullscreen, IEventReceiver* receiver = 0);
稍稍把上面的注释翻译下,大意说这个函数是用来创建一个irrlicht引擎设备的(通过返回一个IrrlichtDevice指针),而这个所谓的引擎设备则是用户(即开发者)使用引擎功能的一个根对象,差不多充当一个引擎提供的所有服务的接口角色。
参数deviceType用于指定设备类型(什么破解释orz,其实就是指定使用何种渲染方式:OpenGL?DX?软渲染还是压根就不渲染)
参数windowSize则是用于指定窗口的尺寸,在全屏模式下则指定窗口的分辨率
参数bits在全屏模式下指定画面显示的像素深度,在窗口模式下则并没有什么卵用
参数fullscreen用于指定是否全屏
参数receiver用于指定一个用户创建的事件接收器,缺省为0
至于irrlicht.cpp这个文件,内容也是少的可伶,只是实现了一个Dll入口函数DllMain(),用于检测内存泄露,不懂dll编程的童鞋完全可以把这里的DllMain换成熟悉的main函数(main也不熟的出门左拐,,,)