5个版本 (3个重大更新)
1.0.0 |
|
---|---|
0.4.0 | 2022年1月28日 |
0.3.0 | 2022年1月26日 |
0.2.1 | 2022年1月25日 |
0.1.2 |
|
#918 in 游戏开发
每月35次下载
38KB
858 行
SPIRV-Layout
这个库解析SPIRV二进制文件并检索反射信息。它对于从着色器模块派生Vulkan DescriptorSetLayout
以及查找着色器统一缓冲区中各个字段的偏移量和名称非常有用。
此crate被vulkan-engine项目使用。
用法
let bytes = std::fs::read(PATH).unwrap();
let words = unsafe { slice::from_raw_parts(bytes.as_ptr() as *const u32, bytes.len() / 4) };
let module = Module::from_words(words).unwrap();
println!("=== UNIFORMS ===");
for var in module.get_uniforms() {
print_var(&module, var);
}
println!("=== PUSH CONSTANTS ===");
for var in module.get_push_constants() {
print_var(&module, var);
}
有关实际用法的示例,请参阅examples/reflect-shader
依赖关系
~325–790KB
~19K SLoC