#spir-v #cross #safe-wrapper

spv-cross

围绕 SPIRV-Cross 的安全包装

5 个版本

0.23.5 2023年4月19日
0.23.4 2023年4月19日
0.23.3 2023年4月11日
0.23.2 2023年3月11日
0.23.1 2023年3月7日

#533 in 图形 API


用于 phobos

MIT/Apache

10MB
254K SLoC

GLSL 196K SLoC // 0.0% comments C++ 47K SLoC // 0.1% comments Rust 9K SLoC // 0.0% comments Python 883 SLoC // 0.0% comments C 162 SLoC Shell 91 SLoC // 0.1% comments Swift 60 SLoC // 0.1% comments Assembly 55 SLoC // 0.1% comments AsciiDoc 6 SLoC // 0.3% comments

spirv_cross

围绕 SPIRV-Cross 的安全包装

Crate Travis Build Status Appveyor Build Status

免责声明

这是 spirv-cross 的延续版本,具有更新的依赖项。目前不支持 MSL。所有原始版本的荣誉归 Joshua Groves 所有。如果可能,我将在修复 MSL 后将此存储库中的更改合并到原始仓库中。

与原始版本相比,此分支的额外功能

  • 加速结构。

示例

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,版本 2.0MIT 许可证 的许可,您可任选其一。

贡献

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

CONTRIBUTING.md

依赖项