Generate and compile vertex and fragment shaders.
In this version, shader programs are represented by functions function a single expression to a single expression. See also CompileEs, which allows functions between more flexible representations.
For building vertex/fragment shader pairs. The idea is that a
complete parameterized shader program has type
u :=> a :- v :--> o,
which expands to
u :=> (a :-^> v, v :-* o).
u == uniform, a == (vertex) attribute, v == varying, o == fragment output.
o == () (color-only output), use the short-hand
u :=> a :-> v.
General vertex/fragment shader pair.
GLSL vertex program, fragment program, uniform and vertex attribute.