14个版本
0.2.3 | 2019年11月3日 |
---|---|
0.2.2 | 2019年11月3日 |
0.2.1 | 2019年3月30日 |
0.1.9 | 2019年3月10日 |
0.1.6 | 2018年11月21日 |
#19 在 渲染引擎
2,345 每月下载量
用于 47 个crate (4 直接)
350KB
7K SLoC
spirv-reflect
针对SPIR-V着色器字节的Rust反射API,适用于Vulkan应用程序。
此crate提供了一个FFI层和惯用的Rust封装,用于优秀的SPIRV-Reflect C/C++库。
特性
- 从SPIR-V字节数据中提取描述符绑定,以协助生成Vulkan描述符集和管道布局。
- 从SPIR-V字节数据中提取推送常量块大小,以协助生成管道布局。
- 从SPIR-V字节数据中提取均匀缓冲区和推送常量块的全布局数据,以协助更新这些结构。
- 从SPIR-V字节数据中提取输入/输出变量(包括HLSL着色器的语义修饰符),以协助验证管道输入/输出设置。
- 轻松将Vulkan类型映射到DirectX 12资源类型
- 重新映射描述符绑定,并相应地更新源SPIR-V字节数据。
- 以人类可读的文本记录所有反射数据。
计划中的特性
- 广泛的单元测试和示例。
- 纯Rust版本。
- 用于反射和操作的命令行工具。
用法
将此添加到您的Cargo.toml
[dependencies]
spirv-reflect = "0.2.3"
并将此添加到您的crate根目录
extern crate spirv_reflect;
示例
目前只有一个单一代码示例demo
,它展示了某些用法。计划开发一个CLI工具,它将是一个有用的工具,并且作为一个干净的用法模式的示例。
cargo run --release --example demo
许可证
根据您的选择,许可如下
- Apache许可证,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
致谢和特别感谢
- Hai Nguyen (C/C++库的作者)
- Cort Stratton (C/C++库的作者)
- Daniel Collin (代码审查)
- Alexandru Ene (贡献)
- Jasper Bekkers (贡献)
- Benjamin Saunders (贡献)
- Nuno Subtil (贡献)
- Paweł Grabarz (贡献)
- Walter Pearce (贡献)
- Bastian Kauschke (贡献)
- Lukas Wirth (贡献)
- Malobre (贡献)
贡献
除非您明确声明,否则您提交给此软件包的任何有意包含在内的贡献,根据Apache-2.0许可证定义,应以上述方式双许可,不附加任何其他条款或条件。
欢迎贡献;请查看问题跟踪器了解已记录的已知改进。
行为准则
spirv-reflect软件包的贡献是在贡献者协约的条款下组织的,spirv-reflect的维护者@gwihlidal承诺将介入以维护该行为准则。
依赖关系
~0.7–1.7MB
~37K SLoC