opengles2.0 programming 2.o guide
Uniforms and Attributes
Once you have a linked program object, there a number of queries that youmight want to do on it. The first is that you will likely need to find out about
the active uniforms in your program. Uniforms—as we detail more in the
next chapter on the shading language—are variables that store read-only
constant values that are passed in by the application through the OpenGL
ES 2.0 API to the shader. The set of uniforms is shared across a program
object. That is, there is one set of uniforms for a program object. If a uniform
is declared in both a vertex and fragment shader, it must have the
same type and its value will be the same in both shaders. During the link
phase, the linker will assign uniform locations to each of the active uniforms
in the program. These locations are the identifiers the application will
use to load the uniform with a value.