Generate SPIR-V bytecode from an operation graph (heavy WIP)
```rust
extern crate rasen;
use rasen::; use rasen::TypedValue::;
fn main() { let graph = rasen_graph! { // The only output of this graph is a vec4, at location 0 Output(0, TypeName::VEC4) { // Multiply the light intensity by the surface color Multiply { // Restrict the intensity into the ambient light range Clamp { // Compute the dot product of the surface normal and the light direction Dot { // Normalize the normal Normalize { // The surface normal, a vec3 input at location 0 Input(0, TypeName::VEC3) } // The directional light direction Constant(Vec3(0.3, -0.5, 0.2)) } // The minimum / maximum light levels Constant(Float(0.1)) Constant(Float(1.0)) } // The Material color Constant(Vec4(0.25, 0.625, 1.0, 1.0)) } }; };
let bytecode = build_program(&graph, ShaderType::Fragment).unwrap();
// bytecode is now a Vec<u8> you can pass to Vulkan to create the shader module
} ```