From 9bfe9d78d971de4772319aa9ee7a1fe589258e2b Mon Sep 17 00:00:00 2001 From: Frizi Date: Tue, 24 Sep 2019 12:33:56 +0200 Subject: [PATCH] Allow creating spirv shader from byte array --- shader/src/lib.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/shader/src/lib.rs b/shader/src/lib.rs index 248c626e..999fd0d2 100644 --- a/shader/src/lib.rs +++ b/shader/src/lib.rs @@ -99,6 +99,20 @@ impl SpirvShader { entry: entrypoint.to_string(), } } + + /// Create Spir-V shader from bytecode stored as bytes. + /// Errors when passed byte array length is not a multiple of 4. + pub fn from_bytes( + spirv: &[u8], + stage: ShaderStageFlags, + entrypoint: &str, + ) -> std::io::Result { + Ok(Self::new( + gfx_hal::pso::read_spirv(std::io::Cursor::new(spirv))?, + stage, + entrypoint, + )) + } } impl Shader for SpirvShader {