#spir-v #cross #hlsl #spirv-cross #msl #commit #compile

aclysma_spirv_cross

SPIRV-Cross 的安全包装

1 个不稳定版本

0.0.1 2024年2月17日

#9 in #msl


rafx-shader-processor 中使用

MIT/Apache

2MB
50K SLoC

C++ 41K SLoC // 0.1% comments Rust 9K SLoC // 0.0% comments

(Fork of) spirv_cross

SPIRV-Cross 的安全包装

Crate Travis Build Status Appveyor Build Status

分支信息

此仓库存在是为了发布我的其他项目,这些项目需要一些尚未合并的额外 PR。

除非您也需要那些提交,否则我建议使用原始的

示例

spirv_cross 为 Rust 提供了对 SPIRV-Cross 的安全包装。例如,以下是一个简单的函数,用于解析 SPIR-V 模块并将其编译为 HLSL 和 MSL

extern crate spirv_cross;
use spirv_cross::{spirv, hlsl, msl, ErrorCode};

fn example(module: spirv::Module) -> Result<(), ErrorCode> {
    // Compile to HLSL
    let ast = spirv::Ast::<hlsl::Target>::parse(&module)?;
    println!("{}", ast.compile()?);

    // Compile to MSL
    let ast = spirv::Ast::<msl::Target>::parse(&module)?;
    println!("{}", ast.compile()?);

    Ok(())
}

许可证

本项目许可采用 Apache License, Version 2.0 或 MIT 许可证,任选其一。

贡献

除非您明确说明,否则根据 Apache 2.0 许可证定义的任何旨在包含在本项目中的有意提交的贡献,均应按上述方式双重许可,而不附加任何额外条款或条件。

请参阅 CONTRIBUTING.md.

依赖