Torque源代码解析(二)

平台层

概况

平台层是Torque的基础,在最底层运行,对于游戏的系统提供一个跨平台跨架构的接口。这个平台层负责文件和网络IO的详细操作、图形的初始化、设备的初始化和输出,时间事件继承。标准库函数就是通过平台层代理,这样能使游戏代码变得安全。

系统头文件仅仅在平台库中包含。平台层可以分为许多块:暴露给游戏的跨平台接口(engine/platform),和平台定义库(engine/platformWin32,engine/platformMacOS,engine/platformX86UNIX).

事件模型

        这个游戏由来自平台库的一系列事件驱动。通过记录平台的事件流,这个游戏的一部分模拟变量能够被得到并用于调试。

        用于平台的事件都是Event的子类:

        一般事件:  TimeEventQuitEventConsoleEvent

        输入事件:  InputEventMouseMoveEvent

        网络事件:  PacketReceiveEventConnectedReceiveEventConnectedAcceptEvent

平台的作用

        Torque在平台层有很多强大的库:

1.    Memory Manage-位于engine/platform/platformMemory.cc,这个是被设计用来在缓存分配边界、平台越界调试检查、多个断点释放、内存泄露时分配内存。

2.    分析工具-是分级的时间分析,允许游戏的特定部分被计时

3.    线程管理-Torque有一个多用途的类用来创建线程、互斥、信号量

4.    标准库-所有的标准库函数以dFuncname被重定义,例如sprintf变成了dSprintfstrcpy变成了dStrcpy等等。这个dFuncname充分利用Torque的功能设置和保证在所有平台以同样的方式工作,而他们所替代的那些函数做不到这些。

网络功能

        这个平台有一个为了开放和关闭网络端口、连接其他主机的公共的接口,,分析网络地址和发送接受网络数据。主持TCPUDP

 

游戏接口

        GameInterface类定义在engine/platform/gameInterface.h,是平台和库与游戏通信的接口,也是传输的主要句柄。所有的平台事件通过GameInterface::processEvent()传输,轮流给他们分配虚拟事件句柄。只有一个这个类或子类的实例应该存在这个工程里。一个叫Game points的全局指针指向它。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值