存档在 2012年5月

《古月》发布LR-49.RC2版

2012年5月9日

 

 

重要特性:

  • 跨CPU化,全线支持x86-64bit
  • 增加Intel C/C++系列支持

 

基础:

  1. 增加模板函数hgl_abs,内联函数hgl_rad2ang/hgl_ang2rad
  2. 将淡入淡出影响器Fade改为模型板
  3. RectScope模板增加与Vertex2模板数据的+/-/+=/-=计算处理
  4. 增加第三方库:APR(Apache Portable Runtime)
  5. 增加内存池类MemoryPool,使用apache内存池底层
  6. 增加WaitTime函数
  7. Microsoft编译器增加Microsoft C/C++ 17/Visual C++ 11支持
  8. 改进模板List的重设数据量以及整列表复制性能
  9. 删除memex.h以及其下所有函数,将所有调用改为标准mem函数调用。
  10. 增加CML数学库为数学处理基础库
  11. AnsiToUnicode/UnicodeToAnsi改为AnsiToWide/WideToAnsi
  12. WideString类增加FillChar函数,用于填充字符到字符串
  13. 计时函数改为APR跨平台版本
  14. 增加Visual C++ 2010 Service Pack 1提示
  15. 增强Affector/AffectorTrackTimer安全性
  16. SAFE_CLEAR_OBJECT_ARRAY等宏改进,更安全
  17. 改进任务管理器TaskManager
  18. 修复按键映射类
  19. 修正Vertex2::Length()计算没有sqrt问题
  20. 编译/库连接宏增加对VC/CB未知版本支持
  21. 删除废弃的Coll2D
  22. 删除没有实现的FlowTransition
  23. 删除非原始光盘检测函数
  24. 实现影响器版本矢量追踪
  25. 系统路径检测增加公共应用程序路径和本地应用程序路径
  26. 增加非Win32平台下插件再增加平台名称后缀标识
  27. 提供部分Win64平台插件
  28. 全新的智能指针系列,仿c++11标准设计
  29. 修订WideString/StringList,使之处理数据更为严谨.
  30. FileInfo::directory改名为is_directory
  31. 统一ansi<->wide转换处理代码为一处、增强wide_to_utf8/utf8_to_wide
  32. 增加utf16/32至wchar_t的转换功能
  33. Stream及派生类增加CanSeek,CanRead,CanWrite属性
  34. 完善StringList,增加对utf32以及对CPU大小头的支持
  35. 字符串函数返回值由int改为size_t,保持和标准crt库一样。
  36. 清除旧有MD5算法实现,增加新的md5类,归属UnilityTools,头文件为ut/md5.h,源代码为UtilityTools/Hash/md5.cpp,md5util.cpp,新的使用apr实现。
  37. 操作系统识别增加BeOS/Haiku,QNX
  38. 操作系统识别将BSD分裂为FreeBSD,NetBSD,OpenBSD
  39. CPU识别将MIPS分裂为MIPS,MIPSel
  40. 编译器识别增加PGI,TI,LLVM Clang
  41. 字符串函数全部提为模板实现,以方便未来支持任何类型的字符串。
  42. 修正gnu c/c++与linux操作系统头文件配置不正确问题
  43. 所有Stream长度单位改为int64
  44. 增加Endian转换处理
  45. 更改日志输出目录,以及处理机制。(Windows UAC兼容性提升)
  46. 增加对库的大头小头检测,以避免宏错误识别

 

多线程、多进程:

  1. 删除原本的模拟RWLock,改为Win2008 R2/Win 7专有SRWLock,其它情况使用APR实现。(注:原本模拟RWLock即采用APR代码实现)
  2. ThreadMutex删除不曾被任何工程使用的WaitLock函数
  3. ThreadMutex增加APR跨平台实现版本
  4. 删除Thread::Sleep函数,请改用WaitTime函数,以免造成与Windows api冲突
  5. 删除CircleStream,增加RingBuffer,功能基本替代,但更强大
  6. 添加多进程共享内存模块,使用APR实现
  7. 增加进程排斥模块
  8. 增加CondVar,包含Win2008/Vista专用版和APR跨平台版
  9. Thread::Execute改为循环执行,以返回值区分是否继续执行
  10. Atomic增加volatile修饰,并改用APR实现
  11. Thread类删除Pause/Resume函数
  12. 增加Thread类的posix thread实现
  13. 增加Semaphore类的posix thread实现

 

脚本部分:

  1. 删除AngelScript支持
  2. DevilScript/DevilVM增加x86-64位函数呼叫支持

 

网络部分:

  1. 增加network名字空间,将所有网络模块移置network名字空间
  2. TCPServer发送数据从自有多线程阻塞模式发送改为IOCP多线程发送
  3. 修正TCPServer在WindowsXP操作系统下运行错误的问题
  4. 将网络处理代码中的各种错误和数值全部抽调并定义宏集中放置于Socket.H,以增加开发者查看源代码时的易读性
  5. TCPSocket将部分设置改为宏在Socket.H中标记
  6. TCPSocket默认提供的封包类型和封包长度数据类型改为可自定义
  7. 重构TCPServer,增设TCPAcceptManage,分离TCPServer本身与接入者管理。分离原有IOCP支持为IOCPAcceptManage,并增加多Select模式的MSAcceptManage。
  8. Socket增加SetNodelay函数
  9. TCP部分增加全新的封包自动分发机制,自动分发机制并不是直接简单的按表分发,而是减少了一次内存拷贝,比手动模式更有效率
  10. IOCPAcceptManage/MSAcceptManage改为池管理连接
  11. TCPSocket::UseSock改名为UseSocket
  12. 修正TCPMultiAccept模式下第一次通信会等待的问题
  13. 砍掉TCPClient::Disconnect等待线程自动退出设计
  14. 解决TCPClinet退出需要等待过久问题
  15. MTBAccept增加发送处理的安全锁处理
  16. 为各TCPAccept派生类增加CloseSocket重载,以处理各类需要特别处理的部分。
  17. 增加Multi Thread Block模式
  18. 增加MSAccept::RecvData/SendData的安全性

 

图形部分:

  1. 升级GLEW到1.7.0
  2. HTP增加自定义绘制方法
  3. 改进截图程序处理流程,提升代码易读性、美观性与执行效能
  4. 删去DrawArray中的double数据类型支持
  5. 优化hgpuiButton加载图层代码

 

音频、视频部分:

  1. 修正音源距离描述注释,并修改变量名称以更为清晰表达意思
  2. AudioPlayer增加淡入淡出处理
  3. 修正TheoraMovie无音频时无法播放问题
  4. 修正AudioPlayer自动音量调整时间记录不能为半秒的问题
鄂ICP备09027626号