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.
    
eturn 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也不熟的出门左拐,,,)

原文地址:https://www.cnblogs.com/MuSmile/p/5348652.html