Short:
Can I define a function that every shader can use? Or I have to define it per shader?
The whole story:
I want to create numerous shaders intended to colorize the input fragments with predefined gradient ramps (something like this - http://www.thinkboxsoftware.com/storage/krakatoa-support-images/krakatoa15_kcm_densitybyage_gradientrampmap.png).
I want to define a gradient ramp constant for each shader (an array of vec4 color samples, where the alpha value holds the gradient position, see Pos in the picture above)
And I need a function that can return a color sample from the given gradient ramp for a particular texture coordinate position.
So the ramps need to be defined ONCE per shader, and the function should be defined all at once that every shader can use safely.
I have the algorithms, the question is for sharing functions, and define constants in GLSL.
Is this possible? Or I have to copy the function into every shader? Is there some precompile option at least?