High and low level bindigns to the 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)
- Compiling to WebAssembly from a Windows machine currently doesn't work.
- Android
- Building for Android currently only works on Windows.