重要特性:
- 跨CPU化,全线支持x86-64bit
- 增加Intel C/C++系列支持
基础:
- 增加模板函数hgl_abs,内联函数hgl_rad2ang/hgl_ang2rad
- 将淡入淡出影响器Fade改为模型板
- RectScope模板增加与Vertex2模板数据的+/-/+=/-=计算处理
- 增加第三方库:APR(Apache Portable Runtime)
- 增加内存池类MemoryPool,使用apache内存池底层
- 增加WaitTime函数
- Microsoft编译器增加Microsoft C/C++ 17/Visual C++ 11支持
- 改进模板List的重设数据量以及整列表复制性能
- 删除memex.h以及其下所有函数,将所有调用改为标准mem函数调用。
- 增加CML数学库为数学处理基础库
- AnsiToUnicode/UnicodeToAnsi改为AnsiToWide/WideToAnsi
- WideString类增加FillChar函数,用于填充字符到字符串
- 计时函数改为APR跨平台版本
- 增加Visual C++ 2010 Service Pack 1提示
- 增强Affector/AffectorTrackTimer安全性
- SAFE_CLEAR_OBJECT_ARRAY等宏改进,更安全
- 改进任务管理器TaskManager
- 修复按键映射类
- 修正Vertex2::Length()计算没有sqrt问题
- 编译/库连接宏增加对VC/CB未知版本支持
- 删除废弃的Coll2D
- 删除没有实现的FlowTransition
- 删除非原始光盘检测函数
- 实现影响器版本矢量追踪
- 系统路径检测增加公共应用程序路径和本地应用程序路径
- 增加非Win32平台下插件再增加平台名称后缀标识
- 提供部分Win64平台插件
- 全新的智能指针系列,仿c++11标准设计
- 修订WideString/StringList,使之处理数据更为严谨.
- FileInfo::directory改名为is_directory
- 统一ansi<->wide转换处理代码为一处、增强wide_to_utf8/utf8_to_wide
- 增加utf16/32至wchar_t的转换功能
- Stream及派生类增加CanSeek,CanRead,CanWrite属性
- 完善StringList,增加对utf32以及对CPU大小头的支持
- 字符串函数返回值由int改为size_t,保持和标准crt库一样。
- 清除旧有MD5算法实现,增加新的md5类,归属UnilityTools,头文件为ut/md5.h,源代码为UtilityTools/Hash/md5.cpp,md5util.cpp,新的使用apr实现。
- 操作系统识别增加BeOS/Haiku,QNX
- 操作系统识别将BSD分裂为FreeBSD,NetBSD,OpenBSD
- CPU识别将MIPS分裂为MIPS,MIPSel
- 编译器识别增加PGI,TI,LLVM Clang
- 字符串函数全部提为模板实现,以方便未来支持任何类型的字符串。
- 修正gnu c/c++与linux操作系统头文件配置不正确问题
- 所有Stream长度单位改为int64
- 增加Endian转换处理
- 更改日志输出目录,以及处理机制。(Windows UAC兼容性提升)
- 增加对库的大头小头检测,以避免宏错误识别
多线程、多进程:
- 删除原本的模拟RWLock,改为Win2008 R2/Win 7专有SRWLock,其它情况使用APR实现。(注:原本模拟RWLock即采用APR代码实现)
- ThreadMutex删除不曾被任何工程使用的WaitLock函数
- ThreadMutex增加APR跨平台实现版本
- 删除Thread::Sleep函数,请改用WaitTime函数,以免造成与Windows api冲突
- 删除CircleStream,增加RingBuffer,功能基本替代,但更强大
- 添加多进程共享内存模块,使用APR实现
- 增加进程排斥模块
- 增加CondVar,包含Win2008/Vista专用版和APR跨平台版
- Thread::Execute改为循环执行,以返回值区分是否继续执行
- Atomic增加volatile修饰,并改用APR实现
- Thread类删除Pause/Resume函数
- 增加Thread类的posix thread实现
- 增加Semaphore类的posix thread实现
脚本部分:
- 删除AngelScript支持
- DevilScript/DevilVM增加x86-64位函数呼叫支持
网络部分:
- 增加network名字空间,将所有网络模块移置network名字空间
- TCPServer发送数据从自有多线程阻塞模式发送改为IOCP多线程发送
- 修正TCPServer在WindowsXP操作系统下运行错误的问题
- 将网络处理代码中的各种错误和数值全部抽调并定义宏集中放置于Socket.H,以增加开发者查看源代码时的易读性
- TCPSocket将部分设置改为宏在Socket.H中标记
- TCPSocket默认提供的封包类型和封包长度数据类型改为可自定义
- 重构TCPServer,增设TCPAcceptManage,分离TCPServer本身与接入者管理。分离原有IOCP支持为IOCPAcceptManage,并增加多Select模式的MSAcceptManage。
- Socket增加SetNodelay函数
- TCP部分增加全新的封包自动分发机制,自动分发机制并不是直接简单的按表分发,而是减少了一次内存拷贝,比手动模式更有效率
- IOCPAcceptManage/MSAcceptManage改为池管理连接
- TCPSocket::UseSock改名为UseSocket
- 修正TCPMultiAccept模式下第一次通信会等待的问题
- 砍掉TCPClient::Disconnect等待线程自动退出设计
- 解决TCPClinet退出需要等待过久问题
- MTBAccept增加发送处理的安全锁处理
- 为各TCPAccept派生类增加CloseSocket重载,以处理各类需要特别处理的部分。
- 增加Multi Thread Block模式
- 增加MSAccept::RecvData/SendData的安全性
图形部分:
- 升级GLEW到1.7.0
- HTP增加自定义绘制方法
- 改进截图程序处理流程,提升代码易读性、美观性与执行效能
- 删去DrawArray中的double数据类型支持
- 优化hgpuiButton加载图层代码
音频、视频部分:
- 修正音源距离描述注释,并修改变量名称以更为清晰表达意思
- AudioPlayer增加淡入淡出处理
- 修正TheoraMovie无音频时无法播放问题
- 修正AudioPlayer自动音量调整时间记录不能为半秒的问题