The My Opera forums have been replaced with forums.opera.com. Please head over there to discuss Opera's products and features

See the new Forums

[ 转]Nel 基础辅助库(Nel Misc)

Forums » Ryzom » Nel

You need to be logged in to post in the forums. If you do not have an account, please sign up first.

Go to last post

3. November 2011, 02:24:37

li9chuan

Posts: 12

[ 转]Nel 基础辅助库(Nel Misc)

Nel 基础辅助库(Nel Misc)

(参考英文链接:http://dev.ryzom.com/wiki/nel/Nel_Misc)


简介
Nel基础库中包含了使用Nel其他库所用到的核心类型,功能函数和公共程序。它也独立包含了一些方便使用的辅助函数。

核心功能

  • 基本数据类型
    平台无关的类型定义,诸如sint32,uint32等等
    异常处理基类
    各种和显示层(displayers)连接的调试宏,例如断言(assertions),调试信息,警告(warnings)等等
    方便的公用函数库和类型 – 数学库,字符串处理等等
    支持智能指针的引用计数系统
    智能指针支持(不再被引用时删除指向的数据)
    Unicode字符串处理
    显示层系统(Displayers),抽象了各种视图功能(例如标准输出(stdout),文件,控制台窗口等等)
    基于显示层系统的日志信息管理系统。提供信息过滤功能,支持多个并发显示层。
    类型注册系统,支持根据名称来实例化多态类型。

可移植性

  • 操作系统信息获取,如获取操作系统(OS)的各种信息、处理器信息、内存信息等等
    通用事件系统(c/f windows),支持输入设备如键盘、鼠标等
    操作系统无关的线程和互斥量管理,提供POSIX以及Windows版本的实现
    国际化文本管理系统

操作系统无关的时钟系统(从本机时钟获取)

  • 多种3D图元和辅助函数支持
    RGBA等多种色彩格式实现
    大量支持包围盒和包围球的帮助函数

数学库

  • 四元数类及其相关数学函数支持
    矩阵类型及其3D数学支持
    2D和3D向量类型,均支持整型、单精度和双精度浮点实现
    平面(Plane)类型,支持向量投影,多边形或者线段与平面相交测试等等

内存管理

  • 基于内存块和内存池的内存管理模式,有效降低内存碎片的生成
    支持任意尺寸非均一数据块的FIFO管理器。尽管这个FIFO队列的尺寸是动态的,但是其内存的分配和释放始终保持了最小化

序列化(Serialization)和流数据

  • 基于Java的序列化操作设计
    文件版本支持,提供向后兼容机制
    支持序列化的对象包括:基本类型,由可序列化类型组成的类型,支持序列化的STL容器,指向序列化数据的指针(包括一个引用计数系统用于序列化指向相同数据的不同指针——在加载时保证这些指针可以被恢复到从而再次指向相同的数据)
    支持多态,即通过指向基类的指针序列化
    实现了多种数据流,包括二进制内存数据流,ASCII内存字符数据流和二进制文件数据流

辅助函数

  • 加载和处理不同格式的位图
    提供了一个定位数据文件的路径查询系统
    提供了一个字符串/整型配对系统(用于压缩信息类型)
    提供了一个配置文件加载和管理系统,支持在不中断或重启程序的情况下识别配置文件改变以及重加载配置
    多种用于处理字符串、整型、浮点等类型或者它们的数组的函数
    提供一个根据字符串标识函数的列表管理系统,可以在指定一个字符串后调用相应的函数。这个系统对运行时的命令行操作非常有用。
    提供一个多线程任务队列。这个系统很适合后台加载之类的应用
    支持任意尺寸的bit数组操作

Forums » Ryzom » Nel