[][src]Function gfx_hal::pso::read_spirv

pub fn read_spirv<R: Read + Seek>(x: R) -> Result<Vec<u32>>

Safely read SPIR-V

Converts to native endianness and returns correctly aligned storage without unnecessary copying. Returns an InvalidData error if the input is trivially not SPIR-V.

This function can also be used to convert an already in-memory &[u8] to a valid Vec<u32>, but prefer working with &[u32] from the start whenever possible.

Examples

let mut file = std::fs::File::open("/path/to/shader.spv").unwrap();
let words = gfx_hal::pso::read_spirv(&mut file).unwrap();
const SPIRV: &[u8] = &[
    0x03, 0x02, 0x23, 0x07, // ...
];
let words = gfx_hal::pso::read_spirv(std::io::Cursor::new(&SPIRV[..])).unwrap();