pub fn assemble_source(user_glsl: &str) -> Result<String, AssembleError>Expand description
Splice user_glsl into TEMPLATE, producing a complete compute shader.
Fails fast (before touching the GPU) if the user omitted a required function
so the error names the missing symbol instead of surfacing as an opaque GLSL
compile error. terrain_normal is optional and not checked.