3 个版本
使用旧的 Rust 2015
0.1.2 | 2017年5月16日 |
---|---|
0.1.1 | 2017年5月10日 |
0.1.0 | 2017年5月5日 |
在 #genie 中排名 #4
每月下载 56 次
21KB
307 代码行
Chariot SLP 库
此库处理《帝国时代》(1997年)使用的 SLP 文件格式。目前,它可以读取 SLP 文件。
尽管写入 SLP 文件的能力是一个很好的功能,但它对于 Chariot 项目的其余部分不是必需的,因此目前没有实现。
此处代码受 Chariot 项目的同一许可证约束。
构建
您需要 Rust 编译器和 Cargo 构建系统。一旦您有了这些,您就可以使用以下命令进行编译:
$ cargo build
示例
match slp::SlpFile::read_from_file("/path/to/file.slp", 1u8) {
Ok(slp_file) => {
println!("Shape count: {}", slp_file.header.shape_count);
for shape in &slp_file.shapes {
println!("{:?}", shape.header);
}
},
Err(err) => {
println!("Failed to read the SLP file: {}", err);
}
}
ASCII 形式的 SLP 格式
+-----------------------------+
| SlpHeader |
+-----------------------------+
|SlpShapeHeader|SlpShapeHeader|
+-----------------------------+
| |
| Array of u16 padding pairs | <-+ Each SlpShapeHeader has a "shape_outline_offset"
| | that points to a pair in this array
+-----------------------------+
| |
| Arrays of u32 offsets to | <-+ Each SlpShapeHeader has a "shape_data_offsets"
| first command in each row | that points to an array
| |
+-----------------------------+
| |
| Drawing commands used to |
| produce indexed image data |
| |
+-----------------------------+
依赖关系
~1.5MB
~26K SLoC