1个不稳定版本
0.1.0 | 2024年7月27日 |
---|
#151 在 过程宏
每月131次下载
用于 playout_macro
51KB
1K SLoC
Playout
playout是一个Rust库,实现了用于定义管道布局和描述符集布局的领域特定语言(DSL),该语言是共享格式,可供着色语言和主机端编程语言使用。
目前,playout支持为GLSL和Rust生成代码。
优势
- 共享格式:一次定义管道和描述符集布局,然后在着色语言和主机端代码中使用。
- 提高可读性:以人类可读的格式编写布局,而不是样板代码。
- 减少错误:通过在单个位置定义布局来避免打字错误和不一致性。
将playout编译为GLSL
let playout_str = "...";
let module = PlayoutModule::try_from(playout_str).unwrap();
let mut writer = String::new();
module.show(&mut writer);
println!("{}", writer)
将playout编译为Rust作为过程宏
use ash::vk;
// Extract descriptor set 3 from the playout file
let out = playout_macro::layout!("./example.playout", 3);
依赖项
~1.2–1.6MB
~34K SLoC