Torque源代码解析(一)
来源:互联网 发布:gif动态软件 编辑:程序博客网 时间:2024/05/17 02:09
基本的控制流
因为不同的平台对应用程序有不同的main函数接口,Torque引擎的main()函数运行在特定的操作系统平台库。在windows操作系统中,它是在engine/platformWin32/winWindow.cc文件中,定义了main()和WinMain()。这些按顺序调用run()去调用Game->main(int argc, const char **argv)。Game是一个参考GameInterface类的能够指向一个特定游戏动作的全局指针。
这个Torque例子程序主要的初始化发生在in engine/game/main.cc 的DemoGame::main()。这个函数初始化lib,初始化游戏函数,然后进入主要的游戏循环直到程序中止。这个主循环一般调用平台库函数(engine/platform/platform.h)去生成平台事件,然后驱动main
这个main.cc文件也有DemoGame函数优先于一些基本的事件进程函数:鼠标移动时间进程(发送鼠标移动事件到GUI),输入事件进程(其他输入相关的事件),时间事件进程基于模拟器的时间度量设置来计算时间。
1. 服务端的时间进程(engine/game/game.cc里的serverProcess())
2. 核对服务端的网络包发送(engine/game/netDispatch.cc里的serverNetProcess())
3. 提前模拟事件(engine/console/simmanager.cc里的Sim::advanceTime())
4. 客户端的时间进程(engine/game/game.cc里的clientProcess())
5. 核对客户端网络包发送(engine/game/netDispatch.cc里的clientNetProcess())
6. 渲染当前帧(engine/gui/guiCanvas.cc里的GuiCanvas::render())
7. 核对网络超时(engine/game/netDispatch.cc里的dispatchCheckTimeouts())
UDP网络包在DemoGame::processPacketReceiveEvent(engine/game/netDispatch.cc中定义)被处理
TCP连接数据或信息在DemoGame::processConnected*Event(engine/game/TCPObject.cc中定义)被处理。
- Torque源代码解析(一)
- Torque源代码解析(二)
- emule源代码解析(一)
- tinyxml源代码解析(一)
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- 转 emule源代码解析(一)
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- openstack horizon源代码解析(一)
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- Spring源代码解析(一):IOC容器
- OpenLTE开源代码结构解析(一)
- Spring源代码解析(一):IOC容器
- C++之 const的用法
- 优秀程序员的十个习惯
- 忙!
- Head First C# 中文版 图文皆译 第七章 接口和抽象类 page280
- 推荐一个shell命令 - a
- Torque源代码解析(一)
- Linux VI命令使用技巧
- 构建基于google地图的flash应用程序
- java的几种对象(PO,VO,DAO,BO,POJO)解释
- JDK在linux平台的安装
- 数据库主键设计之思考
- [原创]C#列出系统中所有运行的程序
- NAND for SQUASHFS design
- Tomcat在Linux操作系统下安装的方法