#descriptor-set #layout #pipeline #dsl #glsl #format #vulkan

nightly playout

用于创建Vulkan管道布局和描述符集布局的DSL

1个不稳定版本

0.1.0 2024年7月27日

#151过程宏

Download history 24/week @ 2024-07-21 106/week @ 2024-07-28 1/week @ 2024-08-04

每月131次下载
用于 playout_macro

MIT/Apache

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