Glsl function - add ModularProgram

It was initially your second suggestion, but this misses `gl_FragColor.a`, hence the current state.