3 个版本

0.1.2 2023年12月1日
0.1.1 2023年7月31日
0.1.0 2023年7月30日

586WebAssembly

每月下载量 45

MIT 许可协议

10MB
251K SLoC

GLSL 202K SLoC // 0.0% comments C++ 47K SLoC // 0.1% comments Rust 1K SLoC Python 887 SLoC // 0.0% comments C 192 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 API 的高层和底层绑定

示例

use spirvcross::{
    bytes_to_words,
    compiler::{glsl::GlslCompiler, Compiler},
    Result,
    Context,
};

fn compile(bytes: &[u8]) -> Result<()> {
    let words = bytes_to_words(bytes).unwrap();

    let mut context = Context::new()?;
    context.set_error_callback(|err| eprintln!("{}", err.to_string_lossy()));

    let compiler = GlslCompiler::new(&mut context, &words)?
        .vulkan_semantics(true)?;

    println!("{}", compiler.compile()?);
    return Ok(());
}

支持的目标

  • Linux
  • macOS
  • Windows
  • WebAssembly (WASI)
    • 从 Windows 机器编译到 WebAssembly 目前不起作用。

依赖项

~1.2–7MB
~141K SLoC