Irrlicht_0.1源码学习—include/Irrlicht.h

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Irrlicht_0.1源码学习—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也不熟的出门左拐,,,)

以上是关于Irrlicht_0.1源码学习—include/Irrlicht.h的主要内容,如果未能解决你的问题,请参考以下文章

Irrlicht_0.1源码学习—include/irrTypes.h & include/IeventReceiver.h

Irrlicht_0.1源码学习—include/core/dimension2d.hinclude/core/position2d.hIUnknown.hKeycodes.h &

Irrlicht_0.1源码学习——Welcome to the Irrlicht Engine

Irrlicht 3D Engine 笔记系列之 教程4 - Movement

libevent源码学习研究(libevent-0.1)

C++ 包含守卫