该项目简报包含了近9个月SALVIA项目的工作进展。
项目与配置管理:
- 源代码管理系统由SVN更换至Mercurial。
- SoftArt更名为SALVIA。工程、命名空间及相关文档的更新将在Release之前完成。
- SALVIA启用了LOGO。LOGO在Release之前将视效果酌情调整。
- 提交版本的LOG信息中启用符合Issue Tracker的格式,使得版本更新可以反映到Issue中。
- 添加了完整的Unit Test工程,并启用Auto Test系统完成黑盒和回归测试。
- 合并了LLVM的源码至版本库中;LLVM升级至2.9并进行了适当修改以和Boost的类型系统相一致。
- Boost升级至1.44或以上。
- 添加了一个用于分析代码行数的小工具。
- 更新了部分文档。
Graphics管线:
- 绘制部分支持OpenGL。
- 对Subdivision-based Rasterizer进行了进一步优化。
- 更新了EFLIB的命名空间和文件组织。
- 支持Centroid Sampling。
- 支持2x与4xMSAA
SALVIA Shading Language(SASL):
- 使用新的Combinator-based Parser系统以替换Boost.Spirit,提升了编译速度并降低了目标文件大小。
- 基于Boost.Wave,SASL提供了和C一致的预处理能力。
- 添加了完整的Name Mangling和函数重载的能力。
- 设计并完成了Shader与Host ABI的Memory Layout。现在Shader可以被高效的调用。
- 提供了JIT的支持。
- 提供了多编译器的Port。
- 添加了命令行方式的Compiler。该Compiler接受源代码并输出为LLVM IR。
- 设计并实现了多语言(General,SIMD Shader,SISD Shader)的编译框架。
- 提供了可测试可回归的编译器实现。
- 实现了下列语言要素:
- 基本标量类型及其变量定义
- 基本矢量类型及其变量定义
- 结构体定义及其变量定义
- 顺序语句
- 函数声明与定义
- 算术运算符
- 成员运算符(.)
- Swizzle与Write Mask