Creates a new empty program
Creates a program with the specified shaders already attached
Attaches the shader to this program
Links the currently attached shaders
Sets a integer uniform variable inside the program
Binds the program to the current opengl context so that it is used to process new render commands
Represents and handles a Program Opengl Object. A Program is a group of Opengl Shaders which will be linked together. A Program is a program to be executed by the GPU to each of the Vertices of a model.