#spir-v #hlsl #spirv-cross #fork #wrapper #safe-wrapper #librashader

librashader-spirv-cross

为 librashader 维护的 spirv_cross 分支

9 个不稳定版本 (3 个破坏性更新)

0.26.0 2024年8月11日
0.25.2 2024年6月14日
0.25.1 2024年2月12日
0.24.0 2024年2月11日
0.23.5 2023年1月26日

#40图形API

Download history 526/week @ 2024-04-28 127/week @ 2024-05-05 130/week @ 2024-05-12 133/week @ 2024-05-19 120/week @ 2024-05-26 184/week @ 2024-06-02 471/week @ 2024-06-09 320/week @ 2024-06-16 89/week @ 2024-06-23 66/week @ 2024-06-30 148/week @ 2024-07-07 197/week @ 2024-07-14 122/week @ 2024-07-21 988/week @ 2024-07-28 343/week @ 2024-08-04 601/week @ 2024-08-11

2,083 每月下载量
8 个 Crates 中使用 (3 个直接使用)

MIT/Apache

2.5MB
59K SLoC

C++ 49K SLoC // 0.1% comments Rust 10K SLoC // 0.0% comments Swift 60 SLoC // 0.1% comments AsciiDoc 6 SLoC // 0.3% comments

librashader-spirv-cross

在部分更改被上传到上游时暂时分支自 spirv_cross

请勿使用此分支。

spirv_cross

围绕 SPIRV-Cross 的安全包装

Crate Travis Build Status Appveyor Build Status

示例

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.0MIT 许可证许可。

贡献

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

参见 CONTRIBUTING.md

依赖