Represents an OpenGL program uniform. Owned by a GLProgram.
Both uniform locations and values are cached, to minimize OpenGL calls.
Creates a GLUniform.
This is done automatically after linking a GLProgram.
Creates a fake disabled uniform variable, designed to cope with variables
that have been optimized out by the OpenGL driver, or those which do not exist.
Sets a uniform variable value.
T should be the exact type needed, checked at runtime.
Sets multiple uniform variables.
Sets multiple uniform variables.
Updates the uniform value.
Unuses this uniform.