Skip to content

High and low level bindigns to the SPIRV-Cross API

Notifications You must be signed in to change notification settings

Aandreba/spirv-cross

Repository files navigation

spirv-cross

High and low level bindigns to the SPIRV-Cross API

Example

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(());
}

Supported Targets

  • Linux
  • macOS
  • Windows
  • WebAssembly (WASI)
    • Compiling to WebAssembly from a Windows machine currently doesn't work.
  • Android
    • Building for Android currently only works on Windows.

About

High and low level bindigns to the SPIRV-Cross API

Resources

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published