1个不稳定版本
0.1.0 | 2024年7月27日 |
---|
#1156 in 过程宏
每月124次下载
74KB
1.5K 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–1.4MB
~31K SLoC